Compilateur

Résolu
Signaler
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
-
Messages postés
374
Date d'inscription
vendredi 20 octobre 2000
Statut
Modérateur
Dernière intervention
15 janvier 2021
-
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

Messages postés
374
Date d'inscription
vendredi 20 octobre 2000
Statut
Modérateur
Dernière intervention
15 janvier 2021

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.
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
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.

@++