Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:automaten:formale_sprachen:einfuehrung:start [14.12.2023 10:29] – [Formale Sprachen - Einführung] Svenja Müller | faecher:informatik:oberstufe:automaten:formale_sprachen:einfuehrung:start [26.02.2025 08:06] (aktuell) – [Definition Grammatik einer formalen Sprache] Marco Kuemmel | ||
---|---|---|---|
Zeile 16: | Zeile 16: | ||
{{ : | {{ : | ||
- | Wir betrachten eine sehr einfache Sprache, diese besteht aus Subjekten und Objekten. Insgesamt kann man Sätze bilden aus den Bestandteilen '' | + | Wir betrachten eine sehr einfache Sprache, diese besteht aus Subjekten und Objekten. Insgesamt kann man Sätze bilden aus den Bestandteilen '' |
Zwei der Elemente sind Subjekte (Higgs und Emil), zwei sind Prädikate (bellen, rennen), man kann auf genau eine Weise einen Satz bilden: | Zwei der Elemente sind Subjekte (Higgs und Emil), zwei sind Prädikate (bellen, rennen), man kann auf genau eine Weise einen Satz bilden: | ||
Zeile 49: | Zeile 49: | ||
==== Regeln ==== | ==== Regeln ==== | ||
- | Außer dem Alphabet benötigt man eine Menge von Regeln, die festlegen, wie in der Sprache ein gültiger Satz gebildet wird. Man draf also nicht einfach Symbole des Alphabets beliebig aneinanderreihen, | + | Außer dem Alphabet benötigt man eine Menge von Regeln, die festlegen, wie in der Sprache ein gültiger Satz gebildet wird. Man darf also nicht einfach Symbole des Alphabets beliebig aneinanderreihen, |
<WRAP center round important 80%> | <WRAP center round important 80%> | ||
- | Die Menge an Regeln, nach der sie Sätze unserer Sprache entstehen, wird mit **P** bezeichnet((P steht für " | + | Die Menge an Regeln, nach der die Sätze unserer Sprache entstehen, wird mit **P** bezeichnet((P steht für " |
</ | </ | ||
Zeile 70: | Zeile 70: | ||
T -> rennt // Im Platzhalter T kann rennt stehen | T -> rennt // Im Platzhalter T kann rennt stehen | ||
| | ||
- | Dabei haben wir die **Variablenmenge V** verwendet: **V={S, | + | Dabei haben wir die **Variablenmenge V** verwendet: **V={S, |
Da es - wie in diesem Beispiel - häufig vorkommt, dass eine Variable alternativ für mehrere unterschiedliche Ersetzungen stehen kann, kürzt man das häufig folgendermaßen ab: | Da es - wie in diesem Beispiel - häufig vorkommt, dass eine Variable alternativ für mehrere unterschiedliche Ersetzungen stehen kann, kürzt man das häufig folgendermaßen ab: | ||
Zeile 86: | Zeile 86: | ||
* Entwerfe einen endlichen Automaten, der nur korrekte Sätze der Sprache akzeptiert. | * Entwerfe einen endlichen Automaten, der nur korrekte Sätze der Sprache akzeptiert. | ||
* Was muss du alles anpassen, damit die Hunde auch beide fressen können? | * Was muss du alles anpassen, damit die Hunde auch beide fressen können? | ||
+ | |||
+ | |||
==== Definition Grammatik einer formalen Sprache ==== | ==== Definition Grammatik einer formalen Sprache ==== | ||
Zeile 97: | Zeile 99: | ||
S: Startvariable | S: Startvariable | ||
- | Bilden | + | bilden |
G=(V, | G=(V, | ||
| | ||
</ | </ | ||
- | |||
- | Die Sprache **L** ist die Menge aller **Wörter**, | ||
- | **Achtung:** Obwohl man "Higgs rennt" im normalen Sprachgebrauch als Satz bezeichnen würde, ist das im Sinne der formalen Sprachen ein Wort - das war oben wie ganze Zeit so, wir haben also die ganze Zeit " | + | ==== Wichtige Begrifflichkeiten ==== |
+ | |||
+ | Die Sprache | ||
+ | Wichtig: | ||
**Ableiten** bedeutet im Zusammenhang der formalen Sprachen, dass die linke Seite einer Regel durch die entsprechende rechte Seite ersetzt wird. | **Ableiten** bedeutet im Zusammenhang der formalen Sprachen, dass die linke Seite einer Regel durch die entsprechende rechte Seite ersetzt wird. | ||
+ | |||
+ | Die **Syntax** einer Sprache beschreibt die Regeln, nach denen die Sprachkonstrukte gebildet werden. | ||
+ | |||
+ | Die **Semantik** einer Sprache beschreibt die Bedeutung der Sprachkonstrukte. | ||
+ | |||
+ | Die **Pragmatik** einer Sprache beschäftigt sich mit der Verwendung und Bedeutung von Sprachkonstrukten in konkreten Situationen. | ||
---- | ---- | ||
Zeile 146: | Zeile 155: | ||
- | Mit dem Tool [[https://www.bottlecaps.de/rr/ui|"Bottlecaps"]] kann man eine Grammatik eingeben und erhält dann ein Syntaxdiagramm. Dabei gelten folgende Konventionen: | + | Mit dem Tool [[https://rr.red-dove.com/|"RR - Railroad Diagram Generator"]]((Source: https:// |
- | * Der Ersetzungspfeil '' | + | * Der Ersetzungspfeil '' |
- | * Terminalsymbole werden in einfachen | + | * Terminalsymbole werden in einfachen |
* Alternativen werden wie in unserer Schreibweise durch einen senkrechten Strich dargestellt: | * Alternativen werden wie in unserer Schreibweise durch einen senkrechten Strich dargestellt: | ||
Zeile 155: | Zeile 164: | ||
{{: | {{: | ||
=== (A4) === | === (A4) === | ||
- | Überführe die Grammatik aus Aufgabe 3 mit Bottlecaps | + | Überführe die Grammatik aus Aufgabe 3 mit RR in ein Syntaxdiagramm |
++++ Lösung | | ++++ Lösung | |