Assembler vs Compiler
Általában a fordító egy számítógépes program, amely beolvassa az egyik nyelven írt programot, amelyet forrásnyelvnek neveznek, és lefordítja egy másik nyelvre, amelyet célnyelvnek neveznek. Hagyományosan a forrásnyelv egy magas szintű nyelv volt, például a C++, a célnyelv pedig egy alacsony szintű nyelv, például az Assembly nyelv. Vannak azonban olyan fordítók, amelyek az Assembly nyelven írt forrásprogramot képesek átalakítani, és gépi kódra vagy objektumkódra konvertálni. Az összeszerelők ilyen eszközök. Tehát mind az assemblerek, mind a fordítók végső soron olyan kódot állítanak elő, amely közvetlenül végrehajtható egy gépen.
Mi az a fordító?
A Compiler egy számítógépes program, amely beolvassa az egyik nyelven írt programot, amelyet forrásnyelvnek neveznek, és lefordítja egy másik nyelvre, amelyet célnyelvnek neveznek. Leggyakrabban a forrásnyelv egy magas szintű nyelv, a célnyelv pedig egy alacsony szintű nyelv. Tehát általában a fordítók olyan fordítóknak tekinthetők, akik egyik nyelvről a másikra fordítanak. Ezenkívül a fordítók bizonyos optimalizálásokat hajtanak végre a kódon. Egy tipikus fordítóprogram több fő összetevőből áll. Az első komponens a szkenner (lexikális elemzőként is ismert). A Scanner beolvassa a programot, és tokenek láncává alakítja. A második komponens az elemző. A tokenek karakterláncát elemzőfává (vagy absztrakt szintaxisfává) alakítja, amely rögzíti a program szintaktikai szerkezetét. A következő komponens a szemantikai rutinok, amelyek a szintaktikai struktúra szemantikáját értelmezik. Ezt követik a kódoptimalizálások és a végső kódgenerálás.
Mi az Assembler?
Az Assembler egy szoftver vagy eszköz, amely az Assembly nyelvet gépi kódra fordítja. Tehát az assembler egyfajta fordító, és a forráskód Assembly nyelven van írva. Az Assembly egy ember által olvasható nyelv, de jellemzően egy az egyhez kapcsolata van a megfelelő gépi kóddal. Ezért azt mondják, hogy az assembler izomorf (egy az egyhez leképezés) fordítást hajt végre. A fejlett összeállítók további szolgáltatásokat nyújtanak, amelyek támogatják a programfejlesztést és a hibakeresési folyamatokat. Például a makróösszeállítóknak nevezett összeszerelők makrólehetőséget biztosítanak.
Mi a különbség az Assembler és a Compiler között?
A Compiler egy számítógépes program, amely beolvassa az egyik nyelven írt programot, és lefordítja azt egy másik nyelvre, míg az assembler egy speciális fordítótípusnak tekinthető, amely csak az Assembly nyelvet fordítja gépi kódra. A fordítók általában közvetlenül egy magas szintű nyelvről állítják elő a gépen futtatható kódot, de az assemblerek egy objektumkódot állítanak elő, amelyet linker programok segítségével kell csatolni ahhoz, hogy a gépen futhasson. Mivel az Assembly nyelv egy az egyhez leképezéssel rendelkezik a gépi kóddal, az assembler használható olyan kódok előállítására, amelyek nagyon hatékonyan futnak olyan esetekben, amikor a teljesítmény nagyon fontos (pl. grafikus motorok, beágyazott rendszerek, amelyek hardver erőforrásai korlátozottak a személyi számítógépekhez képest mint a mikrohullámú sütő, mosógép stb.).