
Hallo,
welche Möglichkeiten bietet Python, einen Interpreter für eine eigene, simple Sprache zu bauen ?
Gibt es da fertige Bibliotheken ? Von PyPy habe ich gehört, aber ich bezweifle es macht Sinn den Quellcode zu durchwühlen.
Kann ich alternativ Python-eigene Bibliotheken ausschließen und einen vereinfachten Python-Dialekt schaffen, der z.B. bestimmte Datenstrukturen nicht unterstützt ?

welche Möglichkeiten bietet Python, einen Interpreter für eine eigene, simple Sprache zu bauen ?
Zb pyparsing.
Gibt es da fertige Bibliotheken ? Von PyPy habe ich gehört, aber ich bezweifle es macht Sinn den Quellcode zu durchwühlen.
Kann ich alternativ Python-eigene Bibliotheken ausschließen und einen vereinfachten Python-Dialekt schaffen, der z.B. bestimmte Datenstrukturen nicht unterstützt ?
"Koennen" bestimmt. Wie sich das im Verhältnis zu deinem eigentlichen Anwendungszweck verhält kann man so nicht sagen, ich würde aber mal behaupten, es ist zu kompliziert. Letztlich wäre das ein fork von Python, mit allem, was da dran hängt.
Diez

Kann ich alternativ Python-eigene Bibliotheken ausschließen und einen vereinfachten Python-Dialekt schaffen, der z.B. bestimmte Datenstrukturen nicht unterstützt ?
Wenn du innerhalb einer Anwendung eine Skriptsprche brauchst, nimm einfach Python selbst -- dafür gibt es 'eval' und 'exec'. Um bestimmte Features auszuschließen, musst du den Input halt darauf hin untersuchen
Rainer Fischbach ______________________________________________________
ECS Engineering Consulting & Solutions GmbH Holzgartenstraße 8 92318 Neumarkt DEUTSCHLAND
Tel.: +49 (0)9181 - 4764-84 Fax: +49 (0)9181 - 4764-50 Mobil: +49 (0)171 - 4141570 E-Mail: fischbach(at)ecs-gmbh.de Web: http://www.ecs-gmbh.de ______________________________________________________
Engineering Consulting & Solutions GmbH Sitz der Gesellschaft: Neumarkt i.d.OPf. Geschäftsführer: Wolfgang Dietzler Eingetragen im Handelsregister Nürnberg unter HRB: 13998 USt.-IDNr. gemäß § 27a Umsatzsteuergesetz: DE 181055415
Hinweis zur Vertraulichkeit:
Die in dieser E-Mail enthaltenen Informationen sind vertraulich zu behandeln und nur für den/die dort genannten Empfänger bestimmt. Die Vertraulichkeit ist unter Berücksichtigung der einschlägigen Gesetze, insbesondere BDSG, durch den/die Empfänger sicherzustellen. Sofern Sie nicht der beabsichtigte Empfänger sind, ist das Speichern, die Weiterleitung oder das Kopieren dieser E-Mail strikt untersagt. Haben Sie diese Nachricht irrtümlicherweise erhalten, benachrichtigen Sie uns bitte umgehend und löschen das Dokument.
-----Ursprüngliche Nachricht----- Von: python-de im Auftrag von Alexander Langer Gesendet: Mo 17.12.2012 18:17 An: python-de@python.org Betreff: [Python-de] Interpreter bauen
Hallo,
welche Möglichkeiten bietet Python, einen Interpreter für eine eigene, simple Sprache zu bauen ?
Gibt es da fertige Bibliotheken ? Von PyPy habe ich gehört, aber ich bezweifle es macht Sinn den Quellcode zu durchwühlen.
Kann ich alternativ Python-eigene Bibliotheken ausschließen und einen vereinfachten Python-Dialekt schaffen, der z.B. bestimmte Datenstrukturen nicht unterstützt ?
_______________________________________________ python-de maillist - python-de@python.org http://mail.python.org/mailman/listinfo/python-de

On 12/17/12 7:30 PM, "Rainer Fischbach" fischbach@ecs-gmbh.de wrote:
Kann ich alternativ Python-eigene Bibliotheken ausschließen und einen vereinfachten Python-Dialekt schaffen, der z.B. bestimmte Datenstrukturen nicht unterstützt ?
Wenn du innerhalb einer Anwendung eine Skriptsprche brauchst, nimm einfach Python selbst -- dafür gibt es 'eval' und 'exec'. Um bestimmte Features auszuschließen, musst du den Input halt darauf hin untersuchen
Das ist so gut wie aussichtslos. Alle bisherigen Versuche, Python zu sand-boxen sind eingestellt worden. Es gibt einfach zu viele Schlupflöcher. Darum würde ich davon abraten.
Diez

