<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Bottom-up-Parser</id>
	<title>Bottom-up-Parser - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Bottom-up-Parser"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Bottom-up-Parser&amp;action=history"/>
	<updated>2026-05-26T05:00:29Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Bottom-up-Parser&amp;diff=587006&amp;oldid=prev</id>
		<title>imported&gt;Aka: typografische Anführungszeichen</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Bottom-up-Parser&amp;diff=587006&amp;oldid=prev"/>
		<updated>2024-04-06T12:47:40Z</updated>

		<summary type="html">&lt;p&gt;typografische Anführungszeichen&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;Bottom-up-Parser&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;Aufwärtsparser&amp;#039;&amp;#039;&amp;#039; sind [[Analyse]]-Werkzeuge für [[formale Sprache]]n.&lt;br /&gt;
&lt;br /&gt;
Im Regelfall wird ein [[Parser]] als Teil eines Übersetzungsprogramms von einer Sprache in eine andere eingesetzt. Bei [[Programmiersprache]]n ist ein solches Übersetzungsprogramm Teil eines [[Compiler]]s.&lt;br /&gt;
Ein Parser prüft auch die [[Konformität]] bzw. das Einhalten des Regelwerks einer Sprache: Er gibt [[Warnung]]en und [[Fehlermeldung]]en aus, wenn der Eingangstext nicht regelkonform ist.&lt;br /&gt;
&lt;br /&gt;
Ein Bottom-up-Parser arbeitet ausgehend von der kleinsten vorgefundenen Einheit („Bottom“) in Richtung des größeren Zusammenhangs („up“).&lt;br /&gt;
&lt;br /&gt;
Der Bottom-up-Parser implementiert die Strategie des Bottom-up-[[Parsing]]s (datengeleitetes Parsing).&lt;br /&gt;
Bei dieser wird von den [[Token (Übersetzerbau)|Token]] (Wörtern) des Eingabesatzes ausgehend versucht, nach und nach größere [[Syntax|syntaktische]] Strukturen aufzubauen, bis man schließlich beim [[Startsymbol]] der [[Grammatik]] angelangt ist.&lt;br /&gt;
&lt;br /&gt;
Wichtige Unterklassen sind&lt;br /&gt;
* Shift-Reduce-Parsing wie [[LR-Parser|LR(k)-Parsing]]&lt;br /&gt;
* [[Operator-Präzedenz-Parsing]]&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
Gegeben sei eine [[kontextfreie Grammatik]] mit folgenden [[Produktionsregel]]n:&lt;br /&gt;
# [[Satz (Grammatik)|S]] → [[Nominalphrase|NP]] [[Verbalphrase|VP]]&lt;br /&gt;
# [[Verbalphrase|VP]] → [[Verb|V]] [[Nominalphrase|NP]]&lt;br /&gt;
# [[Nominalphrase|NP]] → Donald&lt;br /&gt;
# [[Nominalphrase|NP]] → Daisy&lt;br /&gt;
# [[Verb|V]] → liebt&lt;br /&gt;
&lt;br /&gt;
Das [[Startsymbol]] sei [[Satz (Grammatik)|S]].&lt;br /&gt;
&lt;br /&gt;
Der Satz, der durch den Bottom-up-Parser analysiert werden soll, sei „Daisy liebt Donald“. Der [[Stapelspeicher|Stapel]] des Parsers ist anfänglich leer. Die Schritte eines Shift-Reduce-Parsers sehen so aus:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Eingabe&lt;br /&gt;
!Stapel&lt;br /&gt;
!Aktion&lt;br /&gt;
!Angewandte Regeln&lt;br /&gt;
|-&lt;br /&gt;
| Daisy liebt Donald&lt;br /&gt;
|&lt;br /&gt;
| Start&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liebt Donald&lt;br /&gt;
| Daisy&lt;br /&gt;
| Lege Wort „Daisy“ auf den Stapel&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liebt Donald&lt;br /&gt;
| NP&lt;br /&gt;
| Reduziere „Daisy“ zu NP mit Regel 4.&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| Donald&lt;br /&gt;
| NP liebt&lt;br /&gt;
| Lege Wort „liebt“ auf den Stapel&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| Donald&lt;br /&gt;
| NP V&lt;br /&gt;
| Reduziere „liebt“ zu V mit Regel 5.&lt;br /&gt;
| 4 5&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| NP V Donald&lt;br /&gt;
| Lege Wort „Donald“ auf den Stapel&lt;br /&gt;
| 4 5&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| NP V NP&lt;br /&gt;
| Reduziere „Donald“ zu NP mit Regel 3.&lt;br /&gt;
| 4 5 3&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| NP VP&lt;br /&gt;
| Reduziere die Folge V NP auf dem Stapel zu VP mit Regel 2.&lt;br /&gt;
| 4 5 3 2&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| S&lt;br /&gt;
| Reduziere die Folge NP VP auf dem Stapel zu S mit Regel 1.&lt;br /&gt;
| 4 5 3 2 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Es gibt keine weiteren Wörter mehr im Eingabesatz, auf dem [[Stapelspeicher|Stapel]] liegt das [[Startsymbol]], der Satz wurde daher durch den Parser unter Ausgabe der Regelfolge &amp;#039;&amp;#039;4 5 3 2 1&amp;#039;&amp;#039; akzeptiert.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Compilerbau]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Aka</name></author>
	</entry>
</feed>