web-dev-qa-db-fra.com

Quelle est l'histoire du compilateur C?

Quand nous disons que "Dennis Ritchie a développé le langage C", voulons-nous dire qu'il a créé un compilateur (utilisant un autre langage "déjà" développé) qui peut compiler le code source écrit en langage C? si oui, quel langage a-t-il utilisé pour écrire le premier compilateur C? Je comprends qu'un compilateur est un programme et nous pouvons créer un autre compilateur pour le langage C en utilisant le compilateur C actuellement disponible. Est-ce exact?

24
KawaiKx

De wiki :

Ritchie est surtout connu comme le créateur du langage de programmation C et un développeur clé du système d'exploitation Unix, et comme co-auteur du livre définitif sur C.

Aussi de wiki :

Le premier compilateur C écrit par Dennis Ritchie a utilisé un analyseur de descente récursif, incorporé des connaissances spécifiques sur le PDP-11 et s'est appuyé sur un optimiseur spécifique à la machine en option pour améliorer le code du langage d'assemblage qu'il a généré.

Le premier compilateur C a également été écrit par lui, dans Assembly.

Cette page de bell-labs répond à la plupart de vos questions.

23
karlphillip

Consultez ceci pour une leçon d'histoire: http://www.livinginternet.com/i/iw_unix_c.htm

Lorsque l'ordinateur PDP-11 est arrivé à Bell Labs, Dennis Ritchie a construit sur B pour créer un nouveau langage appelé C qui a hérité du goût de Thompson pour la syntaxe concise, et avait un mélange puissant de fonctionnalités de haut niveau et les fonctionnalités détaillées requises pour programmer un fonctionnement système. La plupart des composants d'Unix ont finalement été réécrits en C, culminant avec le noyau lui-même en 1973

Cela peut également être intéressant: http://cm.bell-labs.com/cm/cs/who/dmr/chist.html

9
abalogh

Dennis Ritchie a utilisé bootstrap . L'amorçage est une idée simple, où vous développez un compilateur initial et simple dans Assembly, puis vous utilisez ce compilateur simple pour compiler votre compilateur à part entière écrit dans (un sous-ensemble de) votre langue cible. C'est ainsi que Ritchie a créé très tôt last1120c compilateur.

9
vartec

C a été conçu pour permettre de porter Unix sur d'autres plates-formes sans avoir à réécrire tout le code Assembly de la nouvelle plate-forme.

D'où le dicton courant que "C est assembleur portable". Cela reflète le fait que C est intentionnellement très proche d'un CPU (vers 1970) au niveau de l'abstraction et c'est aussi la raison pour laquelle la plupart des logiciels embarqués sont écrits dans une sorte de C.

Donc, C est intimement lié à Unix, et les gens d'Unix ont écrit le premier compilateur C basé sur des travaux antérieurs pour faire ce dont ils avaient besoin.

Veuillez noter que Kernigan et Richie ont écrit un excellent livre sur C qui est probablement l'un des ouvrages de référence les plus influents sur un langage informatique, car il était si clair et concis que la plupart des lecteurs pouvaient apprendre des sujets avancés comme les pointeurs et la récursivité.

2
user1249

Cet article devrait répondre à votre question:

http://www.faqs.org/docs/artu/c_evolution.html

L'histoire de C est liée au langage B, pour lequel Ken Thompson a développé un interprète. Ritchie l'a utilisé pour les toutes premières étapes du développement de C.

2
Macmade