Was ist ein Parse Baum?
Ein Parse-Baum ist ein Baum für den gilt:
Es gibt 2 Arten von Knoten
a) Blätter sind Knoten ohne Kinder
b) Innere Knoten sind Knoten mit wenigstens 1 Kind
Blätter sind mit Variablen oder Terminal gekennzeichnet
Innere Knoten sind mit Variablen gelabeled
Gibt es Blätter mit einer Variable a, so existier eine Grammatik-Regel der Form:
a -> ʎ,
Sind innere Knoten mit einer Variable a gelabled, so existiert eine Grammatik Regel der FOrm
a -> x1 x2 x3 … xn
Schreibe einen Scanner mit Ply für den symbolischen Rechner
stmnt →Identifier “:=” expr “;”
|expr “;”
expr →expr “+” product
|expr “-” product
|product
product →product “*” factor
|product “/” factor
|factor
factor →“(” expr “)”
|Number
|Identifier
import ply.lex as lex
tokens = [ 'NUMBER', 'IDENTIFIER', 'ASSIGN' ]
def t_NUMBER(t):
r'0|[1-9][0-9]*(\.[0-9]+)?([eE][+-]?([1-9][0-9]*))?'
t.value = float(t.value)
return t
def t_IDENTIFIER(t):
r'[a-zA-Z][a-zA-Z0-9_]*'
def t_ASSIGN_OP(t):
r':='
literals = ['+', '-', '*', '/', '(', ')', ';']
t_ignore = ' \t'
def t_newline(t):
r'\n+'
t.lexer.lineno += t.value.count('\n')
def t_error(t):
c = t.value[0]
n = t.lexer.lexpos
l = t.lexer.lineno
print(f"Illegal character '{c}' at character number {n} in line {l}.")
t.lexer.skip(1)
lexer = lex.lex()
Was ist eine Kontext freie Grammatik?
Wann ist L eine Kontext freie Sprache?
L ist kontext freie Sprache g.d.w. es eine CFG G gibt, das L = L(G) ist
Was ist ein Shift Reduce Parser?
Die Funktionen goto() und action() müssen nicht definiert werden.
Was ist ein Alphabet ?
Was ist ein String?
Ein String ist eine endliche Abfolge von Zeichen aus Σ
Was ist eine formale Sprache?
Gegeben sei ein Alphabet Σ, dann ist L eine formale Sprache wenn L Teilmenge von Σ* und L ist präzise definiert.
Was ist das Produkt von zwei formalen Sprachen L1 ⋅ L2?
Potenz einer Sprache L^n
Was ist L*?
Also die Kleene Closure von L
Wie ist die Menge der regulären Ausdrücke definiert?
Simpler Scanner in Ply
Definition DFA
Definition der Übergangsfunktion δ*
Akzeptierte Sprache A eines FSM
Vollständiger DFA
Definition NFA
Abschluss Eigenschaften von regulären Sprachen
Beweis das wenn L1 und L2 reguläre Sprachen sind, das die Union L1 u L2 auch regulär ist.
Beweis das wenn L1 und L2 reguläre Sprachen sind dann ist L1 ∩ L2 auch regulär
Beweis das wenn L1 und L2 reguläre Sprachen sind, das L1 \ L2 auch regulär ist.
Closure(M)
Zuletzt geändertvor 10 Tagen