Imparando ad implementare il compilatore del linguaggio digitato in modo dinamico [chiuso]

3

Sono interessato a imparare come creare un compilatore per un linguaggio tipizzato in modo dinamico. La maggior parte dei libri di compilazione, dei corsi universitari e degli articoli / tutorial che ho incontrato sono specifici per le lingue tipizzate in modo statico. Ho pensato ad alcuni modi per farlo, ma mi piacerebbe sapere come è fatto di solito. So che il tipo di inferenza è una strategia piuttosto comune, ma che dire degli altri?

Dove posso trovare ulteriori informazioni su come creare una lingua digitata in modo dinamico?

Modifica 1:   Intendevo digitato in modo dinamico. Mi dispiace per la confusione.

Ho scritto compilatori giocattolo per lingue tipizzate staticamente e ho scritto alcuni interpreti per le lingue digitate dinamicamente. Ora, sono interessato a saperne di più sulla creazione di compilatori per un linguaggio digitato in modo dinamico. Sto specificatamente sperimentando LLVM e poiché ho bisogno di specificare il tipo di ogni metodo e argomento, sto pensando a modi per implementare un linguaggio tipizzato dinamicamente su qualcosa come LLVM.

    
posta TriArc 10.03.2011 - 02:54
fonte

5 risposte

1

La struttura e l'interpretazione dei programmi per computer termina con il completamento dell'intero interprete per Scheme in Schema. Quale può darti una buona panoramica di come si possa implementare un linguaggio dinamico.

Raccomando anche di leggere il codice sorgente di Ruby. Non ho provato a leggerlo in molti anni. Ma quando l'ho provato l'ultima volta, è stato straordinariamente chiaro e facile da capire. Ci sono molte buone idee lì dentro.

    
risposta data 10.03.2011 - 09:53
fonte
1

C'è anche Scrivi un piano in 48 ore , ai miei occhi un ottimo tutorial per implementare un linguaggio dinamico (Scheme ) in un linguaggio rigoroso (Haskell).

    
risposta data 10.03.2011 - 23:20
fonte
0

Se sei interessato a un comune compilatore di lisp - come è fatto e così via - puoi controllare il codice sorgente di Armed Bear Common Lisp e indirizzare alcune domande specifiche a quella comunità. Mac Ruby è un compilatore per Ruby che utilizza LLVM infrastruttura. Il codice sorgente e la comunità attorno a ciascun progetto potrebbero essere risorse preziose per te.

    
risposta data 10.03.2011 - 04:42
fonte
0

Where can I find out more about how to create a dynamically typed language?

["digitato dinamicamente" è spaventoso. "dinamico" è piuttosto comune.]

Passaggio 1. Scegli un linguaggio dinamico. Veramente. Scegline uno.

Passaggio 2. Google la lingua. Veramente. Utilizza Google.

Passaggio 3. Trova la fonte per la lingua. È facile. Python, Ruby, Lua, Haskell, ecc., I compilatori e i run-time sono tutti online. link , link , link , link , link

Passaggio 4. Leggi. Veramente. Leggi la fonte per il compilatore. È facile. È online Gli autori offrono un'ampia documentazione sulla loro lingua.

Quale parte di questo ti sta dando problemi? Sii specifico e aggiorna la tua domanda.

    
risposta data 10.03.2011 - 12:14
fonte
0

Per lo schema, leggi questo: link

Anche le fonti di IronPython potrebbero essere utili.

Per il compilatore del linguaggio dinamico più avanzato, vedi V8: link

    
risposta data 10.03.2011 - 11:32
fonte

Leggi altre domande sui tag