Was ist der Unterschied zwischen lexikalischer Analyse und Syntaxanalyse?

Inhaltsverzeichnis:

Anonim

Die Hauptunterschied zwischen lexikalischer Analyse und Syntaxanalyse ist das Die lexikalische Analyse liest den Quellcode zeichenweise und wandelt ihn in sinnvolle Lexeme (Tokens) um, während die Syntaxanalyse diese Token nimmt und einen Parse-Baum als Ausgabe erzeugt.

Ein Computerprogramm ist ein Satz von Anweisungen, der den Computer anweist, die im Programm vorgesehenen Aufgaben auszuführen. Im Allgemeinen schreibt ein Programmierer das Programm in einer Hochsprache. Der Computer versteht diese Anweisungen nicht. Daher muss der Quellcode in Maschinencode umgewandelt werden, um ihn für den Computer verständlich zu machen. Darüber hinaus ist ein Compiler ein Softwareprogramm, das hilft, den Quellcode in einen entsprechenden Maschinencode umzuwandeln. Es durchläuft mehrere Schritte oder Stufen, um diesen Konvertierungsprozess abzuschließen. Mit anderen Worten, jede Phase übernimmt die Eingabe von der vorherigen Stufe und die Ausgabe geht in die nächste Phase. Insgesamt sind die lexikalische Analyse und die Syntaxanalyse zwei Schritte, die an diesem Kompilierungsprozess beteiligt sind.

Compiler, lexikalische Analyse, Syntaxanalyse

Was ist lexikalische Analyse?

Die lexikalische Phase ist die erste Phase des Kompilierungsprozesses. Es nimmt den Quellcode als Eingabe. Darüber hinaus scannt es das Quellprogramm und wandelt ein Zeichen nach dem anderen in sinnvolle Lexeme oder Token um. Die Ausgabe der lexikalischen Analyse geht in die Phase der Syntaxanalyse. Im Allgemeinen führt ein lexikalischer Analysator eine lexikalische Analyse durch.

Das Format des Tokens ist wie folgt.

Was ist Syntaxanalyse?

Die zweite Phase des Kompilierungsprozesses ist die Syntaxanalyse. Es nimmt die durch die lexikalische Analyse erzeugten Token als Eingabe und generiert einen Parse-Baum. Der Parsebaum wird auch als Syntaxbaum bezeichnet.

In dieser Phase werden die Token-Organisationen gegen die Quellcode-Grammatik geprüft. Darüber hinaus führt der Parser eine Syntaxanalyse durch. Es prüft, ob der von den Tokens gemachte Ausdruck syntaktisch korrekt ist.

Neben den beiden oben genannten Schritten umfasst der Kompilierungsprozess auch Phasen wie semantische Analyse, Zwischencodegenerierung, Codegenerierung, Codeoptimierung usw.

Unterschied zwischen lexikalischer Analyse und Syntaxanalyse

Definition

Die lexikalische Analyse ist der Prozess der Umwandlung einer Zeichenfolge in eine Zeichenfolge, während die Syntaxanalyse der Prozess der Analyse einer Zeichenkette in natürlicher Sprache, Computersprachen oder Datenstrukturen ist, die den Regeln einer formalen Grammatik entsprechen.

Synonyme

Funktionalität

Die lexikalische Analyse liest das Quellprogramm zeichenweise und wandelt es in sinnvolle Lexeme (Token) um, während die Syntaxanalyse die Token als Eingabe verwendet und einen Parse-Baum als Ausgabe generiert. Dies ist also der Hauptunterschied zwischen lexikalischer Analyse und Syntaxanalyse.

Befehl

Ein weiterer Unterschied zwischen lexikalischer Analyse und Syntaxanalyse besteht darin, dass die lexikalische Analyse die erste Phase des Kompilierungsprozesses ist, während die Syntaxanalyse die zweite Phase des Kompilierungsprozesses ist.

Abschluss

Kurz gesagt, ein Compiler ist ein Softwareprogramm, das den Quellcode in einen entsprechenden Maschinencode umwandelt. Darüber hinaus durchläuft es mehrere Phasen, um diese Aufgabe zu erfüllen. Zwei davon sind die lexikalische Analyse und die Syntaxanalyse. Insgesamt erfolgt die Syntaxanalyse nach der lexikalischen Analyse. Der Hauptunterschied zwischen der lexikalischen Analyse und der Syntaxanalyse besteht darin, dass die lexikalische Analyse den Quellcode zeichenweise liest und in sinnvolle Lexeme (Token) umwandelt, während die Syntaxanalyse diese Token verwendet und einen Parse-Baum als Ausgabe erzeugt.

Verweise:

1. „Compilerphasen – Javatpoint.“ www.javatpoint.com, hier verfügbar. 2. „Lexikalische Analyse.“ Wikipedia, Wikimedia Foundation, 8. Juli 2019, hier verfügbar. 3."Parsen". Wikipedia, Wikimedia Foundation, 15. Mai 2019, hier verfügbar.

Bild mit freundlicher Genehmigung:

1. „Ein idealer mehrsprachiger Multi-Target-Compiler“ Von I, Surachit (CC BY-SA 3.0) über Commons Wikimedia

Was ist der Unterschied zwischen lexikalischer Analyse und Syntaxanalyse?