Bit of History
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