Je veux créer un langage de programmation expérimental très simple. Quelles sont les ressources que je peux consulter pour avoir un aperçu du processus de création d'un langage interprété. Je vais utiliser C++ pour construire et compiler l'interpréteur.Quel est le processus de création d'un langage interprété?
Répondre
Vous devez implémenter à la fois un analyseur et un interpréteur.
Il existe un grand livre de texte libre appelé "Langages de programmation: Application et interprétation" qui utilise le schéma pour construire des interprètes de plus en plus complexes. Il constitue également une excellente introduction aux fonctionnalités du langage de programmation.
Check it out ici: http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/
Si le schéma est pas votre tasse de thé, il peut être intéressant de regarder dans.
heh Scheme et C++ sont un long chemin à part – Earlz
Wow, cela ressemble à un très bon livre +1 pour le lien –
I comprendre le C++ et le schéma ne sont pas proches les uns des autres sur le spectre des langages, mais l'approche que ce livre prend avec Scheme peut amener le demandeur à en apprendre davantage sur les principes sous-jacents de la conception du langage. – Ben
Jetez un coup d'œil à l'analyseur syntaxique LL de la bibliothèque boost.
A quelques pas:
d'abord, construire l'analyseur. Et lexer C'est vraiment facile à faire avec des outils communs tels que lex et yacc, ou en utilisant un framework plus moderne tel que Antlr (ce que je recommande). Ces outils génèrent du code source pour votre langue cible que vous pouvez ensuite compiler et inclure dans votre projet. Lexer et parser construiront la représentation interne du fichier source.
Il y a différentes façons d'aborder ceci:
- Dans le modèle bytecode, le fichier source est compilé dans un langage interne à faible niveau, pour lequel vous écrivez un interprète bytecode qui exécute directement les opérations . C'est ainsi que fonctionnent Perl et les langages .NET, par exemple.
- Dans le modèle de l'arborescence d'objets, le fichier source est compilé dans une arborescence d'objets où chaque objet sait comment s'exécuter. Une fois l'analyse terminée, vous appelez simplement
Exec()
sur l'objet racine (qui à son tour appelleExec()
sur ses enfants, etc.). C'est essentiellement la méthode que j'utilise pour mon langage spécifique au domaine interprété Phonix.
Pour créer un langage interprété, vous devez créer deux choses:
- Une définition formelle de la grammaire de la langue
- Un analyseur qui peut lire et interpréter la langue
Une fois que vous avez défini la langue elle-même, plusieurs outils sont disponibles pour vous aider à créer un analyseur de langue. Les outils classiques sont lex et yacc, et leurs versions open-source flex et bison.
- 1. Travailler avec un langage interprété sévèrement limité
- 2. Quels sont les processus pour analyser un langage de programmation interprété?
- 3. Quel est le langage de programmation le plus concis?
- 4. quel est le meilleur langage de programmation pour le sélénium?
- 5. création de processus
- 6. Quel est ce langage de programmation?
- 7. Comment distribuer un projet construit dans un langage interprété?
- 8. Langage interprété rapide pour microcontrôleur contraint en mémoire
- 9. Quel est le processus majeur des délégués?
- 10. où est interprété le code PHP?
- 11. Quel est le processus de création d'un AlertDialog avec ListView dans Android?
- 12. Quel est le meilleur langage pour la reconnaissance d'empreinte?
- 13. mysql JOIN, comment cela est-il interprété?
- 14. Windows: Quel langage de programmation?
- 15. Création d'un langage de script
- 16. Quel est le processus de travail pour IIS7?
- 17. Quel est le processus de transformation HTML en Postscript programme
- 18. Quel est le coût de création de l'objet
- 19. Est-il difficile de compiler le langage de programmation Go?
- 20. Déclenchement de processus/création de processus Linux
- 21. Quel langage de codage est écrit dans silverlight?
- 22. Quel est le langage de script recommandé pour parler entre l'API Flash et Facebook?
- 23. Quel est l'état de Ruby en tant que langage compilé?
- 24. Dans quel langage de programmation IIS est-il écrit?
- 25. Quel est le meilleur langage de programmation pour écrire le système de suivi GPS de bureau?
- 26. Quel est le langage de programmation le plus courant/le plus dense actuellement disponible?
- 27. Quel est le processus pour se connecter à wordpress.com?
- 28. Quel est le statut actuel de LOGO? (Le langage de programmation)
- 29. Quel est le meilleur langage de programmation pour le développement de téléphones mobiles impliquant SMS?
- 30. C# est-il interprété ou compilé?
Celui-là est un peu trop spécifique à LISP. –
@Neil: bien que similaire, ce n'est pas vraiment un doublon - il pose des questions sur un interpréteur Lisp, et les réponses sont aussi exclusives à Lisp. Alors que le langage de l'OP * pourrait * être assez semblable à Lisp pour ceux qui postulent, il n'y a aucune certitude. –
En relation: http://stackoverflow.com/questions/1669/learning-to-write-a-compiler –