Dove posso trovare il materiale per l'apprendimento EBNF?
-
21-08-2019 - |
Domanda
ebnf: EBNF
Sono molto nuovo a concetti di analisi. Dove posso trovare sufficientemente facile da leggere e seguire il materiale per la scrittura di una grammatica per il boost :: biblioteca spirito, che utilizza una grammatica simile a EBNF?
Al momento sto cercando in EBNF da Wikipedia.
Soluzione
L'articolo di Wikipedia è accurato. Se si ha accesso, assolutamente leggere Articolo originale di Wirth sul EBNF.
L'altra cosa da sapere è che EBNF è stato progettato per rendere più facile da mano scrivere parser ricorsive-discesa per le lingue in cui ogni costrutto sintattico è identificare le parole chiave all'inizio. Le parentesi graffe si traducono in while
loop; parentesi quadre (roba opzionale) si traduce in if
, e le alternative si traducono in if-then-else
dichiarazioni oa case
. Se avete il lusso di progettare la vostra lingua in questo modo è possibile mettere fuori un parser rapidamente e dare buoni messaggi di errore.
L'unico posto questo diventa un po 'noiosa è quando si dispone di una lingua in cui ci sono operatori infissi con diversi livelli di priorità. Per questo si desidera carta Compact ricorsiva-Discesa di analisi delle espressioni . Forse il rapporto tecnico della serie Princeton ha una versione gratuita, e si può sempre guardare il codice in anteriore C di Hanson fine .
Altri suggerimenti
BNF per sé è semplice, ma è necessario per abituarsi al modo in cui gli scrittori compilatore pensano. Essi non sono necessariamente facile lettura, ma in seguito sono dispense da UC Berkeley e Stanford.
Bene, penso che Wikipedia è il modo più semplice per due motivi:
- Si afferma i punti più rilevanti sull'articolo
- Ha collegamenti per ulteriori letture in fondo alla pagina
Inoltre vorrei suggerire la lettura di standart BNF solo per acquisire familiarità con l'idea dietro di esso.
Almeno ho sempre iniziare con Wikipedia troppo, e aiuta quasi sempre.