Écrire un traducteur de code de Python à C? [fermé]

on m'a demandé d'écrire un traducteur de code qui prendrait un programme Python et produirait un programme C. Avez-vous des idées comment pourrais-je aborder ce problème ou est-ce même possible?

8
demandé sur JasonMArcher 2010-03-26 20:50:57

4 réponses

il y a une question fondamentale ici: est-ce que l'intention est de créer fondamentalement un compilateur Python qui utilise C comme back-end, ou de convertir le programme en C et de maintenir le C ensuite?

Écrire un compilateur qui produit (vraiment moche) C car sa sortie n'est probablement pas triviale -- un compilateur l'est rarement, et générer du code pour Python sera plus difficile que pour beaucoup d'autres langues (le typage dynamique, en particulier, est difficile à compiler, au moins pour très efficace sortie.) OTOH, au moins l'analyseur sera beaucoup plus facile que pour certaines langues.

si par" Traduire", vous voulez dire convertir Python en C qui est lisible et maintenable, c'est une toute autre question -- c'est substantiellement plus difficile, pour le dire modérément. De façon réaliste, je doute qu'une traduction automatique vaille beaucoup -- il y a juste trop de différences dans la façon dont vous abordez normalement les problèmes en Python et en C pour qu'il y ait beaucoup l'espoir d'une vie décente à la traduction automatique.

6
répondu Jerry Coffin 2010-03-26 18:07:55

regarder Shedskin . Il fait exactement cela (bien, en C++ et pour un sous-ensemble de Python et ses modules). Mais il devrait être en mesure de fournir un aperçu précieux sur la façon d'aborder ce problème particulier (bien que l'écriture de votre propre sera certainement pas être une tâche triviale).

2
répondu ChristopheD 2010-03-26 17:51:57

il est difficile de croire que personne N'ait mentionné Cython -- à peu près la norme de facto pour ce type de travail, à mon avis: http://www.cython.org/

2
répondu carl 2010-03-26 18:46:44