Arno
Compiler ist ein großes und komplexes Programm, daher teilen wir den Compiler aufgrund ihrer Komplexität in verschiedene Phasen ein. Es gibt vier obligatorische Phasen des Compilers; Lexikalische Analyse, Syntaxanalyse, Semantische Analyse und Zielcodegenerierung. In der ersten Phase des Compilers definieren wir lexikalische Regeln durch reguläre Ausdrücke. Die lexikalische Analyse wird auch als Scannen bezeichnet. In dieser Phase wird das Quellprogramm auf gültige Zeichen und Wörter überprüft. Nach der Detailanalyse wird der Eingangsstrom von Token in einem Puffer gespeichert. Die zweite Phase des Compilers ist die Syntaxanalyse. In dieser Phase definieren wir Syntaxregeln durch kontextfreie Grammatik. Die Syntaxanalyse wird auch Parser genannt. Beim Parsen werden Syntaxregeln überprüft. Die Eingabe dieser Phase sind Token und die Ausgabe ist ein Parse-Baum oder ein Syntax-Baum. Die dritte Phase des Compliers ist die semantische Analyse.Im Grunde bedeutet das Wort Semantik die "Bedeutung".
In dieser Phase definieren wir semantische Regeln durch Attributgrammatiken. Die semantische Analyse hat zwei Arten; Deklarationsprüfung und Typprüfung. Die Eingabe dieser Phase ist der Syntaxbaum und die Ausgabe ist die Attributgrammatik. Die letzte und letzte Phase ist die Zielcodegenerierung. Nachdem die Analyse des Quellcodes abgeschlossen ist, besteht der letzte Schritt darin, ihn in die Zielsprache zu konvertieren. Die anderen optionalen Phasen sind Source Code Optimizer, Target Code Optimizer und Intermediate Code Generator
Olga
Semantisch bedeutet die "Bedeutung".
In dieser Phase definieren wir semantische Regeln durch Attributgrammatiken. Die semantische Analyse hat zwei Arten; Deklarationsprüfung und Typprüfung. Die Eingabe dieser Phase ist der Syntaxbaum und die Ausgabe ist die Attributgrammatik. Die letzte und letzte Phase ist die Zielcodegenerierung. Nachdem die Analyse des Quellcodes abgeschlossen ist, besteht der letzte Schritt darin, ihn in die Zielsprache zu konvertieren. Die anderen optionalen Phasen sind Source
Trystan
Um verschiedene Aufgaben auf dem Computer auszuführen, ist der Compiler ein Kommunikationsmedium, das die Quellsprache in die Zielsprache übersetzt. Der Compiler ermöglicht es dem Benutzer, benutzerdefinierte Aufgaben auf dem Computer auszuführen. Ursprünglich wurde zum Schreiben von Compilern Maschinensprache verwendet. Nach einiger Entwicklung werden Assemblersprache und heutzutage Hochsprachen zum Schreiben von Compilern verwendet. Es gibt verschiedene Arten von Compilern; Allgemeiner Compiler, Just-in-Time-Compiler, Native-Code-Compiler, Cross-Compiler, Source-to-Source-Compiler, Multi-Pass-Compiler, Single-Pass-Compiler usw. Allgemeine Compiler sind traditionelle Compiler. Diese Compiler verwenden Assembler.
Just in Time Complier nimmt Quellcode als Eingabe und führt Maschinensprache aus. Beispiel für diesen Compiler ist Java Virtual Machine. Oft wird Bytecode als Zwischendarstellung verwendet. In nativen Code-Compliers werden sowohl Compiler als auch Ziel auf demselben Computer ausgeführt. In Cross Compiler läuft der Compiler auf unterschiedlichen Computern und der Zielcode wird auf unterschiedlichen Computern ausgeführt. Beim Source-to-Source-Compiler ist die Eingabe eine Hochsprache und die Ausgabe ist ebenfalls eine Hochsprache. Zum Beispiel C++ zu C-Compiler. Multi-Pass Compiler führt den Compiler von der Startphase bis zur Endphase separat aus. Jede Phase nach der Kompilierung schreibt ihre Ausgabe in die Plattendatei. Single-Pass Compiler liest den Quellcode nur einmal. Bei dieser Art von Compiler verwendet der Syntaxanalysator die lexikalische Analyse und die Codegenerierung als Unterroutinen.