Zum Inhalt springen

„Stackless Python“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Änderung 195269084 von 31.17.252.236 rückgängig gemacht; das richtige Verweisziel wäre Java (Programmiersprache), aber auch so sehe ich nicht die Relevanz. (Beziehungsweise durch den Verweis auf Jython ist der relevante Bezug zu Java meiner Meinung nach bereits abgedeckt.)
Markierung: Rückgängigmachung
Siehe auch: Entferne Verweis auf Boo (Programmiersprache). Ich sehe die Relevanz nicht.
 
Zeile 29: Zeile 29:
*[[IronPython]]
*[[IronPython]]
*[[PyPy]]
*[[PyPy]]
*[[Boo (Programmiersprache)]]


== Weblinks ==
== Weblinks ==

Aktuelle Version vom 3. Januar 2020, 14:08 Uhr

Stackless Python
Basisdaten

Hauptentwickler Christian Tismer
Entwickler Anselm Kruis
Aktuelle Version 3.8.1-slp[1]
(12. August 2021)
Betriebssystem plattformunabhängig
Programmier­sprache C, Python
Lizenz Python Software Foundation License
www.stackless.com

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 C-Aufrufstapel, 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.

  1. Release v3.8.1-slp. 12. August 2021 (abgerufen am 8. März 2022).