J'ai écrit un DSL en utilisant Antlr pour générer un lexeur et un analyseur à partir de mon fichier de grammaire. L'analyseur génère un arbre de syntaxe abstraite qui contient divers nœuds (par exemple un nœud de fonction) que je peux calculer. Dans le code pour les nœuds de fonction, je m'occupe de vérifier les noms des fonctions et les types de paramètres pour les correspondances à partir d'une bibliothèque de fonctions. J'ai une mise en cache simple ici pour optimiser la fonction de recherche (si j'appelle A + B avec deux ints alors il y a de fortes chances que la prochaine fois que j'utiliserai l'opérateur plus, ce sera avec 2 ints). Récemment, j'ai lu sur le DLR et il semble être conçu pour accueillir ce type d'implémentation de langage de script. A première vue ça ne me regarde pas comme si ça générait l'analyseur ou le lexer mais il semble que ça aide les autres parties de l'implémentation. Je me demandais quels seraient les principaux avantages pour moi d'utiliser le DLR.Quels sont les principaux avantages du passage au DLR pour mon langage de script?
Répondre
L'accès complet au framework .NET est le plus important.
- L'accès à la bibliothèque de classes de base .Net et types
- L'accès aux bibliothèques tierces écrites pour .Net
- Vous pouvez laisser Microsoft vous soucier de l'entretien de l'API (mises à jour de sécurité, etc.) Vous
- peut accueillir la langue dans Visual studio
Si vous implémentez la liaison avec soin, le DLR vous donnera un mécanisme de mise en cache très puissant - probablement plus fortement que vous n'optimized être réaliste capable de le faire sur votre OW n. En outre, vous avez plus de chances d'obtenir une bonne interopérabilité avec d'autres langues, car vous utiliserez un protocole d'objet dynamique "standard". Par exemple, C# 4 serait en mesure d'appeler dans votre langue sans aucun travail supplémentaire, simplement en utilisant le type dynamic
. Pour faire cela sans le DLR, vous devez générer des types CLR statiques "normaux".
Il est difficile de savoir avec certitude quel avantage il y aurait parce que nous ne savons pas pour quoi vous voulez utiliser votre langue, ou combien elle le fait déjà. Cependant, il y a évidemment beaucoup de gens très intelligents qui travaillent sur le DLR - il me semble que si vous créez un langage dynamique pour fonctionner sur .NET, il serait logique de profiter de leur travail.
- 1. Quels sont les trois principaux concepts principaux de WPF?
- 2. Quels sont les principaux concurrents de Servoy?
- 3. Quels sont les avantages du design pour les programmeurs?
- 4. Quels sont les avantages/inconvénients de py2exe
- 5. Quels sont les principaux/principaux dépôts Maven à utiliser?
- 6. Quels sont les avantages de Struts
- 7. Quels sont les avantages des différentes endiannesses?
- 8. Quels sont les avantages de LePUS3 par rapport à UML?
- 9. Quels sont les avantages de bytecode par rapport au code natif?
- 10. Quels sont les avantages/inconvénients de l'utilisation d'un CTE?
- 11. Quels sont les avantages et les inconvénients de l'utilisation d'OpenID?
- 12. Quels sont les avantages de l'utilisation de plpgsql dans postgresql
- 13. Quels sont les avantages des contrôles de contenu MS Word?
- 14. Hébergement CLR contre l'utilisation de ClrCreateManagedInstance - quels sont les avantages?
- 15. Quels sont les avantages de Blocking Queue en Java?
- 16. Quels sont les avantages de l'utilisation de OnAsyncPostBackError sur Page_Error
- 17. log4net, la journalisation, quels sont les plus grands avantages
- 18. Avantages et inconvénients du langage de balisage pour l'interface utilisateur
- 19. Quels sont les avantages et les inconvénients d'avoir plusieurs héritages?
- 20. Quels sont les plus grands avantages de LLVM?
- 21. Quels sont les avantages et les inconvénients de LinkedHashMaps vs. LinkedHashSets?
- 22. Quels sont les avantages d'utiliser un concept comme IStableable?
- 23. Quels sont les avantages et les inconvénients d'utiliser des téléphones iPhone/Android pour écrire des scripts?
- 24. Quels sont les avantages d'un script Powershell sur une application console?
- 25. Quels sont les avantages et les inconvénients du service Msmqdistributor de Enterprise Library?
- 26. Quels sont les avantages d'utiliser Prolog dans d'autres langues?
- 27. Quels sont les avantages et les inconvénients de l'utilisation du pattern Front Controller?
- 28. Quels sont les avantages du transformateur à variation de phase de R6RS Scheme?
- 29. Quels sont les avantages de l'utilisation de la passerelle SMS pour envoyer/recevoir des messages texte?
- 30. Quels sont les avantages de l'utilisation des espaces de noms dans les pages Webform?
Merci Jon, plusieurs bonnes motivations là surtout le type dynamique. J'aurais aimé pouvoir le faire lors de votre présentation à l'open-source-jam. – Jason
C'était seulement 5 minutes - aucun détail du tout. J'ai presque fini avec le chapitre dynamique de C# en profondeur, donc cela devrait être disponible bientôt. –