vantaggi, svantaggi e difficoltà di scrittura di una lingua da utilizzare .NET

Sto pensando eventualmente la progettazione/costruzione di un linguaggio ad un certo punto, e quali sono i vantaggi, gli svantaggi e le difficoltà di scrittura run sul .NET framework/CLR?

Che è un ordine abbastanza alto!

OriginaleL’autore RCIX | 2009-08-12

One Reply
  1. 21

    La parte più difficile sarà la progettazione di un efficace linguaggio di programmazione. Molte persone hanno dedicato la loro intera carriera per il compito. Dal momento che ci sono state molte domande qui sul linguaggio di design e in generale l’analisi di domande, mi concentrerò in particolare sull’aspetto della targeting CLR.

    Vantaggi

    • Generazione di byte di codice in forma binaria è abbastanza semplice utilizzando il System.Reflection.Emit spazio dei nomi e il nuovo e fantastico System.Linq.Expressions abilità .NET 4.0. Questa configurazione è una delle principali motivazioni che a mio personale desiderio di destinazione CLR.
    • Il codice beneficiare di molte ottimizzazioni costruito in CLR JIT e gestore di memoria.
    • In generale, sarete in grado di costruire un compilatore per il linguaggio in meno tempo se si sceglie di destinazione CLR vs costruire il proprio codice nativo.

    Svantaggi

    • Verrà eseguito solo su piattaforme che .NET framework viene eseguito sul. Se si evita di P/Invoke chiamate, poi con l’aiuto del progetto Mono, questo non dovrebbe essere il problema.
    • Dovrete inferiore i costrutti semantici nella vostra lingua per una forma rappresentabile in CIL istruzioni e CLI modello a oggetti. Per procedurali, fortemente tipizzato, facoltativamente linguaggi object oriented, questo è piuttosto semplice. Funzionale o linguaggi tipizzati in modo dinamico, questo può essere abbastanza una sfida, ma è possibile ottenere qualche aiuto da DLR se hai bisogno di quelle caratteristiche.
    • In generale, non dispone di un comodo accesso alla macchina funzioni intrinseche, così come per un targeting per lingua ad alte prestazioni/vettorializzare il calcolo scientifico, si possono incontrare alcuni problemi di prestazioni con le attuali implementazioni. Mono sta lavorando attivamente sulla questione, ma né il Mono o il .NET Framework sono in posizione come “una tecnologia esistente.”

    Difficoltà (Non contando la lingua e compilatore di front-end)

    • Più “interessante” aspetto è che stabilisce il metodo di esprimere la tua lingua costrutti semantici sotto le restrizioni di CLR.
    • Non c’è molto altro da dire qui. Rispetto ad altri obiettivi, è abbastanza facile bersaglio CLR.

    Riepilogo

    Il CLI è una grande opzione per le persone che lavorano su nuove implementazioni lingua. Esso consente di prendere la vostra mente fuori il compilatore comuni di back-end e concentrarsi sulla semantica del linguaggio stesso. Io non consiglia di qualcuno di creare una nuova lingua, ma se si decide di, CLI sarà un buon amico del tuo viaggio.

    Wow è una buona risposta!

    OriginaleL’autore Sam Harwell

Lascia un commento