Diciamo che volevo creare un interprete / interprete di linguaggio dinamico, forse un interprete Scheme, sulla piattaforma .NET così com'è oggi. Sarebbe meglio usare Dynamic Language Runtime (DLR), o usare C # 4.0 per implementare le funzionalità dinamiche della mia lingua? O ho bisogno di entrambi?
So che ci sono stati altri lavori in quest'area, in particolare con IronScheme e IronPython . Entrambe le lingue usano il DLR; Credo che IronPython utilizzi la versione più recente del DLR (che ha circa un anno), mentre IronScheme utilizza un fork precoce e pesantemente modificato di una versione precedente del DLR. Ma C # 4.0 non era disponibile quando questi compilatori sono stati creati.
Ho visto il lavoro di Rob Conery con Massive, utilizzando Le caratteristiche dinamiche di C # 4.0; è piuttosto impressionante. Ma C # può contenere lo sforzo su scala reale di un compilatore / interprete di lingue dinamico? Ci sono funzionalità nel DLR che mancano in C #, oppure il DLR è stato essenzialmente inserito in C # 4.0? Mi mancherebbero alcune caratteristiche importanti del DLR se usassi solo C # 4.0 in modo esclusivo?