Domanda

Per quali veri linguaggi di programmazione è facile scrivere interpreti?

" reale " lingue per me, sono lingue con cui puoi effettivamente scrivere un piccolo progetto, non uno dei facili Linguaggi di programmazione esoterici .

(Lo sto chiedendo perché voglio fare qualche progetto per hobby.)

È stato utile?

Soluzione

Il Metacircular Evaluator in SICP è un esercizio per scrivere un interprete Scheme in Scheme. È un progetto CS comune del primo anno.

Altri suggerimenti

È molto semplice scrivere un interprete per la programmazione lingua Forth (una volta che sai come - ma va bene documentato). Forth è stato utilizzato per problemi del mondo reale per più di 40 anni.

Forse è troppo facile, ma imparerai molto nel processo.

È disponibile un'introduzione leggera (online) capitolo 9 di Leo Brodie " Starting FORTH ".

L'originale Wirth's Pascal è un buon candidato, e spesso usato come demo nei generatori di parser. La sua grammatica è LL (1), e altrimenti abbastanza rigorosa, quindi è facile da analizzare. Anche dal punto di vista delle funzionalità è piuttosto limitato.

Potresti voler giocherellarci un po ', però - ad es. potresti voler ignorare i puntatori, ma supportare stringhe di prima classe.

Forth. Bene, ora sto scrivendo questo solo perché ho bisogno di almeno 15 caratteri nella risposta, ma le implementazioni Forth più piccole sono un paio di KB. È difficile pensare a qualsiasi altra lingua che potrebbe avere un nucleo così piccolo. Forse l'originale McCarthy del 1958 Lisp, in cui le funzioni sono state compilate a mano.

Schema o qualsiasi variante lisp.

Nella mia classe di sistemi operativi del college abbiamo scritto un interprete per Db (D-flat). Era molto semplice e ben definito.

Penso che un linguaggio di sintassi di markup, Liran. La struttura della sintassi semplifica l'analisi poiché i blocchi di codice sono chiaramente delineati tra i tag di inizio e fine. Teoricamente potresti costruire facilmente un interprete di livello 1 che analizza ed esegue direttamente il codice.

Detto questo, non ci sono linguaggi di markup là fuori che fanno cose significative nel contesto a cui sembra tu stia mirando (potresti voler scrivere il tuo). La prossima scelta migliore sarebbe probabilmente le lingue con funzionalità minima e preferibilmente non supportano la programmazione procedurale. Una lingua come BASIC dovrebbe essere facile per cui costruire un interprete di livello 1.

La prossima cosa migliore forse sono i primi linguaggi di script che non offrivano molti elementi sintattici e avevano una complessità piuttosto breve. Non riesco a pensare comunque.

Ma forse l'opzione migliore di tutte è quella di progettare la tua lingua. L'interprete diventa più facile da costruire perché hai una profonda conoscenza della sintassi del linguaggio e puoi governare la tua struttura linguistica e la semantica nell'interprete.

...

L'insistenza sull'interprete di livello 1 è perché hai detto che lo vuoi facile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top