<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=Lexikalische_Analyse</id>
	<title>Lexikalische Analyse - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=Lexikalische_Analyse"/>
	<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Lexikalische_Analyse&amp;action=history"/>
	<updated>2026-04-07T13:12:28Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Demo Wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://demowiki.knowlus.com/index.php?title=Lexikalische_Analyse&amp;diff=10669&amp;oldid=prev</id>
		<title>imported&gt;Ottokar Dürwalder: /* Grundlagen */ Tippfehler und Teilwortwiederholung „weiteren“ und „weitergereicht“ behoben.</title>
		<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Lexikalische_Analyse&amp;diff=10669&amp;oldid=prev"/>
		<updated>2025-01-29T14:44:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Grundlagen: &lt;/span&gt; Tippfehler und Teilwortwiederholung „weiteren“ und „weitergereicht“ behoben.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Lexikalische Analyse&amp;#039;&amp;#039;&amp;#039; ist in der [[Informatik]] die Zerlegung einer [[Zeichenkette]] (z. B.  [[Quelltext]]) in eine Folge von logisch zusammengehörigen Einheiten, sogenannte [[Token (Übersetzerbau)|Token]]. Ein [[Computerprogramm]], das eine lexikalische Analyse durchführt, wird &amp;#039;&amp;#039;&amp;#039;Lexer&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Tokenizer&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;lexikalischer Scanner&amp;#039;&amp;#039;&amp;#039; genannt. Ein Lexer ist meist Teil eines [[Compiler]]s und wird als erster Schritt in der [[Compiler#Frontend (auch „Analysephase“)|Analysephase]] ausgeführt. Das Ergebnis des Lexers wird im nächsten Schritt von einem [[Parser]] weiterverarbeitet.&lt;br /&gt;
&lt;br /&gt;
== Grundlagen ==&lt;br /&gt;
Bei der Zerlegung einer Eingabe in eine Folge von logisch zusammengehörigen Einheiten, in die so genannten [[Token (Übersetzerbau)|Token]], spricht man auch von &amp;#039;&amp;#039;lexikalischer Analyse&amp;#039;&amp;#039;. Typischerweise geschieht die Zerlegung nach den Regeln von [[Reguläre Sprache|regulären Grammatik]]en, und der Tokenizer ist durch eine Menge [[endlicher Automat]]en realisiert. Verfahren zur Überführung eines regulären Ausdrucks in einen [[Nichtdeterministischer endlicher Automat|nichtdeterministischen endlichen Automaten]] sind das [[Berry-Sethi-Verfahren]] sowie die Thompson-Konstruktion.&amp;lt;ref&amp;gt;{{Webarchiv |url=http://dragonbook.stanford.edu/lecture-notes/Stanford-CS143/03-Lexical-Analysis.pdf |text=Stanford Dragon Book Compilerbau - Lexical Analysis |wayback=20160306215317 |archiv-bot=}} (englisch)&amp;lt;/ref&amp;gt; Durch Anwendung der [[Potenzmengenkonstruktion]] lässt sich ein nichtdeterministischer in einen deterministischen endlichen Automaten überführen.&lt;br /&gt;
&lt;br /&gt;
Ein Tokenizer kann Bestandteil eines [[Parser]]s sein und hat dort vorverarbeitende Funktion. Er erkennt innerhalb der Eingabe Schlüsselwörter, Bezeichner, Operatoren und Konstanten. Diese bestehen aus mehreren Zeichen, bilden aber jeweils logische Einheiten, sogenannte Token. Diese werden an den Parser zur weiteren Verarbeitung (d.&amp;amp;nbsp;h. syntaktischen Analyse) übergeben.&lt;br /&gt;
&lt;br /&gt;
== Programme zur Erzeugung ==&lt;br /&gt;
Wenn man eine formale Beschreibung der zu erkennenden [[Lexik]] angeben kann, lässt sich ein Tokenizer automatisch generieren. Das in [[Unix]]-Betriebssystemen enthaltene Programm [[Lex (Informatik)|Lex]] sowie das als [[freie Software]] entwickelte Flex erfüllen genau diese Funktion. Aus der formalen Beschreibung generieren diese Programme eine Funktion, die aus einem eingegebenen Text das jeweils nächste Token ermittelt und zurückgibt. Diese Funktion findet dann meist in einem [[Parser]] Verwendung.&lt;br /&gt;
&lt;br /&gt;
{{Siehe auch|Parsergenerator}}&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://github.com/westes/flex Flex] – [[C++]], [[C (Programmiersprache)|C]] (englisch)&lt;br /&gt;
* [http://re2c.org/ re2c] – [[C (Programmiersprache)|C]] (englisch)&lt;br /&gt;
* [http://quex.org/ Quex] – [[C++]], [[C (Programmiersprache)|C]] (englisch)&lt;br /&gt;
* [http://www.jflex.de/ JFlex] – [[Java (Programmiersprache)|Java]] (englisch)&lt;br /&gt;
* [https://github.com/annoflex/annoflex/ AnnoFlex] – [[Java (Programmiersprache)|Java]] (englisch)&lt;br /&gt;
* [https://github.com/ryangjchandler/lexical Lexical] – [[PHP]] (englisch)&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Programmierwerkzeug]]&lt;br /&gt;
[[Kategorie:Compilerbau]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Ottokar Dürwalder</name></author>
	</entry>
</feed>