37 votes

existe-t-il un compilateur simple pour un petit langage ?

Je cherche un compilateur simple qui compile un langage simple, j'en ai besoin pour écrire un article à ce sujet et pour apprendre comment les compilateurs fonctionnent, je ne cherche pas une chose sophistiquée juste un langage simple (par simple je veux dire un petit code parce que par exemple gcc est trop gros). toute aide est appréciée.

47voto

Norman Ramsey Points 115730

Si vous voulez regarder le code, je suis très impressionné par le code d'Eijiro Sumii. MinCaml compilateur.

  • Il n'y a que 2000 lignes.

  • Il compile un langage source assez intéressant.

  • Il génère du vrai code machine, rien de tout cela en C ou en LLVM :-)

  • La vitesse du code compilé est compétitive avec gcc et les compilateurs OCaml natifs.

  • Le compilateur est conçu pour l'enseignement.

Ai-je mentionné que j'ai été très impressionné ?

8voto

kotlinski Points 12815

Je recommande TinyScheme ou jonesforth .

6voto

John R. Strohm Points 5338

Jack Crenshaw, un docteur qui a beaucoup écrit sur les méthodes numériques pratiques, a longtemps eu peur des compilateurs. Il en a finalement eu assez d'avoir peur et a écrit un tutoriel en plusieurs parties sur la construction des compilateurs, en se basant sur ce qu'il a appris en s'initiant à ce sujet.

Voir "Construisons un compilateur" pour plus d'informations. Notez qu'il n'est pas complet ; il s'est essoufflé avant de le terminer, mais il contient beaucoup d'informations faciles à digérer.

5voto

Prof. Falken Points 10242

Environ 1000 lignes de code. Compile Scheme en assembleur LLVM ou en C. Je dirais que cela convient parfaitement à un article sur les compilateurs. Si vous voulez aller plus loin, je vous recommande le livre "SICP" .

4voto

Sammy Points 41

Regardez le compilateur simple pour PL/0 (un petit sous-ensemble de type Pascal - pas de paramètres, seulement des données entières). La source, écrite en Pascal, ne comporte qu'environ 500 lignes de code, et est facile à suivre. C'est peut-être tout ce que vous avez besoin de voir.

Cependant, si vous voulez aller un peu plus loin, une fois que vous êtes à l'aise avec cela, regardez la source de Pascal-S. Il s'agit d'un compilateur pour un plus grand sous-ensemble de Pascal, mais il inclut quelques concepts supplémentaires, comme le passage de paramètres, des types de données supplémentaires, des tableaux et des enregistrements (structures). Cependant, il n'y a qu'environ 2000 lignes de code, et il est facile à suivre une fois que vous avez maîtrisé le PL/0.

Vous pouvez trouver les sources ici :

http://standardpascal.org/source.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X