Fächer

Fächer

Mehr

Lexikalische Analyse und Syntaktische Analyse: Lexer vs Parser einfach erklärt

Öffnen

Lexikalische Analyse und Syntaktische Analyse: Lexer vs Parser einfach erklärt
user profile picture

Sen

@sen

·

3 Follower

Follow

Die lexikalische Analyse und syntaktische Analyse sind grundlegende Schritte in der Verarbeitung von Programmcode. Scanner und Parser spielen dabei eine entscheidende Rolle bei der Zerlegung und Überprüfung des Quelltextes.

15.3.2021

311

Scanner und Parser: Grundlagen der Codeanalyse

Der Scanner, auch als Lexer bekannt, ist für die lexikalische Analyse zuständig. Er zerlegt den Quelltext in lexikalische Einheiten, die sogenannten Tokens, und ordnet diese verschiedenen Mustertypen zu. Diese Zerlegung ist ein kritischer erster Schritt in der Verarbeitung von Programmcode.

Definition: Tokens sind die kleinsten bedeutungstragenden Einheiten in einem Programmtext, wie Variablenbezeichner oder Zuweisungsoperatoren.

Der Scanner identifiziert auch lexikalische Fehler, die auftreten, wenn eine korrekte Zerlegung nicht möglich ist.

Example: Ein lexikalischer Fehler wäre "b= 8.1 + za#hl", wobei "za#hl" kein gültiger Bezeichner ist.

Der Parser übernimmt die syntaktische Analyse des Codes. Er überprüft, ob die vom Scanner erstellten Tokens den Grammatikregeln der Programmiersprache folgen.

Highlight: Ein wichtiger Aspekt der Arbeit des Parsers ist die Erstellung des Parse-Baums, der eine strukturierte Darstellung des Programms in Baumform bietet.

Der Parser erkennt syntaktische Fehler, wie falsche Klammerung oder unerlaubte doppelte Zuweisungen.

Example: "b = b = (a-5))" enthält einen syntaktischen Fehler aufgrund der falschen Klammerung und der doppelten Zuweisung.

Zusätzlich zur syntaktischen Analyse kann der Parser auch semantische Fehler erkennen, wie Typüberprüfungen und falsche Variablendeklarationen.

Example: "int a = "String"" wäre ein semantischer Fehler, da einer Integer-Variable ein String zugewiesen wird.

Die Kombination aus Scanner (Lexer) und Parser bildet das Fundament für die Verarbeitung und Analyse von Programmcode, was für Compiler und Interpreter unerlässlich ist.

Scanner und Parser
Scanner und Parser
Scanner:
- zerlegt Quelltext in lexikanische Einheiten (Tokens)
-ordnet diese den unterschiedlichen Mu

Nichts passendes dabei? Erkunde andere Fachbereiche.

Knowunity ist die #1 unter den Bildungs-Apps in fünf europäischen Ländern

Knowunity wurde bei Apple als "Featured Story" ausgezeichnet und hat die App-Store-Charts in der Kategorie Bildung in Deutschland, Italien, Polen, der Schweiz und dem Vereinigten Königreich regelmäßig angeführt. Werde noch heute Mitglied bei Knowunity und hilf Millionen von Schüler:innen auf der ganzen Welt.

Ranked #1 Education App

Laden im

Google Play

Laden im

App Store

Knowunity ist die #1 unter den Bildungs-Apps in fünf europäischen Ländern

4.9+

Durchschnittliche App-Bewertung

13 M

Schüler:innen lieben Knowunity

#1

In Bildungs-App-Charts in 12 Ländern

950 K+

Schüler:innen haben Lernzettel hochgeladen

Immer noch nicht überzeugt? Schau dir an, was andere Schüler:innen sagen...

iOS User

Ich liebe diese App so sehr, ich benutze sie auch täglich. Ich empfehle Knowunity jedem!! Ich bin damit von einer 4 auf eine 1 gekommen :D

Philipp, iOS User

Die App ist sehr einfach und gut gestaltet. Bis jetzt habe ich immer alles gefunden, was ich gesucht habe :D

Lena, iOS Userin

Ich liebe diese App ❤️, ich benutze sie eigentlich immer, wenn ich lerne.

Nichts passendes dabei? Erkunde andere Fachbereiche.

Knowunity ist die #1 unter den Bildungs-Apps in fünf europäischen Ländern

Knowunity wurde bei Apple als "Featured Story" ausgezeichnet und hat die App-Store-Charts in der Kategorie Bildung in Deutschland, Italien, Polen, der Schweiz und dem Vereinigten Königreich regelmäßig angeführt. Werde noch heute Mitglied bei Knowunity und hilf Millionen von Schüler:innen auf der ganzen Welt.

Ranked #1 Education App

Laden im

Google Play

Laden im

App Store

Knowunity ist die #1 unter den Bildungs-Apps in fünf europäischen Ländern

4.9+

Durchschnittliche App-Bewertung

13 M

Schüler:innen lieben Knowunity

#1

