Partage
  • Partager sur Facebook
  • Partager sur Twitter

Créer un langage interprété

Besoin de précision et/ou d'explications

21 février 2011 à 14:39:02

Salut les Zéros !

Je viens vers vous afin d'avoir des précisions et/ou des explications sur "Comment créer un langage inteprété ?" (comme Python, par exemple).

Pourquoi j'aimerais faire ça ?

Tout simplement pour savoir comment on fait (càd, à but éducatif). J'ai aucune prétention à faire le nouveau langage qui va révolutionner l'informatique... :p . Juste savoir comment cela fonctionne.

Bien sûr, avant de poster ici, je me suis renseigné via notre ami Google et j'ai compris (enfin, je crois) le fonctionnement :

  • Vérifier la grammaire du programme
  • Vérifier la syntaxe du programme
  • Lancer le programme


Tout ça grâce à l'algorithme BNF.

Mais, je n'ai pas trouvé de réponses concrètes et satisfaisantes à mes questions :

  • Dans quel langage peut-on créer un interpréteur ? J'ai vu que l'on disait que OCaml était le mieux pour ceci. Est-ce vrai ?
  • Comment relier l'interpréteur au fichier qui contient les commandes ?
  • Avez-vous des tutoriels / documents qui expliquent de manières claires ceci ? (Beau chercher sur Internet, rien trouver... :( )


Merci d'avance pour vos réponses/précisions/explications ! ;)

P.S: je tiens à dire que maîtrise C++, Java et je connais le Python.
  • Partager sur Facebook
  • Partager sur Twitter
22 février 2011 à 9:53:02

si tu ne connais rien à la programmation fonctionnelle, et à OCaml en particulier... ce n'est peut-être pas une bonne idée de démarrer sur un projet

en C++, tu trouveras flex/bison comme équivalent à ocamllex/ocamlyacc, ou boost::spirit pour des choses plus simples (combinateurs de parseurs, grammaire LL)
  • Partager sur Facebook
  • Partager sur Twitter
22 février 2011 à 12:19:39

gorgonite > Traître à la cause !

V@l3NtIn > Je t'invite à commencer par regarder les ateliers qui ont lieu sur le site du zéro, dont plusieurs sont liés à l'implémentation de langages. Tu devrais regarder en particulier l'atelier Brainfuck, qui consiste à un interpréter un langage très simple, et l'atelier calculatrice qui travaille sur des points plus avancés de la reconnaissance de la grammaire. Enfin, l'atelier P'tit langage, plus avancé, s'intéresse à l'implémentation d'un langage plus costaud, inspiré de Lisp.

Ces trois sujets contiennent des discussions, du code dans de nombreux langages, et tu peux aller y poster si tu as fait des expérimentations et as des choses intéressantes à dire.
  • Partager sur Facebook
  • Partager sur Twitter
22 février 2011 à 18:23:41

Pour compléter le message de bluestorm je te donne en plus ce lien http://sjrd.ftp-developpez.com/tutorie [...] ntaxiques.pdf qui je suis sur t’aidera énormément.

Bonne chance
  • Partager sur Facebook
  • Partager sur Twitter
23 février 2011 à 19:08:06

Je peux également te proposer l'un de mes projets : Ktopsy
Il s'agit d'un compilateur/interpréteur pour un langage que j'avais créé en m'inspirant d'anciens langages comme Ada.

Bon, c'était l'un de mes premiers projets en C++ et le premier en Qt. Donc le code ne casse pas trois pattes à un canard mais il fonctionne.
  • Partager sur Facebook
  • Partager sur Twitter
23 février 2011 à 19:52:12

dimitry > le choix de faire en une seule passe l'analyse syntaxique et la compilation rend le code franchement un peu difficile à suivre. Passer par un arbre syntaxique intermédiaire permettrait plus de clarté, et d'éventuelles analyses/optimisations.
Ceci dit, l'idée d'une interface graphique pour faire ce genre de choses est bonne et je trouve la réalisation finale convaincante (malgré les bugs).

Tu pourrais montrer ça dans l'atelier P'tit langage, si ça t'intéresse d'avoir des suggestions et éventuellement de retravailler un peu dessus.
  • Partager sur Facebook
  • Partager sur Twitter
24 février 2011 à 16:27:54

En réalité, il s'agit d'un projet pour des étudiants de BTS et en école d'ingénieur.

Ils doivent construire l'analyseur syntaxique, dans un module sur la théorie des langages.
Du coup, je suis reparti de ce qu'ils ont fait pour y ajouter toute la partie compilation et interprétation. Histoire de ne pas leur demander de tout refaire... (le projet ne tient déjà pas dans les heures de cours).
Eux ont également l'air de trouver cette manière de faire plus simple.
Les TP sur les arbres syntaxiques passent très mal.


J'avais pour objectif de retranscrire tous mes cours et en faire un tutoriel mais je suis en perte de motivation, je crois...
  • Partager sur Facebook
  • Partager sur Twitter
24 février 2011 à 17:27:09

C'est peut-être une conséquence du choix du langage enseigné. Dans le cadre de TPs Caml, j'ai pu observer que les arbres syntaxiques passent au contraire plutôt bien.
  • Partager sur Facebook
  • Partager sur Twitter
24 février 2011 à 17:45:53

J'avais proposé OCaml ou même Ruby ou Perl ne serait-ce que pour changer un peu.
Mais Leurs enseignants ont refusé prétextant que ce sont des langages peu utilisés et assimilables en deux jours.
Je suis déjà content que les étudiants puissent voir autre chose que du Java.

Le pire, c'est que La moitié d'entre eux sont chercheurs pour l'INRIA...

Par contre, le Caml serait un très bon choix pour la version objet de mon langage, tiens.
  • Partager sur Facebook
  • Partager sur Twitter
10 février 2024 à 22:06:54

Du temps oû j'étais etudiant, mon prof Jacques Arsac avait crée un langage de description des algorithmes designé par EXEL. Une presentation de ce langage est faite sur wikipedia.Moyenant qq ajouts il peut très bien faire un langage de programmation...D'où l'idée de concevoir un interpreteur pour ce langage...

  • Partager sur Facebook
  • Partager sur Twitter
11 février 2024 à 18:55:43

AlimanAlalou a écrit:

Du temps oû j'étais etudiant, mon prof Jacques Arsac avait crée un langage de description des algorithmes designé par EXEL. Une presentation de ce langage est faite sur wikipedia.Moyenant qq ajouts il peut très bien faire un langage de programmation...D'où l'idée de concevoir un interpreteur pour ce langage...


Tu sais que tu viens de répondre à un post qui date de 13 ans ?
  • Partager sur Facebook
  • Partager sur Twitter
11 février 2024 à 21:55:12

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Liens conseillés

Je ferme ici.

  • Partager sur Facebook
  • Partager sur Twitter