Transpilaattori

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 12. joulukuuta 2018 tarkistetusta versiosta . tarkastukset vaativat 6 muokkausta .

Transpiler  (transpiler, eng. transpiler ) - ohjelma ( kääntäjätyyppi ), joka suorittaa ohjelman käännöksen. [1] [2]

Transpilaatio on ohjelman muunnos, joka käyttää lähdetietona yhdellä ohjelmointikielellä kirjoitetun ohjelman lähdekoodia ja tuottaa vastaavan lähdekoodin toisella ohjelmointikielellä.

Transpiler kääntää ohjelmointikielten välillä, jotka toimivat suunnilleen samalla abstraktiotasolla , kun taas perinteinen kääntäjä kääntää ohjelmointikielen korkeammalta tasolta alemman tason kielelle . Esimerkiksi käännösohjelma voi kääntää ohjelman Pascalista C : ksi . Automaattiseen rinnastukseen perustuva kääntäjä ottaa usein syötteeksi korkean tason kieliohjelman, jonka jälkeen muuntaa sen koodin ja kommentoi sitä käyttämällä rinnakkaiskoodimerkintöjä (esimerkiksi openmp-malli ) tai kielirakenteita (esim. forall fortranille ). [yksi]

Transpilerin toinen tarkoitus on kääntää vanhaa koodia käyttämään saman ohjelmointikielen tai API:n seuraavaa versiota, mikä rikkoo taaksepäin yhteensopivuuden. Transpiloija suorittaa tässä tapauksessa automaattisen koodin uudelleenmuodostuksen , mikä on hyödyllistä, kun uudelleenmuodostettavat ohjelmat eivät ole alkuperäisen suorittajan hallinnassa (esimerkiksi ohjelmien muuntaminen Python 2:sta Python 3:ksi tai ohjelmien muuntaminen vanhasta API:sta uusi API) tai kun sen manuaalinen käsittely on ohjelman koosta johtuen tarpeetonta tai vie liikaa aikaa.

Transpilaattorit voivat joko pitää käännetyn koodin mahdollisimman lähellä lähdekoodia, jotta lähdekoodin kehittäminen ja virheenkorjaus olisi mahdollisimman helppoa , tai he voivat järjestää koodin uudelleen siten, että käännetty koodi ei näytä lähdekoodilta. [2] On myös debug-apuohjelmia, joiden avulla voit verrata muunnettua lähdekoodia alkuperäiseen lähdekoodiin; Esimerkiksi JavaScriptin SourceMap-standardi [3] pystyy yhdistämään selaimessa ajettavan JavaScript-koodin JavaScript -kielellä olevaan lähteeseen. [neljä]

Esimerkkejä muunnetuista kielistä ovat Closure Compiler, Coccinelle, coffeescript , Dart , Haxe , TypeScript [5] ja Emscripten. [6]

Muistiinpanot

  1. Kääntäjätyypit . compilers.net (1997–2005). Haettu: 28. lokakuuta 2010.
  2. Fowler, Martin Transparent Compilation (12. helmikuuta 2013). Haettu: 13. helmikuuta 2013.
  3. Lenz, Fitzgerald Lähdekartan versio 3 -ehdotus (11. helmikuuta 2011).
  4. Seddon, Ryan Johdatus JavaScript-lähdekarttoihin . html5rocks.com (21. maaliskuuta 2012). Haettu: 21 tammikuuta 2015.
  5. Henson, Valerie Semanttinen paikkaus Coccinellen kanssa . lwn.net (20. tammikuuta 2009). Haettu: 28. lokakuuta 2010.
  6. Epic Games HTML5 Epic Citadel .