È un libro che insegna come costruire compilatori validi per imparare a implementare gli interpreti? [chiuso]

1

Sto cercando un libro per imparare come implementare gli interpreti per i linguaggi di programmazione. Il punto è che ci sono molti più "libri di compilazione" che "libri di interpreti". Quindi la mia domanda è: posso leggere un libro che insegna come compilare compilatori, per imparare come costruire interpreti (ad un livello molto principiante)? E 'questa una buona idea? In tal caso, cosa devo tenere a mente durante la lettura?

    
posta Aviv Cohn 23.07.2014 - 12:39
fonte

2 risposte

7

Assolutamente - un interprete è solo un compilatore "una riga alla volta". Svolge lo stesso compito, quello di prendere qualche forma di codice sorgente comprensibile all'uomo e trasformarlo in qualcosa che un elaboratore del computer può capire. Un compilatore lo farà per interi file sorgente, mentre un interprete lo farà su base di lettura.

Dovrai gestire alcune differenze in merito al caricamento dell'origine, se necessario, e alla gestione dei file sorgente di analisi per trovare la riga successiva da leggere, ma altrimenti applicheresti fondamentalmente un compilatore.

    
risposta data 23.07.2014 - 12:45
fonte
3

Is a book that teaches how to build compilers good for learning to implement interpreters?

Sì. Un buon libro sui compilatori coprirà una vasta gamma di argomenti, molti dei quali sono direttamente rilevanti per gli interpreti / le lingue interpretate. Ad esempio:

  • analisi lessicale
  • l'analisi
  • creazione di un AST
  • controllo del tipo, risoluzione dell'identificatore e altri tipi di analisi semantica
  • "compilatore" segnalazione errori
  • forse ... generazione di un codice macchina astratto che l'interprete "eseguirà".

If so, what do I need to keep in mind while reading?

Tieni presente che parte del materiale nel libro potrebbe non essere pertinente. Ad esempio, una macchina astratta tipica è senza registrazione, quindi le sezioni del libro sull'assegnazione del registro durante la generazione del codice non sono in genere pertinenti per un interprete.

(Ma questo è solo un buonsenso: normalmente non leggeresti un libro del genere da una copertina all'altra. Normalmente potresti sfiorare i bit che non sembrano pertinenti ai tuoi obiettivi.)

    
risposta data 23.07.2014 - 13:32
fonte

Leggi altre domande sui tag