In Bildungs-App-Charts in 12 Ländern

950 K+

Schüler:innen haben Lernzettel hochgeladen

Immer noch nicht überzeugt? Schau dir an, was andere Schüler:innen sagen...

iOS User

Ich liebe diese App so sehr, ich benutze sie auch täglich. Ich empfehle Knowunity jedem!! Ich bin damit von einer 4 auf eine 1 gekommen :D

Philipp, iOS User

Die App ist sehr einfach und gut gestaltet. Bis jetzt habe ich immer alles gefunden, was ich gesucht habe :D

Lena, iOS Userin

Ich liebe diese App ❤️, ich benutze sie eigentlich immer, wenn ich lerne.

Lexikalische Analyse und Syntaktische Analyse: Lexer vs Parser einfach erklärt

user profile picture

Sen

@sen

·

3 Follower

Follow

Die lexikalische Analyse und syntaktische Analyse sind grundlegende Schritte in der Verarbeitung von Programmcode. Scanner und Parser spielen dabei eine entscheidende Rolle bei der Zerlegung und Überprüfung des Quelltextes.

15.3.2021

311

 

11/12

 

Informatik

2

Scanner und Parser: Grundlagen der Codeanalyse

Der Scanner, auch als Lexer bekannt, ist für die lexikalische Analyse zuständig. Er zerlegt den Quelltext in lexikalische Einheiten, die sogenannten Tokens, und ordnet diese verschiedenen Mustertypen zu. Diese Zerlegung ist ein kritischer erster Schritt in der Verarbeitung von Programmcode.

Definition: Tokens sind die kleinsten bedeutungstragenden Einheiten in einem Programmtext, wie Variablenbezeichner oder Zuweisungsoperatoren.

Der Scanner identifiziert auch lexikalische Fehler, die auftreten, wenn eine korrekte Zerlegung nicht möglich ist.

Example: Ein lexikalischer Fehler wäre "b= 8.1 + za#hl", wobei "za#hl" kein gültiger Bezeichner ist.

Der Parser übernimmt die syntaktische Analyse des Codes. Er überprüft, ob die vom Scanner erstellten Tokens den Grammatikregeln der Programmiersprache folgen.

Highlight: Ein wichtiger Aspekt der Arbeit des Parsers ist die Erstellung des Parse-Baums, der eine strukturierte Darstellung des Programms in Baumform bietet.

Der Parser erkennt syntaktische Fehler, wie falsche Klammerung oder unerlaubte doppelte Zuweisungen.

Example: "b = b = (a-5))" enthält einen syntaktischen Fehler aufgrund der falschen Klammerung und der doppelten Zuweisung.

Zusätzlich zur syntaktischen Analyse kann der Parser auch semantische Fehler erkennen, wie Typüberprüfungen und falsche Variablendeklarationen.

Example: "int a = "String"" wäre ein semantischer Fehler, da einer Integer-Variable ein String zugewiesen wird.

Die Kombination aus Scanner (Lexer) und Parser bildet das Fundament für die Verarbeitung und Analyse von Programmcode, was für Compiler und Interpreter unerlässlich ist.

Scanner und Parser
Scanner und Parser
Scanner:
- zerlegt Quelltext in lexikanische Einheiten (Tokens)
-ordnet diese den unterschiedlichen Mu

Melde dich an, um den Inhalt freizuschalten. Es ist kostenlos!

Zugriff auf alle Dokumente

Werde Teil der Community

Verbessere deine Noten

Mit der Anmeldung akzeptierst du die Nutzungsbedingungen und die Datenschutzrichtlinie

Nichts passendes dabei? Erkunde andere Fachbereiche.

Knowunity ist die #1 unter den Bildungs-Apps in fünf europäischen Ländern

Knowunity wurde bei Apple als "Featured Story" ausgezeichnet und hat die App-Store-Charts in der Kategorie Bildung in Deutschland, Italien, Polen, der Schweiz und dem Vereinigten Königreich regelmäßig angeführt. Werde noch heute Mitglied bei Knowunity und hilf Millionen von Schüler:innen auf der ganzen Welt.

Ranked #1 Education App

Laden im

Google Play

Laden im

App Store

Knowunity ist die #1 unter den Bildungs-Apps in fünf europäischen Ländern

4.9+

Durchschnittliche App-Bewertung

13 M

Schüler:innen lieben Knowunity

#1

In Bildungs-App-Charts in 12 Ländern

950 K+

Schüler:innen haben Lernzettel hochgeladen

Immer noch nicht überzeugt? Schau dir an, was andere Schüler:innen sagen...

iOS User

Ich liebe diese App so sehr, ich benutze sie auch täglich. Ich empfehle Knowunity jedem!! Ich bin damit von einer 4 auf eine 1 gekommen :D

Philipp, iOS User

Die App ist sehr einfach und gut gestaltet. Bis jetzt habe ich immer alles gefunden, was ich gesucht habe :D

Lena, iOS Userin

Ich liebe diese App ❤️, ich benutze sie eigentlich immer, wenn ich lerne.