Zum Inhalt springen

Stackless Python

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 23. Mai 2013 um 11:18 Uhr durch Pm (Diskussion | Beiträge) (siehe auch). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Stackless Python oder kurz Stackless ist eine experimentelle Implementierung der Programmiersprache Python.

Stackless nutzt bei der Abarbeitung des Bytecodes in seiner Virtuellen Maschine nicht den Prozessorstack, um bei Unterprogrammaufrufen (Methoden, Funktionen, Prozeduren) die Rücksprungadressen und lokalen Variablen zu speichern, sondern verwendet dafür eigene Datenstrukturen. Dadurch ist ein vollständiger Kontextwechsel (bspw. bei Nebenläufigkeiten, Generatoren, Koroutinen) möglich. Damit ist außerdem die Rekursionstiefe nur noch durch den Arbeitsspeicher begrenzt, nicht aber durch die Größe des Prozessorstacks.

Diese Vorteile werden erkauft durch eine kompliziertere, weniger intuitive und weniger leistungsfähige Implementierung der virtuellen Maschine. Außerdem sind die Unterschiede zwischen dem Standardinterpreter CPython und Stackless recht deutlich, daher ist es nicht möglich, Stackless als CPython-Erweiterung zu betreiben. Stattdessen ersetzt Stackless die Python-Installation vollständig.

Siehe auch