Code-Übersetzer von Python nach C schreiben? [geschlossen]

8

Ich wurde gebeten, einen Code-Übersetzer zu schreiben, der ein Python-Programm nehmen und ein C-Programm erstellen würde. Haben Sie irgendwelche Ideen, wie könnte ich dieses Problem angehen oder ist es überhaupt möglich?

    
bodacydo 26.03.2010, 17:50
quelle

4 Antworten

23

Shedskin: Ссылка

Boost Python: Ссылка

PyCXX: Ссылка

Cython: Ссылка

Von Ссылка gibt es eine Liste verwandter Projekte.

Pyrex: Ссылка

psyco: Ссылка

RPython: Ссылка

    
S.Lott 26.03.2010 18:02
quelle
6

Es gibt eine grundlegende Frage hier: ist die Absicht, im Grunde einen Python-Compiler zu erstellen, der C als Back-End verwendet, oder um das Programm in C umzuwandeln und das C danach zu erhalten?

Einen Compiler zu schreiben, der (wirklich hässliches) C als Ausgabe erzeugt, ist wahrscheinlich nicht trivial - ein Compiler ist selten, und das Generieren von Code für Python wird schwieriger sein als für viele andere Sprachen (insbesondere dynamische Typisierung) , ist schwer zu kompilieren, zumindest bis sehr effiziente Ausgabe). OTOH, zumindest wird der Parser viel einfacher als für einige Sprachen.

Wenn Sie mit "Übersetzen" Python in C umwandeln, das lesbar und wartbar ist, ist das eine ganz andere Frage - es ist wesentlich schwieriger, um es milde auszudrücken. Realistisch gesehen bezweifle ich, dass maschinelle Übersetzung viel wert sein wird - es gibt einfach zu große Unterschiede in der Art und Weise, wie man Probleme in Python und C anwendet, um auf eine vernünftige maschinelle Übersetzung zu hoffen.

    
Jerry Coffin 26.03.2010 18:07
quelle
2

Sehen Sie sich Schuppenhaut an. Es macht genau das (naja, zu C ++ und für eine Teilmenge von Python und seinen Modulen). Aber es sollte in der Lage sein, wertvolle Einblicke zu geben, wie man sich diesem speziellen Problem annähert (obwohl das Schreiben Ihres eigenen Willens sicherlich keine triviale Aufgabe ist).

    
ChristopheD 26.03.2010 17:51
quelle
2

Es ist schwer zu glauben, dass niemand Cython erwähnt hat - so ziemlich der De-facto-Standard für diese Art von Job, meiner Meinung nach: Ссылка

    
carl 26.03.2010 18:46
quelle

Tags und Links