Grammatik - gültige Ausdrücke der Programmiersprache LISP

Neue Frage »

Auf diesen Beitrag antworten »
estrelladelanoche Grammatik - gültige Ausdrücke der Programmiersprache LISP

Meine Frage:
Ich habe folgende Grammatik gegeben:

expr: atom
| '(' { expr } ')'
;

atom: id
| num
;

num: '0'..'9'{'0'..'9'}
id: ('a'..'z' | 'A'..'Z') {('a'..'z' | 'A'..'Z' | '0'..'9')}
Diese Grammatik beschreibt (fast) alle gültigen Ausdrücke der Programmiersprache LISP.

Die Fragestellung lautet ob folgenge expr gültige Ausdrücke sind
 ()
 () ()
 3
 (3)
 (-3)

 (1 (2 (3 4)))
 (a1 2)
 (a (1) (2))
 (list 1 2 (list 3 4))
 (lambda (x) (f x))

Meine Ideen:
Mein Problem ist das mir nicht klar ist, wie ich herrausfinden kann ob diese Ausdrücke gültig sind oder ob das nicht der Fall ist.

Kann mir jemand bitte erklären, wie ich das abgleichen kann?

Danke
 
Auf diesen Beitrag antworten »
Karlito

Hallo,

ich denke hier wird erwartet, dass du eine Folge von Produktionen angibst, welche zum gewünschten Wort führen.

Formal kenne ich nur den CYK-Algorithmus. Das ist etwas aufwändiger.

Ich hoffe ich konnte Dir weiterhelfen.

VG,

Karlito
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »