„Stackless Python“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
'''Stackless Python''' oder kurz '''Stackless''' ist eine experimentelle Implementierung der [[Programmiersprache]] [[Python (Programmiersprache)|Python]]. |
'''Stackless Python''' oder kurz '''Stackless''' ist eine experimentelle Implementierung der [[Programmiersprache]] [[Python (Programmiersprache)|Python]]. |
||
''Stackless'' nutzt bei der Abarbeitung des [[Bytecode]]s in seiner [[Virtuelle Maschine|Virtuellen Maschine]] nicht den [[Aufrufstapel|Stack]] des |
''Stackless'' nutzt bei der Abarbeitung des [[Bytecode]]s in seiner [[Virtuelle Maschine|Virtuellen Maschine]] nicht den [[Aufrufstapel|Stack]] des [[Betriebssystem]]s, um bei Unterprogrammaufrufen (Methoden, Funktionen, Prozeduren) die Rücksprungadressen und lokalen Variablen zu speichern, sondern verwendet einen eigenen Stack. Dadurch ist ein vollständiger [[Kontextwechsel]] (bspw. bei [[Nebenläufigkeit]]en, Generatoren, [[Koroutine]]n) 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. |
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. |
Version vom 6. Juni 2013, 13:41 Uhr
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 Stack des Betriebssystems, um bei Unterprogrammaufrufen (Methoden, Funktionen, Prozeduren) die Rücksprungadressen und lokalen Variablen zu speichern, sondern verwendet einen eigenen Stack. 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.