2008-11-09 3 views

risposta

2

Sono sicuro che ci sono molte ragioni diverse per farlo. In alcuni casi, è perché credi davvero che la lingua sia lo strumento migliore ... quindi scrivere l'interprete o il compilatore linguistico nella lingua stessa può essere visto come una forma di cibo per cani. Se sei veramente interessato a questo argomento, il seguente articolo è una lettura davvero sorprendente sullo sviluppo del cigolio. L'attuale versione di squeak è un runtime smalltalk scritto in smalltalk.

http://users.ipa.net/~dwighth/squeak/oopsla_squeak.html

+0

Lo Squeak VM non è realmente scritto in Smalltalk - piuttosto in Slang. Lo slang è solo C con una sintassi Smalltalk. –

7

Non si tratta tanto di scrivere l'interprete in sé - di più sulla scrittura l'interprete in un linguaggio di alto livello, non in C. Idealmente, così facendo permette di modificare i dettagli della realizzazione, e rendere l'interprete più modulare.

Per il caso specifico di PyPy, scrivere l'interprete e gli oggetti core in (R) Python consente di retarget PyPy per obiettivi (C, JVM, .NET, JavaScript, ecc.) E consente anche di sostituire aspetti come il netturbino.

0

Un ulteriore vantaggio è che se si implementano debugger e IDE validi per la lingua di destinazione, funzionano anche per la lingua di origine.

0

In questo modo, è possibile dimostrare che la lingua di destinazione è un business serio, perché essere in grado di compilare qualcosa è un segno che è una buona lingua.

OK, C++ e Java producono anche compilatori ... quindi forse quell'argomento è solo la metà di quanto possa sembrare.