Vous pouvez regarder Appel's Modern Compiler Implementation in C. Par les sons de cela, vous devez déterminer quelle langue vous voulez compiler: voulez-vous un sous-ensemble de C dire ou un langage facile à analyser comme Scheme, ou juste un langage d'expression arithmétique? Choisissez/dessinez un langage, écrivez quelques très petits programmes dedans, écrivez un lexer/analyseur pour une partie, puis l'arrière pour que les parties fonctionnent (éventuellement interprété pour commencer - juste pour que vous puissiez le voir fonctionner) et ensuite itérer des morceaux qui semblent intéressants, en construisant jusqu'à la langue complète.
Modifier en fonction des détails supplémentaires fournis
"Je veux faire un super ensemble de c, comme la mise en œuvre de divers avantages de python, mais en gardant aussi simple que c"
Je ne suis pas sûr que je le ferais en écrivant tout à la main, mais si je l'ai fait ...
J'écrirait sur s programmes ertains dans la langue hybride que je veux finir avec: donc si vous voulez C avec Python comme la liste compréhensions alors peut-être
void main()
{
int[] x = {1,2,3,4,5};
int[] y = {i*i for i in x where i % 2 == 0};
for (int i in y) { printf("%d", i); }
}
[des tableaux de style C qui incluent leur compte comme implicite en haut à gauche comme exercice pour le lecteur :-)!]
Ensuite, faites fonctionner un programme C absolument minimal, bonjour ou ajoutez simplement quelques chiffres de manière statique (si c'était bonjour, je pourrais même commencer par printf spécial pour ne pas avoir à analyser stdio .h - si vous vous dirigez vers un hybride C-Python, vous pourriez finir par le garder). Une fois que vous pourriez faire
void main()
{
int x = 0;
int y;
y = 5;
x + y;
}
Vous pouvez commencer à ajouter la complexité: les définitions de fonctions arbitraires et des appels, plusieurs opérateurs, les valeurs de retour, des tableaux, des structures de données, const, pointeurs, ... la construction vers la plus simple de l'exemple étape des programmes par étape. L'avantage de commencer avec le sous-ensemble C est que vous avez beaucoup de compilateurs C que vous pouvez rechercher pour trouver des idées. TinyCC donc au moment où vous arrivez à la difficulté d'ajouter des pièces python-esque vous avez une base solide.
C'est patiner sur beaucoup de détails sur une longue route. Bonne chance.
"Je trouve cela très difficile à mettre en œuvre" - ce serait parce que c'est dur. C'est plus proche de courir un marathon qu'une promenade dans le parc - même avec des années d'entraînement et de talent, c'est toujours un travail difficile. –