Tolmács (IT)

A számítástechnikában egy tolmács vagy tolmács ( lásd alább ) olyan eszköz, amelynek feladata számítógépes nyelven írt programok elemzése, fordítása és végrehajtása . Időnként minősítünk és helytelenül , azok a nyelvek, amelyek programjait általában az értelmezett nyelvek tolmácsa hajtja végre .

A tolmács abban különbözik a fordítótól, hogy az adott program futtatásához szükséges elemzést és fordítást nem egyszer és mindenkorra végzi, hanem a program minden végrehajtásakor. A végrehajtáshoz tehát nem csak a program, hanem a megfelelő tolmács is szükséges.

Elv

Az értelmezés a program dinamikus végrehajtására támaszkodik egy másik program (az tolmács) helyett egy másik nyelvre (pl. Gépi nyelvre) történő átalakításra; elkerüli az egyidejű konverziós és végrehajtási idő szétválasztását.

Megkülönböztetünk egy úgynevezett szkript programot egy úgynevezett lefordított programtól  :

A tolmács ciklusa a következő:

Így az fordító a fordítóval ellentétben végrehajtja a program utasításait (vagy kiértékeli azok kifejezéseit), amint értelmezés céljából olvassuk őket. Ennek a szakasznak az előzetes fordítás nélküli szakasza miatt az értelmezett program futtatása általában lassabb, mint ugyanaz a lefordított program. A legtöbb értelmező már nem a programot reprezentáló karakterláncot hajtja végre, hanem egy belső formát, például egy szintaxisfát .

A gyakorlatban folytonosság van a tolmácsok és a fordítók között. A legtöbb értelmező köztes belső reprezentációkat (absztrakt szintaxisfákat vagy akár bájtkódokat) és feldolgozást (lexikai és szintaktikai elemzéseket) használ, amelyek hasonlóak a fordítókéhoz. Végül bizonyos nyelvek bizonyos megvalósításai (például az SBCL for Common Lisp ) interaktívak, mint egy tolmács, de a lehető leghamarabb lefordítják a program egy darabjának szövegét a processzor által közvetlenül futtatható gépi kódba. Az értelmező vagy az összeállító karakter tehát a programozási nyelv megvalósítására jellemző, és nem magára a nyelvre.

Az értelmezett nyelvek iránti érdeklődés főleg a könnyű programozásban és a hordozhatóságban rejlik. Az értelmezett nyelvek nagyban megkönnyítik a programok hibakeresését, mert elkerülik a sokszor hosszú fordítási fázist és korlátozzák a hibák lehetőségeit. Általában lehetséges a hiányos programok futtatása, ami megkönnyíti az alkalmazások vagy az alkalmazások prototípusainak gyors fejlesztését. Így a BASIC nyelv volt az első értelmezett nyelv, amely lehetővé tette a nagyközönség számára a programozáshoz való hozzáférést, míg az első értelmezett modern programozási nyelv a Lisp .

A hordozhatóság lehetővé teszi egyetlen program megírását, amely változások nélkül különböző platformokon futtatható, feltéve, hogy ezeknek a hardverplatformoknak van egy sajátos tolmácsuk.

Bizonyos számú számítógépes nyelvet manapság egy alkalmazás virtuális gépe valósít meg . Ez a technika félúton van az itt leírt tolmácsok és a fordítók között . Jó hatékonysággal kínál tolmács-hordozhatóságot. Például a Java, Lisp, Scheme, Ocaml, Perl (Parrot), Python, Ruby, Lua, C # stb. Portjai . virtuális gépen keresztül történnek .

Az absztrakt értelmezés ( Patrick és Radhia Cousot által feltalálva ) a statikus programelemzés technikája és modellje , amely egy kicsit tolmács útjában fut, a programot az absztrakciók értékeinek felváltásával elemezték. Például az egész változók értékeit egész intervallumok, vagy a változók közötti algebrai kapcsolatok vonják el.

Történelmi

A Pascal nyelv megjelenésével és az olyan gyors kereskedelmi fordítókkal, mint a Turbo Pascal , az értelmezett nyelvek az 1980- as évek közepétől élesen hanyatlást tapasztaltak . Három dolog változtatta meg a helyzetet az 1990-es években  :

Értelmezett nyelvek használata

Az értelmezett nyelvek sokféle felhasználást találnak:

