| Line 6: |
Line 6: |
| | | | |
| | ==History== | | ==History== |
| − | The first use of the term 'compiler', in relation to program translation, is credited to [[Grace Hopper]]<ref>{{cite web | + | The first use of the term 'compiler', in relation to program translation, is credited to [[Grace Hopper]],<ref>{{cite web |
| | | url = http://www.computerhistory.org/events/lectures/cobol_06121997/index.shtml | | | url = http://www.computerhistory.org/events/lectures/cobol_06121997/index.shtml |
| | | title = The World's First COBOL Compilers | | | title = The World's First COBOL Compilers |
| − | | accessdate = 2012-03-24}}</ref>, based on the legal meaning of [[compilation]], since her translator for the A-0 language merely put together various snippets of pre-built code. | + | | accessdate = 2012-03-24}}</ref> based on the legal meaning of [[compilation]], since her translator for the A-0 language merely put together various snippets of pre-built code. |
| | | | |
| | The first translator which matched the current computer definition of a compiler, was the [[Fortran]] compiler for the IBM 704 computer. The Fortran manual was published in October 1956, and the compiler itself was made available to users in April 1957.<ref>{{cite web | | The first translator which matched the current computer definition of a compiler, was the [[Fortran]] compiler for the IBM 704 computer. The Fortran manual was published in October 1956, and the compiler itself was made available to users in April 1957.<ref>{{cite web |
| Line 18: |
Line 18: |
| | | | |
| | Computer users nowadays may not realise the severe technical constraints which applied to programming in the mid 1950's. Modern personal computers have the entire central processing unit on a single chip (integrated circuit), have main memories (RAM) containing many hundred of millions of bytes, and have processing speeds of several million instructions per second. The IBM 704 computer (fairly advanced for its time) had a central processor made up of many thousands of electronic valves (each the size of a light bulb), had a main memory of only four thousand 36-bit words, and had a processing speed of perhaps forty thousand instructions per second (modern mobile phones are more powerful than this). | | Computer users nowadays may not realise the severe technical constraints which applied to programming in the mid 1950's. Modern personal computers have the entire central processing unit on a single chip (integrated circuit), have main memories (RAM) containing many hundred of millions of bytes, and have processing speeds of several million instructions per second. The IBM 704 computer (fairly advanced for its time) had a central processor made up of many thousands of electronic valves (each the size of a light bulb), had a main memory of only four thousand 36-bit words, and had a processing speed of perhaps forty thousand instructions per second (modern mobile phones are more powerful than this). |
| | + | |
| | + | Most compilers in the 1950's and 1960's were written in low-level assembly languages. As computers became more powerful in the 1970's it became possible for compilers to be written in high-level languages. Some compilers are written in the language which they translate (self-hosting), though some sort of bootstrapping process is needed to get the first version of such a compiler working. The first self-hosting compiler was for Lisp in 1962.<ref>{{Cite web | title=AI Memo 39-The new compiler| author=Tim Hart and Mike Levin | url=ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-039.pdf | accessdate=2012-03-29}}</ref> |
| | | | |
| | ==Outline of the compilation process== | | ==Outline of the compilation process== |