Omavaraisuus (kääntäjät)

Omavaraisuus ( englanniksi  self-hosting ) ohjelmistokehityksessä on ohjelman käyttöä uusien versioiden luomiseen samasta ohjelmasta. Termiä käytetään useimmiten kääntäjiin , jotka voivat kääntää oman lähdekoodinsa . Myös itsenäiset ohjelmat sisältävät yleensä käyttöjärjestelmän ytimiä , komentorivitulkkeja ja versionhallintajärjestelmiä.

Historia

Hart ja Levin kirjoittivat ensimmäisen itsenäisen kääntäjän Lisp -ohjelmointikielelle MIT:ssä vuonna 1962. He kirjoittivat Lisp-lähdekoodin kääntäjän Lispissä ja testasivat sitä tulkin sisällä, joka oli jo olemassa tuolloin . Ajan myötä kääntäjästä tuli omavarainen ja pystyi kääntämään oman lähdekoodinsa.

Esimerkkejä

Kun Ken Thompson aloitti Unixin kehittämisen vuonna 1968, hän kirjoitti ja käänsi ohjelmia GE-635:lle ja suoritti niitä PDP-7 :llä . Kun Unix-ytimen, komentotulkin , editorin, assemblerin ja muutamien muiden apuohjelmien ensimmäinen versio oli otettu käyttöön, Unix-käyttöjärjestelmästä tuli itsenäinen – uusia ohjelmia voitiin kirjoittaa ja testata itse PDP-7:llä ilman kolmannen osapuolen laitteiden käyttöä. [yksi]

Douglas McIlroy kirjoitti TMG:n ( Comiler Compiler ) TMG:llä paperille, muunnettiin manuaalisesti konekoodiksi ja siirsi konekoodin Ken Thompsonin PDP-7:ään. [2]

GNU-järjestelmän kehitys perustuu suurelta osin GCC :n (GNU C-kääntäjä) ja GNU Emacsin (suosittu tekstieditori) käyttöön, mikä mahdollistaa ilmaisten ohjelmistojen kehittämisen GNU-projektissa ilman ulkoisia riippuvuuksia muista, mahdollisesti ei-vapaista. ohjelmisto.

Monilla ohjelmointikielillä on omat toteutukset: näiden kielten kääntäjät on kirjoitettu itse kielillä. Joissakin näistä tapauksista alkuperäinen toteutus on kehitetty käyttämällä toista ohjelmointikieltä, kokoonpanokieltä tai jopa konekoodia .

Katso myös

Muistiinpanot

  1. Dennis M. Ritchie. "The Development of the C Language" Arkistoitu 3. huhtikuuta 2017 Wayback Machinessa . 1993.
  2. Ken Thompson. VCF East 2019 - Brian Kernighan haastattelee Ken Thompsonia . Haettu 28. lokakuuta 2019. Arkistoitu alkuperäisestä 11. kesäkuuta 2021.