Historie překladačů

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Překladač je počítačový program (nebo skupina programů), který transformuje zdrojový kód napsaný v programovacím jazyce (zdrojový jazyk) do jiného počítačového jazyka (cílový jazyk, často má binární formu zvanou objektový kód). Nejčastější důvod, proč chceme transformovat zdrojový kód, je vytvoření spustitelného programu.

Software pro první počítače byl psán primárně v Jazyce symbolických adres (anglicky Assembly language). Vyšší programovací jazyky nebyly vyvinuty dokud se výhody možnosti znovupoužítí softwaru na jiných druzích CPU znatelně nezvýšily oproti ceně psaní překladače. Velmi malá paměťová kapacita prvních počítačů také způsobovala mnoho technických problémů při implementaci překladače.

Koncem 50. let 20. století se poprvé objevily návrhy multiplatformních programovacích jazyků. Následovně bylo vyvinuto několik experimentálních překladačů. Prvním programem, který by bylo možno označit jako překladač, byl A-0 System, který v roce 1952 vytvořila Grace Hopperová pro počítač UNIVAC I. FORTRAN týmu, IBM, vedeného Johnem Backusem je obecně připisováno uvedení prvního kompletního překladače, v roce 1957. COBOL byl jedním z prvních jazyků, jež byl kompilován na více architektur, v roce 1960, což zvýšilo jeho přenositelnost. Tyto překladače byly psány v jazyce symbolických adres.

Myšlenka používání vyšších programovacích jazyků se rychle uchytila v mnoha aplikačních doménách. Díky rozšiřující se použitelnosti podporované novějšími programovacími jazyky a zvyšující se komplexitě počítačových architektur, se překladače staly více a více komplexními.

První tzv. self-hosting překladač – schopný kompilovat svůj vlastní zdrojový kód do vyššího programovacího jazyka – byl vytvořen pro LISP Timem Hartem a Mikem Levinem v MIT roku 1962. Ačkoli byl jak Pascal, tak C oblíbenou volbou implementačního jazyka, stala se od 70. let 20. století implementace překladače do jazyka jež kompiluje běžnou praxí. Vytvoření self-hostingového překladače obnáší tzv. bootstrapping problém – první takový překladač pro programovací jazyk musí být nakompilován buďto překladačem napsaným v jiném programovacím jazyce, nebo (jako v případě LISP překladače pánů Harta a Levise) nakompilován spuštěním onoho překladače v interpretu.

Literatura [editovat]

  • BACKUS, John, a spol. "The FORTRAN Automatic Coding System". Los Angeles, California : Proceedings of the Western Joint Computer Conference, 1957. (anglicky) 
  • BAUER, Friedrich L.; EICKEL, Jürgen (Eds.). Compiler Construction, An Advanced Course, Lecture Notes in Computer Science 21. [s.l.] : Springer, 1976. (2.) ISBN 3-540-07542-9. (anglicky) 
  • CHEATHAM, T. E.; SATTLEY, K.. Syntax directed compilation. [s.l.] : SJCC, 1964. s. 31. (anglicky) 
  • COCKE, John; SCHWARTZ, Jacob T.. Programming Languages and their Compilers: Preliminary Notes. New York University : Courant Institute of Mathematical Sciences technical report. (anglicky) 
  • CONWAY, Melvin E.. Design of a separable transition-diagram compiler. Svazek 6, vydání 7. [s.l.] : Communications of the ACM, 1963. s. 31. (anglicky) 
  • FLOYD, R. W.. Syntactic analysis and operator precedence. Svazek 10. [s.l.] : Journal of the ACM, 1963. s. 316. (anglicky) 
  • GRIES, David. Compiler Construction for Digital Computers. New York : Wiley, 1971. ISBN 047132776X. (anglicky) 
  • IRONS, Edgar T.. A syntax directed compiler for ALGOL 60. Svazek 4. [s.l.] : Communications of the ACM, 1961. s. 51. (anglicky) 
  • KNUTH, D. E.. On the translation of languages from left to right. Svazek 8. [s.l.] : Information and Control, 1965. s. 607. (anglicky) 
  • KNUTH, D. E.. RUNCIBLE-algebraic translation on a limited computer. Svazek 2. [s.l.] : Communications of the ACM, 1959. s. 18. (anglicky) 
  • RANDELL, Brian; RUSSELL, Lawford John. ALGOL 60 Implementation: The Translation and Use of ALGOL 60 Programs on a Computer. [s.l.] : Academic Press, 1964. (anglicky) 

Externí odkazy [editovat]

V tomto článku byl použit překlad textu z článku History of compiler writing na anglické Wikipedii.