A programozási nyelvek megkülönböztetésének számos módja van. Kezdetben különböző paradigmákba esnek: funkcionális, objektumorientált és még sok más.

A programozási nyelveket a fordítási módszere alapján is besorolhatja, ami nagy hatással van a nyelv teljesítményére. A lefordított programozási nyelvek általában gyorsabbak, mint az értelmezettek. Tehát az olyan helyzetekben, mint a játékfejlesztés, amelyek sebességet igényelnek, a fejlesztők hajlamosak a lefordított nyelveket használni.

Mi a fordítás?

A fordítási folyamat a programozó által írt kódot gépi kóddá alakítja, amelyet a számítógép végrehajthat. A gépi kód egy alacsony szintű nyelvtípus, amelyben egyesek és nullák vannak. Tehát a fordító a programozási nyelven létrehozott magas szintű kódot gépi kóddá alakítja.

Fordítók nélkül gépi nyelven kellene kódolnia. Mindegyik magas szintű programozási nyelv, amelyet ismer, három fordítási módszer egyikét használja: fordítóprogramot, tolmácsot vagy a kettő hibridjét.

Mi az a fordító?

A fordítóprogram olyan szoftver, amely a magas szintű nyelven írt forráskódot alacsony szintű kóddá alakítja végrehajtás céljából.

instagram viewer

A fenti diagram egy fordítóprogramot ábrázol a legalapvetőbb formájában. A fordítóprogramnak több fázisa van. Minden fázis átalakítja a kódot egyik állapotból a másikba. Az egyes fordítói fázisok célja egy olyan kimenet létrehozása, amelyet a következő fázis könnyebben kezelhet. A fordítóprogram általános felépítése a következő:

  • Szkenner: ez a fázis egy karakterfolyamot vesz fel, és azokat tokenekbe csoportosítja, amelyek azonosítókat, karakterlánc-literálokat stb.
  • Elemző: ez a fázis csoportosítja a tokeneket a forrásprogramozási nyelv nyelvtana alapján. Létrehoz egy absztrakt szintaxisfát, amely a programot alkotó kifejezések gyűjteménye.
  • Szemantika: ez a fázis szemantikai elemzést végez az absztrakt szintaxisfán (AST). A forrásnyelv szabályait használja, hogy jelentést adjon az AST kifejezésekhez típusok hozzárendelésével és érvényességük ellenőrzésével. Az AST ekkor köztes reprezentációvá válik.
  • Intermediate Representation (IR): ez a fázis az eredeti program forráskódját gépi kóddá alakítja. Az összeállítási kód egyszerűsített változatát állítja elő. Az IR egy vagy több optimalizálót használ az infravörös kód javítására és a futó gép információinak összegyűjtésére. Az optimalizáló hatékonyabbá, gyorsabbá vagy akár kisebbé teheti a programot.
  • Kódgenerátor: ez a fázis felhasználja az optimalizált IR kódot és gépi kóddá alakítja.

Mely programozási nyelvek használnak fordítókat?

Néhány népszerű lefordított programozási nyelv:

  • C
  • C++
  • Megy
  • Ada
  • Fortran
  • COBOL
  • Selypít
  • Célkitűzés-C
  • Gyors

A lefordított nyelv használatának egyik előnye, hogy a fordítás során azonosítja a hibákat. Ezzel kijavíthatja az ilyen hibákat, majd megpróbálhatja újra lefordítani a programot. A lefordított nyelvek kevésbé valószínű, hogy meghibásodnak, ha megkezdik a végrehajtást. Ezek a nyelvek nem is generálnak futtatandó programot, ha a forráskódban szintaktikai hibák vannak. A szemantikai hibák és a futásidejű hibák egyéb formái azonban túllépnek rajta.

A lefordított nyelvek a fordítás után is nagyon gyorsan lefutnak.

Mi az a tolmács?

Az interpreter egy olyan program, amely egyszerre egyetlen kódsort fordít le és hajt végre. Ez a folyamat addig ismétlődik, amíg az értelmező az adott program vagy szkript utolsó kódsorához nem ér.

Amint a fenti diagramból látható, egy tolmácsnak két bemenetre van szüksége. Először a teljes forráskódot (programot) veszi. Ezután beolvassa a program első sorát (bemenetként), lefordítja és végrehajtja. Ha ez a sor megfelelően fut, akkor a program vagy a parancsfájl következő sorára lép.

A fordítókkal ellentétben a tolmács nem fordít le egy teljes programot gépi kódra. Ehelyett elemzi és elemzi egy adott kódsort, mielőtt végrehajtaná. A tolmácsnak már azelőtt el kell kezdenie futtatni a programot – különösen egy nagyobbat –, mielőtt a fordító befejezte volna a fordítását.

Mely programozási nyelvek használnak tolmácsokat?

Néhány népszerű értelmezett programozási nyelv:

  • Piton
  • JavaScript
  • Perl
  • MATLAB
  • ALAPVETŐ

Bár a tolmács gyorsabban kezdi meg a kód végrehajtását, akkor is meghiúsul, ha hibát észlel. Programozóként ki kell javítania egy ilyen hibát, és újra kell indítania a programot. Ez az esemény minden alkalommal előfordul, amikor a tolmács új hibával találkozik. Egyes hibák szunnyadhatnak, ha ritka körülményekhez kapcsolódnak. Ilyen esetekben, a tesztelés fontosabb, mint valaha.

A tolmácsokat általában könnyebb fejleszteni, mint a fordítókat, és programjaik tervezésüknél fogva jobban hordozhatóak.

Mi az a hibrid fordítás?

A hibrid fordítás fordítót és tolmácsot alkalmaz. A hibrid fordítás a magas szintű forráskódot egy alacsonyabb szintű formára, például bájtkódra fordítja. Ezután egy értelmezőt használ a bájtkód futtatásához.

A hibrid fordítás programozási nyelvenként eltérő lehet, de ezt az általános struktúrát fogja használni. Az egyik legnépszerűbb hibrid fordítást használó programozási nyelv a Java. A Java fordító lefordítja a forráskódját Java virtuális gép (JVM) bájtkódja. A tolmács ezután a JVM bájtkódot gépi kódra fordítja.

Mely programozási nyelvek használnak hibrid fordítást?

Néhány népszerű hibrid programozási nyelv:

  • Jáva
  • C#
  • Visual Basic
  • Erlang
  • F#

A hibrid fordítással mindkét világból a legjobbat hozza ki. A kód első fordítása lehetővé teszi a hibák mielőbbi megoldását. A hibrid fordítók által létrehozott bájtkód könnyebben értelmezhető, mint egy magas szintű programforráskód.

A különböző fordítási módszerek ismeretének értéke

Meg kell értenie az adott nyelv által használt konkrét fordítási módszert, különösen, ha egy új projekthez használja. A nyelvi fordítási módszer a programozási nyelv identitásának fő része. Ez hatással lehet a program terjesztésére és a felhasználók futtatására.

Minden fordítási megközelítésnek megvannak a maga előnyei. A legnépszerűbb programozási nyelvek, például a C++, a Python és a Java, mind különböző fordítási módszereket használnak. A nyelv paradigmája mellett a fordítási módszere az egyik legfontosabb tulajdonság, amellyel tisztában kell lennie.

Számos paradigma létezik, amelyet egy programozási nyelv használhat. A legtöbb legnépszerűbb programozási nyelv többparadigmás nyelv; támogatják két vagy több eltérő paradigma használatát. A három legnépszerűbb paradigma az imperatív, az objektumorientált és a funkcionális programozás.