Father of Pascal: nicklath worth
Anyone who has learned some computer knowledge knows that "data structure 10"Algorithm=Program"This famous formula. Niklaus Wirth, a Swiss computer scientist who proposed this formula and used it as the title of his book, invented a variety of far-reaching programming languages, he proposed the revolutionary concept of structured program design and won the Turing Award in 1984. He is the only Swiss scholar to be honored so far.
Worth was born in northern Switzerland in February 15, 1934 not far from Zurich in Winterthur, his father is a geography professor. He liked to use his mind. Assembling airplane models was his biggest hobby. After graduating from middle school, worth entered the Zurich Institute of Technology (ETH), which is famous in Europe and even the world. He obtained his bachelor's degree in 1958. Afterwards, he traveled the Atlantic Ocean to Levi University in Canada for further studies (Laval is a city located in the city of Quebec, Canada separated by the San Laurens river) and obtained a master's degree in 1960. After that, he migrated to California, USA, and went to the University of California Berkeley. He obtained a doctorate in 1963.
after his career, he was employed by the Computer Science Department just established at Stanford University. The famous Stanford University has a very high threshold. How can I take a fancy to this young boy from a small European country? In the late 1950s s and early 1960s S, Worth's computer experience and achievements were quite impressive: at the Zurich Institute of Technology, he had heard of Switzerland's computer pioneer. p. speiser, who was Chairman of ifip), used ermeth, a computer developed by spassé (although there are not many opportunities as a student); At LAVI University, worth has studied Numerical Analysis and used the alvac iii e computer (although this computer often fails and cannot start up); at Berkeley, worth first had a Bendix G-15 computer available, later, I joined a research team who developed the neliac language compiler for IBM 704. The full name of neliac is Navy electronics manuatory International ALGOL Compiler, which is the programming language compiled by the US Naval Electronics Laboratory International Algol. It is used for numerical computation and some logic processing, it is characterized by writing your own Compilation Program in your own language and then performing self-compilation. It is a language similar to aled 58 but with pioneering significance. At the time of writing his doctoral thesis, the ALGOL 60 Report was published. This is the first clearly defined language, and its syntax is illustrated in a strictly formulated method. At that time, some scholars realized that clear specifications were necessary for reliable and effective implementation, but not adequate: there were still some defects and deficiencies in the aled 60 Report.
He was one of Algol's designers, Andrian van wijingw.den, a former director of the computing department of the Amsterdam mathematical center, and proposed a secondary grammar in the Development of Algol 68, it is also called W grammar to solve the context-related problem. He inspired December 1972, the Tuling prize winner dikstra, to embark on the path to computer science. After many contacts and discussions, he decided to further improve ALGOL 60 and use it as his doctoral thesis. This gave birth to Euler, the first language designed by worth. Although it is not very considerate in terms of practicality, It is very elegant in academics and creates a good foundation for the design of the compiler system. In addition, it also expands algo 60 to increase the table processing capability. For the above reason, Stanford University took a fancy to worth. At the same time, ifip also noticed the Euler's language and decided to involve Wurth in the Working Group to improve and expand the ALGOL language. At that time, there were two schools in the group, one advocating the design of a new language to establish a new milestone, and the other advocating the appropriate expansion of algo 60 due to time constraints. After he joined the team, he claimed to belong to both teams and submitted a proposal. This proposal was approved after being modified and improved by Tony hoars and others. This is the first letter of aigol W (W is the name of worth ).
In the second year, in 1966, Algol W was successfully implemented and officially applied on the first IBM at Stanford University. There was also an episode: IBM only provided the Assembly Language and FORTRAN language at the time, but he and his students both felt that the two were not suitable as tools for designing compilers. As a result, worth spent two weeks writing a definition of a new language used to describe the ALGOL compiler, then it took four months to complete the cross-Compilation Program on the B-5000 computer at Bora, and a student at worth ported the cross-Compilation Program to IBM. These additional work greatly accelerates the development of the algol w compiler, while also giving birth to a new language PL . Although PL was designed and developed as an auxiliary tool, it was applied in many places and achieved unexpected success.
Algol W and PL have become famous as world-class programming language masters. However, worth is a man with a strong sense of patriotism. After becoming famous, he declined to retain Stanford University. He returned to his home country in 1967 and first served at Zurich University, but the next year he returned to his alma mater, Zurich Institute of Technology. Here, he first designed and implemented the PASCAL Language (abbreviation of PHILIPS Automatic sequence Calculator Language), which was successfully developed on CDC 6600. Pascal has many creations in terms of data structure and process control structure. For the former, apart from general integer, real, and boolean data, Pascal also adds the struct type, subdomain type, record structure type, file type, set type, and pointer type; in addition to the GOTO statement for unconditional transfer, the latter also adds multiple control structures such as if-then-Else, case, while, repeat, and, you can also use the with statement to write the composite statement and the component that processes the record variable. It can be said that the vast majority of data structures and control structures commonly used in modern programming languages are laid by the PASCAL Language. Therefore, it has an important milestone in the development history of programming languages.
Interestingly speaking, the original intention of worth to develop Pascal was to have a language suitable for teaching and did not think of commercial applications. However, since its simplicity and clarity, the wide range of data structures and control structures it provides programmers with great convenience and flexibility, it is also very popular and widely spread because it is particularly suitable for Computer Systems Composed of microprocessor. Prior to the advent of C language, Pascal was one of the world's most popular languages, setting a world record with the largest number of copies. Phillipe Kahn, a student in worth alone, started a software company in California after ETH and sold more than 1 million Pascal copies to become a millionaire.
In 1971, based on his practical experience in developing programming languages and programming, in April, the communications of ACM published a paper entitled "program development by stepwise refinement" (structure programming). The main point of this concept is that it is not required to compile an executable program in one step, but to perform several steps and improve the process gradually. The program Abstraction Level compiled in step 1 is the highest, and the program Abstraction Level compiled in step 2 is reduced ...... The program compiled in the last step is executable. Programming with this method seems complicated. In fact, there are many advantages, which make the program readable, easy to write, easy to debug, easy to maintain, easy to ensure its correctness and verify its correctness. The structured program design method, also known as the "top-down" or "gradually improving" method, has triggered a revolution in the field of program design and has become a standard method of program development, it has been widely used, especially in software engineering developed later. Some people comment that the structured programming concept of worth "completely changes the way people think about programming", which is not an exaggeration at all. In January 1983, when ACM celebrated the 25 th anniversary of the publication of the communications of ACM, it selected 25 papers with "milestone papers" from a large number of papers published in its 1/4 century, one article per year, worth's essay is one of them.
The success of Pascal, the great influence of the structured programming ideology, has not stopped the creative research and development work of worth. In the middle of 1970s, in order to meet the needs of concurrent program design, worth successfully developed a widely used language modula. In addition to providing concurrent program design functions, m0dula introduces the module concept (which is also the reason this language is called modula ). In addition, it introduces an important concept arising from the Association of processes with concurrent programs. The modula language is particularly suitable for writing system programs. However, the second version of modula.2 is more significant than modula. In 1976, worth went to the United States again to participate in the design and development of the Alto computer at the Palo Alto Research Center of Xerox. Alto is the world's first personal computer system with graphical user interfaces (unfortunately, Xerox did not commercialize it, but apple learned its technology and launched the Macintosh ).
After returning to Switzerland, worth will design and develop Lilith Personal Computer Systems Based on alto's experience. In concert with Lilith's architecture, worth decided to develop a new version based on modula as the development language of the entire system. Compared with modula, Modula-2 has more concise syntax, more emphasis on interface design, and better reusability of modules. It has three compilation units: program module, definition module, and real-size module. In the definition module, only the information necessary for external interactions with the module is provided. For example, for the description of subprograms in the module, only the subprogram name, parameter name, and type are provided in the definition module, rather than the subprogram body itself, that is, only externally visible information of the module is provided in the definition module. In the implementation module, the information that is invisible outside the module is given, for example, the subroutine body that describes the subroutine defined inside the module. This arrangement not only improves readability, but also facilitates separate compilation. M0dula-2 is more advanced than modula in terms of beauty (elegance) and simplicity (simplicity.
Lilith's operating system, graphics software package, database system, network protocol suite, file server and other basic systems and a large number of application modules are all developed with M0dula-2. At present, nearly Modula-2 compilation systems have been developed in the world, many universities in North America and Europe have replaced Pascal with Modula-2 as the first program design course for computer undergraduate students. The standardization of Modula-2 was started in the UK as early as 1984, and ISO standardized it in 1987, and use the VDM-SL proposed by IBM's Vienna laboratory and the BNF (that is, ebnf, see below) expanded by worth himself to express the syntax and semantics of the language, it has reached a new level in the form. In the Lilith Project, he insisted on unifying the computer architecture, language, and operating environment. The successful experience of integrated and integrated design was a revolutionary innovation, this project plays an important role in the history of computer science.
In recent years, worth has been devoted to a new plan, namely the Oberon plan. Oberon is a system that combines programming languages and operating systems and is designed for individual workstations for individual users. He believes that, with the increasing popularity of the Internet, computers connected to the Internet will mainly be personal workstations in the future, therefore, how to make the personal workstation more powerful and convenient to use is a very important topic. The name of this plan is meaningful because Oberon is the king of Wonderland in Greek mythology and the husband of Titania, goddess. Worth's goal is to make the Oberon language go beyond Pascal and modula, and the operating system and compiler functions designed are more powerful. In 1992, he wrote two books to recommend Oberon to readers (see later). This shows that he attaches great importance to this plan.
In addition to programming languages, worth has many creations in other aspects. In order to define and describe the language, he expanded the famous "BNF-nornol paradigm" to become an ebnf (extended BNF ). We have seen that BNF in many languages is actually ebnf, but this E word is often ignored. When combined with BNF, there are also images that often look like railway maps, called syntax charts or syntax digrams, or railroad digrams ), this is also designed and invented by Wurth. The descriptive ability of this graphic marking method is equivalent to BNF, but of course it is easier to read and understand, and more intuitive. In the syntax diagram, a circle is used to represent the Terminator, a box is used to represent the non-Terminator, and a directed arc is used to represent the direction. A path in the figure above represents a correct definition of the syntax structure. The four basic construction methods of the syntax graph are as follows.
(1) If the formula is W → w1w2w3, the syntax is 1.
(2) If the formula is W → w1w2 | w3a | bcw4, the syntax is Fig 2.
(3) If the formula is W → ABW, the syntax is shown in figure 3.
(4) If the formula is W → AB | ABW, the syntax is shown in Figure 4.
For complex syntax diagrams, you can combine the preceding four syntax diagrams.
In the study of context-independent grammar, a very important question is how to determine the priority relationship between two symbols. Currently, the general approach is proposed by Wirth-Weber precedence relation (Wirth-Weber precedence relation) or simply. It specifies the priority of any two symbols in the context-independent grammar G as follows.
(1) x <Y, if and only when there is a production expression A → α XB β, and B + → YR is derived.
(2) x = Y, if and only when there is a generative expression A → α XY β.
(3) x> Y, if and only when there is a production expression A → α by β, and B + → RX and Y → * a delta.
Where A and B are non-terminologies, and X and Y are two arbitrary symbols of the to-be-prioritized relationship. α, beta, cosine, and delta are any symbolic strings composed of terminologies and non-terminologies. They can be empty strings. A is the Terminator.
Worth has many academic works, mainly including the following types, some of which are originally written in German and translated into English.
Systematic programming: an introduction, Prentice-Hall, 1973. German version has been released to version 5th)
Algorithm 10 Data Structure = Program (algorithms + data structures = programs, Prentice-Hall, 1976)
Algorithms and data structures (algorithms and data structures, Prentice-Hall, 1986)
Modula-2 programming (programming in M0dula-2, spring6r, 1988, 4th)
Pascal user manual and report: ISO Pascal standard (Pascal usermanual and report: ISO Pascal standard, sprillger, 1991)
Oberon plan: Operating System and compiler design (Project Oberon: the design of an operating system and compiler, acm pr., 1992)
Oberon programming: Beyond Pascal and modula (programming in Oberon: steps beyond Pascal and modula, acm pr, 1992)
Digital Circuit Design for computer science students: an introductory textbook, spnnger, 1995)
Theory and techniques of Compiler Construction, Addison-Wesley, 1996)
In addition to the Wurth Turing Award in 1984, ACM also awarded him the "Outstanding Contribution to computer science education" award in 1987 ". Another important international academic organization, IEEE, has also won two awards: the emanual piore Award in 1983 and the computer Pioneer Award in 1988 ). In 1992, the University of California Burley named worth "distinguished alumnus ".
Worth received the Turing Award at the ACM Annual Meeting held in San Francisco in October 1984. Worth gave a speech entitled "from programming language design to Computer Construction" and reviewed his work in the computer field. The full speech is published on the communications of ACM, 159-164 pages. The ACM Turing Award lectures-the first 20 years: 1966-1985, acm pr .), page 179-196. In his speech, worth emphasized the importance of Program Design Language simplicity and discussed the hardware and software environments required by it (because worth has always attached great importance to language implementation ). He introduced his experience in designing Modula-2 and Lilith, pointing out first-hand experiences and the invaluable value of choosing good development tools.
Worth is still teaching at Zurich Institute of Technology. His e-box is Wirth @ INF. ethz. ch.
This article from the csdn blog, reproduced please indicate the source: http://blog.csdn.net/jx_kingwei/archive/2005/05/30/384010.aspx