Bit of History
. How are programming languages implemented?
Two major strategies:
- Interpreters (old and much less studied)
- Compilers (very well understood with mathematical foundations)
. Some environments provide both interpreter and compiler. Lisp, scheme etc. provide
- Interpreter for development
- Compiler for deployment
. Java
- Java compiler: Java to interpretable bytecode
- Java JIT: bytecode to executable image
Some early machines and implementations
. IBM developed 704 in 1954. All programming was done in assembly language. Cost of software development far exceeded cost of hardware. Low productivity.
. Speedcoding interpreter: programs ran about 10 times slower than hand written assembly code
. John Backus (in 1954): Proposed a program that translated high level expressions into native machine code. Skeptism all around. Most people thought it was impossible
. Fortran I project
. (1954-1957): The first compiler was released
Fortran I
. The first compiler had a huge impact on the programming languages and computer science. The whole new field of compiler design was started
. More than half the programmers were using Fortran by 1958
. The development time was cut down to half
. Led to enormous amount of theoretical work (lexical analysis, parsing, optimization, structured programming, code generation, error recovery etc.)
. Modern compilers preserve the basic structure of the Fortran I compiler !!!
|