Hibridek a fordító és a tolmács között

Bár a fordító és az értelmező közötti különbség valós, definícióik néha átfedésben vannak, és e két technika között vannak köztes módszerek.

Bytecode tolmácsok

Néhány keretrendszer, például a Java vagy a .NET, előre lefordítja a kódot egy köztes byte- kódban . Ezt a bájtkódot ezután egy virtuális gép értelmezi vagy végrehajtja , minden esetben a program futtatásához.

On-the-fly összeállítás

A menet közbeni fordítást megvalósító rendszerben a forráskódot általában előre vagy menet közben (futás közben) állítják össze egy köztes ábrázolásba , a bytecode-ba . Ezután a rendszer folyamatosan elemzi a futó kódot, és azonosítja a kód azon részeit, ahol a natív kódra történő újrafordítás felülírná a bytecode végrehajtását.

Terminológia

Ezt a típusú eszközt angolul az " tolmács  " kifejezés  jelöli . Míg a programelméletről szóló első francia nyelvű oktatókönyv szerzői javaslatot tettek „tolmácsra”, ezt gyakran fordítja franciául az „tolmács” réteg , ezt a kifejezést - 1970 körül igazolva - különösen az OQLF ajánlja, és több általános szótárban is jelen van, és az adatfeldolgozásra, valamint az egyéb terminológiai kiadványok.

Megjegyzések és hivatkozások

  1. C. Livercy , Jean-Pierre pénzügyek , Monique Grandbastien , Pierre Lescanne , Pierre Marchand , Roger Mohr , Alain Quéré és Jean-Luc Rémy ( pref.  C. pár), Program elmélet: sémák, igazolások, szemantika , Párizs, Bordás , coll.  "Dunod informatique",1978, 328  p. ( ISBN  978-2-04-010516-7 és 2040105166 , online olvasás ).
  2. „  tolmács  ” , Usito , Université de Sherbrooke (hozzáférés : 2021. július 12. ) .
  3. "  tolmács  " , Le Grand Dictionnaire terminológia , Office québécois de la langue française .
  4. "  tolmács  " , Larousse szótár (hozzáférés : 2021. július 12. ) .
  5. "  tolmács  " , a Dictionnaire.lerobert.com oldalon , a Dictionnaires Le Robert oldalon (hozzáférés : 2021. július 12. ) .
  6. Michel Ginguay , angol / francia számítógépes szótár , Dunod ,2005( ISBN  2-10-008310-4 és 978-2-10-008310-7 , OCLC  59.569.570 , nyilatkozat BNF n o  FRBNF39950455 ) , p.  121 :

    Tolmács , [...] 2. tolmácsprogram , tolmács"

    .
  7. (in) Jacques Hildebert , szótár Informatikai angol / francia , New York, Hippocrene Könyvek,1998( ISBN  978-0-7818-0628-2 ) ; Francia / angol informatikai technológiák szótára , Párizs, La Maison du Dictionnaire,1998, 2702  p. ( ISBN  978-2-85608-105-1 , online előadás ) , p.  2020.
  8. Jean-Guy Grenier , Számítástechnika és Internet szótára (angol-francia) , Párizs, La Maison Du Dictionnaire,2000, 710  p. ( ISBN  978-2-85608-136-5 , online előadás ) , p.  358.
  9. Terry R. Pyper , francia informatikai szótár , London, Routledge ,1989, 1 st  ed. , 590  p. ( ISBN  978-0-415-00244-8 , online előadás ) , p.  147.
  10. (nl + hu + fr + de + es) PJ van Swigchem és EJ Slot , BDI-terminológia: verklarend woordenboek van Nederlandse termine op hebied van bibliotheek en documentary informatie, vertalingen in het Engels, Frans, Duits, Spaans , La Haye, NBD Biblion,1990, 493  p. ( ISBN  978-90-6252-123-4 , online előadás ) , p.  151.
  11. (in) Anne-Laure Jousse ( Maine-i Egyetem ) és Myriam Bouveret , "  Lexikai funkciók a származékos kapcsolatok képviseletére a szakszótárakban  " , terminológia , John Benjamins Publishing Company, vol.  9, n o  1,2003, P.  71–98 ( ISSN  0929-9971 , online olvasás ) [PDF] .

Lásd is