Das ist so gut wie aussichtslos. Alle bisherigen Versuche, Python zu sand-boxen sind eingestellt worden. Es gibt einfach zu viele Schlupflöcher. Darum würde ich davon abraten.
Genauer: Alle bisherigen Open-Source-Versuche, CPython zu sandboxen, sind eingestellt.
PyPy hat eine funktionierende Sandbox.
Google App Engine hat eine entsprechend gepatchte CPython, die gesandboxt ist.
Gruß
Harald

Am 17.12.12 18:17, schrieb Alexander Langer:
Hallo,
welche Möglichkeiten bietet Python, einen Interpreter für eine eigene, simple Sprache zu bauen ?
Gibt es da fertige Bibliotheken ? Von PyPy habe ich gehört, aber ich bezweifle es macht Sinn den Quellcode zu durchwühlen.
Kann ich alternativ Python-eigene Bibliotheken ausschließen und einen vereinfachten Python-Dialekt schaffen, der z.B. bestimmte Datenstrukturen nicht unterstützt ?
Was ist Einsatzzweck für deine Sprache? Warum funktioniert Python so wie es ist nicht dafür?
Viele Grüße Mike

Am 18.12.2012 um 12:51 schrieb Mike Müller:
Am 17.12.12 18:17, schrieb Alexander Langer:
Hallo,
welche Möglichkeiten bietet Python, einen Interpreter für eine eigene, simple Sprache zu bauen ?
Gibt es da fertige Bibliotheken ? Von PyPy habe ich gehört, aber ich bezweifle es macht Sinn den Quellcode zu durchwühlen.
Kann ich alternativ Python-eigene Bibliotheken ausschließen und einen vereinfachten Python-Dialekt schaffen, der z.B. bestimmte Datenstrukturen nicht unterstützt ?
Was ist Einsatzzweck für deine Sprache? Warum funktioniert Python so wie es ist nicht dafür?
Viele Grüße Mike
Hallo.
Wenn Du mit dem eigenen Sprach Konstrukt den "installierten" Stack dezimieren möchtest, kann ich nichts beitragen.
Wenn aber Sandboxing der Fokus sein sollte:
In Zope gab es / gibt es "restricted Python" innerhalb einer laufenden Zope Applikation, um einer Webanwendung zu ermöglichen "pythonischen" Code im Web einzugeben und auszuführen. Dabei wird der Durchgriff auf das Dateisystem verweigert und nur ein bestimmtes Subset angeboten. Zope hat einen guten Security Record und die Konzepte sind bewährt, wenn auch dort nie 100% sicher. Nur das die Issues in der Regel bei eigenen Adits gefunden werden. Der Preis: Kleiner Fisch in großem Wal.
Weiterhin installieren neuere Zope/Plone Versionen per virtualenv den virtuellen zopepy Interpreter der exakt mit den Modulen ausgeführt wird, die der Zope Umgebung zur Verfügung stehen. Dies ist allerdings keine Kastration von Python, sondern eher eine Debugging Hilfe, wenn Zope selbst grade nicht läuft.
Vielleicht kannst Du dort mal gezielt per Google reinschnuppern, wenn es Dir nur ums "kastrieren & lernen" geht. Ich hoffe mein Halbwissen entfacht nur glimmende Flames.
LG Armin
One more thing... (nur für den Apfelkosmos)
Um Python an bestimmte Anwendungen anzupassen könnte auch das "Pythonista" Projekt lehrreich sein, das Python um bestimmte Module erweitert und erleichtert, um eine IDE für iOS Apps bereitszustellen. Sehr knapp auf den Punkt gemacht incl. Credits, Historie von Python und massgeschnederter Dokumentation. (Da werden sich Apple Hassern die Fussnägel rollen, ist mir aber wurscht). http://omz-software.com/pythonista/
Sehr schön: Aus Gelegenheits-Einfall fertiges XCode Projekt abkippen.
participants (6)
-
Alexander Langer
-
Armin Stroß-Radschinski
-
Diez Roggisch
-
Massa, Harald Armin
-
Mike Müller
-
Rainer Fischbach