<?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=LF-Parser</id>
	<title>LF-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=LF-Parser"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=LF-Parser&amp;action=history"/>
	<updated>2026-05-24T17:05:16Z</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=LF-Parser&amp;diff=534163&amp;oldid=prev</id>
		<title>imported&gt;Aka: Abkürzung korrigiert</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=LF-Parser&amp;diff=534163&amp;oldid=prev"/>
		<updated>2018-04-15T13:00:00Z</updated>

		<summary type="html">&lt;p&gt;Abkürzung korrigiert&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Ein &amp;#039;&amp;#039;&amp;#039;LF-Parser&amp;#039;&amp;#039;&amp;#039; ({{EnS|&amp;#039;&amp;#039;strong LL-parser&amp;#039;&amp;#039;}}) ist ein Top-Down-[[Parser]], der ausschließlich auf der Grundlage der k nächsten Eingabe-[[Token (Compilerbau)|Token]] entscheidet, zu welcher Alternative ein [[Nichtterminalsymbol]] ersetzt wird. Von einem [[LL-Parser]] unterscheidet ihn, dass die Entscheidungsmengen, die beim Vorausschauen verwendet werden, für jedes Nichtterminalsymbol [[disjunkt|paarweise disjunkt]] sein müssen, das heißt, zu jedem Zeitpunkt muss jedes Tupel von Metasymbol und k-[[lookahead]]-Token eindeutig auf eine Alternative verweisen. Daher funktioniert dieses Verfahren nur für spezielle [[kontextfreie Grammatik]]en, die [[LF(k)-Grammatik]]en. LF-Parser werden auch als strong-LL-Parser bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Ein LF-Parser heißt &amp;#039;&amp;#039;&amp;#039;LF(k)-Parser&amp;#039;&amp;#039;&amp;#039;, wenn er während des Parsens &amp;#039;&amp;#039;k&amp;#039;&amp;#039; Token vorausschauen kann. Diese Token werden auch als &amp;#039;&amp;#039;lookahead-Token&amp;#039;&amp;#039; bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Die Klasse der LF(1)-Grammatiken ist gleich der Klasse der LL(1)-Grammatiken. Für &amp;lt;math&amp;gt;k\ge 2&amp;lt;/math&amp;gt; unterscheiden sich jedoch die Klassen, wie man an folgender Grammatik erkennt, die in LL(2), nicht jedoch in LF(2) liegt:&lt;br /&gt;
:S → a A | b B&lt;br /&gt;
:A → C a b&lt;br /&gt;
:B → C b&lt;br /&gt;
:C → a | ε&lt;br /&gt;
Diese Grammatik kann mit einem LF(2)-Parser nicht umgesetzt werden, denn sind die nächsten beiden Tokens &amp;#039;&amp;#039;ab&amp;#039;&amp;#039;, so könnte sowohl eine ε-Ableitung notwendig sein, wenn von &amp;#039;&amp;#039;A&amp;#039;&amp;#039; aus abgeleitet wurde als auch eine Ableitung nach &amp;#039;&amp;#039;a&amp;#039;&amp;#039;, wenn von &amp;#039;&amp;#039;B&amp;#039;&amp;#039; aus abgeleitet wurde. Es liegt eine LL-Grammatik vor, da zwischen zwei möglichen Ableitungen mit demselben Kontext stets mittels der Lookaheads unterschieden werden kann. Trivialerweise ist jede LF-Grammatik eine LL-Grammatik. Das Beispiel lässt sich auf beliebige &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; ausweiten, etwa:&lt;br /&gt;
:S → a A | b B&lt;br /&gt;
:A → C aᵏ⁻¹ b&lt;br /&gt;
:B → C aᵏ⁻² b&lt;br /&gt;
:C → a | ε&lt;br /&gt;
LF-Parser lassen sich wesentlich einfacher implementieren, etwa mittels [[Rekursiver Abstieg|rekursiven Abstiegs]], der Begriff LL-Parser ist jedoch wesentlich häufiger verwendet, da LL(1)/LF(1)-Parser am verbreitetsten sind, und dort kein Unterschied besteht. Jede LL(1)-Grammatik ist auch eine LF(1)-Grammatik, denn wenn der Kontext zur Auswahl einer Ableitung entscheidend wäre, so wäre dies höchstens ein Token &amp;#039;&amp;#039;a&amp;#039;&amp;#039; im Lookahead, d.&amp;amp;nbsp;h. eine ε-Ableitung oder eine mit &amp;#039;&amp;#039;a&amp;#039;&amp;#039; beginnende Ableitung wären möglich, dies geschähe dann jedoch auch unter Berücksichtigung des Kontexts.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Derick Wood: The theory of left factored languages: part 1. &amp;#039;&amp;#039;Comp. Journal&amp;#039;&amp;#039;&amp;amp;thinsp; &amp;#039;&amp;#039;&amp;#039;12&amp;#039;&amp;#039;&amp;#039;:4 (1969)&lt;br /&gt;
* Derick Wood: The theory of left factored languages: part 2. &amp;#039;&amp;#039;Comp. Journal&amp;#039;&amp;#039;&amp;amp;thinsp; &amp;#039;&amp;#039;&amp;#039;13&amp;#039;&amp;#039;&amp;#039;:1 (1970)&lt;br /&gt;
* Derick Wood: A further note on top-down deterministic languages. &amp;#039;&amp;#039;Comp. Journal&amp;#039;&amp;#039;&amp;amp;thinsp; &amp;#039;&amp;#039;&amp;#039;14&amp;#039;&amp;#039;&amp;#039;:4 (1971)&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Lf-Parser}}&lt;br /&gt;
[[Kategorie:Compilerbau]]&lt;br /&gt;
[[Kategorie:Computerlinguistik]]&lt;br /&gt;
[[Kategorie:Programmierwerkzeug]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Aka</name></author>
	</entry>
</feed>