Compilateur

Résolu
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 - 11 janv. 2005 à 22:30
cs_ManChesTer Messages postés 374 Date d'inscription vendredi 20 octobre 2000 Statut Modérateur Dernière intervention 15 janvier 2021 - 16 janv. 2005 à 21:33
Bonjour a tous,
voila je m'interresse un peu a la creation de langage... je ne sais pas grand chose, mais j'ai une question qui me trote dans la tete... un compilateur de n'importe quel langage crée un listing assembleur pour ensuite l'assemblé... mais cette assembleur est-il realiser entierement "maison", ou il se peut qu'il s'appuie sur un assembleur deja existant?
Voila, merci par avance...
Bob...

"La chance accorde ses faveur aux esprits avertis..."

2 réponses

cs_ManChesTer Messages postés 374 Date d'inscription vendredi 20 octobre 2000 Statut Modérateur Dernière intervention 15 janvier 2021
16 janv. 2005 à 21:33
Pour réaliser un vrai compilateur, il faut d'abord traduire ton code souce en assembleur :
par exemple :

For j=1 to 10 do
x=x+1;

mov ecx,10
For:
add varx,1
loop For

Esuite tu dois traduire l'assembleur généré en code binaire comprèhensible par le cpu.
Pour ce faire tu dois utiliser une tabe opcodes un exemple de table sur http://packetstorm.widexs.nl/programming-tutorials/Assembly/opcodes-intel.html

une fois cette operation rèalisée, pour faire un executable, tu dois encore introduire un header d'executable exemple sur : http://win32assembly.online.fr/pe-tut3.html , il faut biensur respecter se format lorse que tu met en ordre les données dans ton fichier executable final.

Voila la procédure, et pour ce qui est d'utiliser une base tires, tu peux toujours, mais a ma conaissance il est plus facile de réaliser le processus entirement soi meme, pour des raisons de maintenances, et d'amèlioration. Les exemples ici, sont basés sur le 80x86 et dos/windows, mais tu peux très bien utiliser un assembleur pour un autre cpu et donc d'autres opcodes ou/et d'autres header pour d'autres systemes d'exloitation.

Bon Coding ....

ManChesTer.
3
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 1
12 janv. 2005 à 10:46
salut,

Je crois que tout programme est fait maison mais POURRAIT respecter des standards déjà en place et ce pour 2 raison:
* une utilisation plus facile puisque dans un environnement connu.
* une volonté de compatibilité/portabilité avec des systemes existants.

@++
0