Domanda

Il mio college inizierà presto, ma voglio fare qualcosa nelle restanti settimane :)

Ho frequentato un corso lo scorso semestre su linguaggi di programmazione e voglio portare le mie conoscenze in realtà. In quale lingua semplice , elegante può un programmatore junior implementare un interprete?

Non mi importa se la lingua è molto piccola o sperimentale.

È stato utile?

Soluzione

RPAL si compila in espressioni lambda, che possono quindi essere interpretate.

Altri suggerimenti

assemblaggio

Non sto parlando di compilarlo in codice macchina. Solo un interprete.

L'abbiamo fatto nel primo anno, ma il prof ha scritto la macchina virtuale, ma puoi comunque scriverlo da solo.

Lisp e / o Scheme. Per i puntatori, leggi il codice di IronLisp sviluppato da leppie .

lolcode e brainfuck sono entrambi piccoli e piuttosto semplici.

Progetta il tuo linguaggio, quindi cerca di implementarlo .. poi inchinati umilmente davanti a quelli che hanno progettato e implementato simili a c ++, Java, c sharp, ecc.

ma sicuramente provaci! È stimolante e soprattutto divertente!

Wirth's Pascal è un linguaggio classico progettato per un facile analisi, ha una semantica rigorosa ma semplice ed è spesso usato come esercizio per l'analisi / scrittura del compilatore.

Provenendo da un background imperativo (basato sul cambiamento) (familiare all'assembly, C, Pascal), si potrebbe provare un adattamento di brainfuck , perché è estremamente facile da interpretare.

Questo potrebbe essere esteso con una piccola sintassi leggibile dall'uomo a un linguaggio simile ad un assembly e con alcuni sforzi potrebbe diventare un po 'BASIC (o C).

Targeting per linguaggi funzionali, un po ' LISP o lambda calculus è relativamente semplice. Esistono diverse implementazioni come IronLisp o il Scrivi te stesso uno schema in 48 ore che mostra il modo in cui .

Diverse persone hanno implementato varianti del mio linguaggio basato su stack (Cat) nel loro tempo libero.

Puoi scegliere qualsiasi lingua ma fai l'interprete solo per un sottoinsieme di quella lingua. In questo modo puoi iniziare a lavorare con la lingua che conosci e che non hai bisogno di perdere tempo per impararne una nuova.

PAL è il linguaggio che abbiamo usato nella mia classe di compilatore. Che cos'è PAL? È un sottoinsieme di PASCAL sciocco!

Ad ogni modo, Pascal è carino poiché tutto è tempo di compilazione.

BASIC sarà abbastanza .... ben base :). Puoi semplicemente iniziare valutando le espressioni. Anche questo è molto soddisfacente quando sei ancora in collage. Potrei chiederti se quale lingua prevedi di utilizzare?

jasmin stack based assembly, e dal momento che è possibile decompilare java nei suoi programmi di test banali facili da scrivere.

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