Ecrriture d'un compilateur au depart ?

Ecrriture d'un compilateur au depart ? - Divers - Programmation

Marsh Posté le 27-01-2003 à 15:48:36    

Voila, je me demandais comment a ete ecrit et.. compile le premier compilateur, de C par exemple. Il faut bien qquechose, a moins qu'un gars soit alle ecrire en langage machine, a la main :pt1cable:
 
C'est un peu comme l'histoire de l'oeuf et de la poule en fait !
 
Est ce que qqun a une idee ?  :hello:  


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 27-01-2003 à 15:48:36   

Reply

Marsh Posté le 27-01-2003 à 15:56:45    

ben c'est exactement ça : le premier assembleur a été écrit à grands coup d'hexa !!
 
attention : si tu parles du premier compilateur (terme qui s'applique à un langage de + haut niveau que l'assembleur), alors il a été probablement écrit en assembleur.
 
par contre, le premier assembleur a été écrit en hexa, ça c clair ! mais pas par un développeur indépendant, par le fabricant du micro-p (Intel en l'occurence)
 
cet assembleur a ensuite permis de développer des compilateurs, etc...


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 27-01-2003 à 17:11:19    


Oui et non harko, en fait pour les nouvelles archis maintenant on utilise des cross-compiler aussi... Genre pour compiler un truc pour la PSX on code sur PC (Windows ou Linux on s'en tape) et on compile vers un format dédié à la PSX.
 
Bon ok, pour le tout premier ils ont pas eu le choix, mais pour les autres ils pouvaient soit faire un truc en hexa bourrin soit utiliser ca  :)


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 27-01-2003 à 17:21:00    

En général, dans les langages suffisamment généralistes, les compilateurs sont écrits dans le langage lui-même (c'est souvent une preuve que le langage a une bonne puissance d'expression ; en tout cas, qu'elle est suffisante pour écrire un compilateur).
C'est par exemple le cas de C, C++, Pascal, Java, Ada, Caml, Lisp -- la liste est bien sûr non exhaustive.
 
Du coup, il y a effectivement un problème d'amorçage (bootstrapping en anglais).
Ce que l'on fait alors, c'est réécrire, à la main, une toute petite partie du compilateur en langage de bas niveau (ex: assembleur), même mal et avec un code pas efficace du tout, de manière à compiler un morceau du compilateur en langage évolué, ce morceau servant à compilaer un autre morceau, et ainsi de suite, jusqu'à compiler l'intégralité du compilateur.
 
Et voilà ! :D

Reply

Marsh Posté le 01-02-2003 à 05:50:27    

Le premier compilateur du C++ primitif était écrit en C.
Le premier compilateur du C était écrit en assembleur.
Le premier assembleur était écrit en langage machine.
Le fonctionnement de la première machine était intégralement cablé en dur.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Marsh Posté le 01-02-2003 à 22:50:27    

merci à tous :jap:

Reply

Marsh Posté le 02-02-2003 à 01:05:17    

quand tu connais le jeu d'instruction,
tu peux compiler un programme de taille limitee sur papier
ca reste un exercice que tu peux encore faire maintenant.
 
LeGreg


---------------
voxel terrain render engine | animation mentor
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed