Comment créer un compilateur C pour personnalisé CPU?

Quelle serait la façon la plus simple de créer un compilateur C pour une mesure de la CPU, en supposant bien sûr, j'ai déjà un assembleur pour elle?

Depuis un compilateur C génère de l'assemblée, est-il possible de définir simplement la norme de pièces et de morceaux de code assembleur pour les différents C idiomes, de reconstruire le compilateur, et ainsi obtenir un compilateur croisé pour le matériel cible?

De préférence, le compilateur lui-même serait écrit en C, et de le construire comme un fichier exécutable natif pour Linux ou Windows.

Veuillez noter: je suis pas demandant comment écrire le compilateur lui-même. Je ne prendrai que les cours à l'université, je sais à propos de général par le compilateur compilateurs, etc. Dans cette situation, je voudrais configurer un cadre existant (si possible). Je ne veux pas modifier la langue, je veux juste être en mesure de cibler un arbitraire de l'architecture. Si la réponse s'avère être "ça ne fonctionne pas de cette façon", que information sera utile à moi-même et personne d'autre qui pourrait faire des hypothèses similaires.

  • Il n'y a pas d'exigence fondamentale que le compilateur produire de l'assembleur: c'est juste une commune de la pratique et de la pratique.
  • imaginons qu'il est nécessaire dans ce cas. Je sais il y en a dans cette communauté qui aurait une solution. Veuillez noter que la réponse à ce que je demande n'est pas "aller prendre un compilateur cours d'écriture".
  • PS: en Supposant que vous avez cette coutume CPU qui est tout nouveau, vous n'avez même pas un compilateur pour elle. Où est l'OS va venir??? Tu veux dire quoi par "fichier exécutable natif"? Natif de QUOI?!?
  • Ce que vous me demandez, c'est "comment écrire mon propre backend pour GCC?" (remplacez "clang", etc. pour "GCC" le cas échéant). C'est encore non négligeable, et probablement le meilleur endroit pour commencer est avec la documentation pertinente (par exemple, llvm.org/releases/2.3/docs/WritingAnLLVMBackend.html). (Je vais très heureux d'admettre que je suis hors de ma profondeur à ce point!)
  • oui, supposons qu'elle est nouvelle. supposons pas d'OS. 'fichier exécutable natif" a été utilisé pour signifier "une binaire qui s'exécute sur le processeur'
InformationsquelleAutor JustJeff | 2012-01-01