Sto pensando di progettare/costruire una lingua in un certo momento, e quali sono i vantaggi, gli svantaggi e le difficoltà di scrittura di eseguirlo su. NET framework/CLR?vantaggi, svantaggi e difficoltà di scrittura di una lingua da utilizzare. NET
risposta
La parte più difficile sarà la progettazione di un linguaggio di programmazione efficace. Molte persone hanno dedicato la loro intera carriera al compito. Poiché ci sono state molte domande qui sulla progettazione del linguaggio e sulle domande generali di analisi, mi concentrerò specificamente sull'aspetto del targeting del CLR.
Vantaggi
- Generazione byte di codice in forma binaria è piuttosto semplice utilizzando il
System.Reflection.Emit
spazio dei nomi e le impressionanti nuoviSystem.Linq.Expressions
abilità in .NET 4.0. Questa impostazione è uno dei principali motivatori nel mio desiderio personale di indirizzare il CLR. - Il tuo codice trarrà vantaggio da molte delle ottimizzazioni integrate nel JIT di CLR e nel gestore di memoria.
- In generale, sarà possibile creare un compilatore di lavoro per la propria lingua in meno tempo se si sceglie di indirizzare il CLR rispetto alla creazione del proprio codice nativo.
Svantaggi
- sarà eseguito solo su piattaforme che il framework .NET gira su. Se si evitano le chiamate P/Invoke, quindi con l'aiuto del progetto Mono questo non dovrebbe essere il problema.
- È necessario inferiore i costrutti semantici nella propria lingua in una forma rappresentabile nelle istruzioni CIL e nel modello di oggetto CLI. Per linguaggi procedurali, fortemente tipizzati, opzionalmente orientati agli oggetti, questo è piuttosto semplice. Per le lingue funzionali o dinamicamente tipizzate, questa può essere una vera sfida, ma potresti ottenere aiuto dal DLR se hai bisogno di quelle funzionalità.
- In generale, non è possibile accedere facilmente alle funzioni intrinseche della macchina, quindi per un linguaggio che mira al calcolo scientifico ad alte prestazioni/vettorializzato, è possibile che si verifichino problemi di prestazioni con le attuali implementazioni. Mono sta lavorando attivamente al problema, ma né Mono né .NET Framework lo hanno definito "una tecnologia consolidata".
Difficoltà (senza contare il linguaggio e compilatore front-end)
- L'aspetto più "interessante" è il layout del metodo di esprimere costrutti semantici del linguaggio con le restrizioni del CLR.
- Non c'è molto altro da dire qui. Rispetto ad altri target, è abbastanza facile indirizzare il CLR.
Sommario
La CLI è una grande opzione per le persone che lavorano su nuove implementazioni del linguaggio. Ti consente di distogliere la mente dal comune back-end del compilatore e di concentrarti sulla semantica del linguaggio stesso. Potrei non consigliare qualcuno crea una nuova lingua, ma se lo decidi, la CLI sarà un buon amico nel tuo viaggio.
Wow, questa è una buona risposta! – RCIX
- 1. Vantaggi e svantaggi di NHibernate
- 2. Vantaggi e svantaggi dell'utilizzo di Enterprise Library
- 3. Vantaggi e svantaggi dell'utilizzo di ReactJS
- 4. Android NDK vantaggi e svantaggi
- 5. Quali sono i vantaggi e gli svantaggi dell'utilizzo di OpenID?
- 6. NServiceBus: vantaggi e svantaggi dell'uso di NServiceBus Distributore
- 7. Vantaggi e svantaggi di Java EE e servlet
- 8. Vantaggi e svantaggi dell'uso di immagini codificate in Base64
- 9. Annotazioni vs XML, vantaggi e svantaggi
- 10. Quali sono i vantaggi e gli svantaggi dell'utilizzo di ARC?
- 11. Vantaggi e svantaggi di avere la chiave primaria composita ...
- 12. Difficoltà nella lingua VBA di Excel
- 13. vantaggi/svantaggi di opzione pconnect in CodeIgniter
- 14. Vantaggi/Svantaggi delle guerre esplose
- 15. Vantaggi/svantaggi dei puntatori automatici
- 16. Vantaggi e svantaggi delle relazioni polimorfiche di Ruby on Rails
- 17. Python: vantaggi e svantaggi di _mysql vs MySQLdb?
- 18. IIS Web Garden vantaggi/svantaggi
- 19. Accesso sessione vs autenticazione HTTP. Vantaggi Svantaggi
- 20. Vantaggio e svantaggi di CardView
- 21. Scrittura di un gestore di memoria in una lingua gestita?
- 22. Interrogazioni incrociate tra database, unisce vantaggi e svantaggi
- 23. implementa l'elenco collegato utilizzando l'array - vantaggi e svantaggi
- 24. Postgresql enum quali sono i vantaggi e gli svantaggi?
- 25. .net colata di difficoltà interi fanno decimali
- 26. Utilizzo di Redis for Pub Sub. Vantaggi/svantaggi su RabbitMQ
- 27. Web Services vs EJB vs RMI, vantaggi e svantaggi?
- 28. Vantaggi e svantaggi della parola chiave "dinamica" C# 4.0?
- 29. xUnità o NUnit? Quali vantaggi e svantaggi l'uno dell'altro?
- 30. Quali sono i vantaggi e gli svantaggi di un sito Web che contiene una singola pagina?
Questo è un ordine abbastanza alto! – womp