[Types-sig] MobiusPython

Jeff Epler jepler@inetnebr.com
Mon, 12 Mar 2001 17:38:42 -0600


On Mon, Mar 12, 2001 at 06:15:15PM -0500, Barry A. Warsaw wrote:
> This might mean an extensive set of patches, a la Stackless.  After
> seeing and talking to Neil and Andrew about PTL and Quixote, I think
> there might be another way.  It seems that their approach might serve
> as a framework for experimental Python syntaxes with minimal overhead.
> If I understand their work correctly, they have their own compiler
> which is built on Jeremy's tools, and which accepts a modified Python
> grammar, generating different but compatible bytecode sequences.
> E.g., their syntax has a "template" keyword approximately equivalent
> to "def" and they do something different with bare strings left on the
> stack.

See also my project, "M=F6bius python".[1]

I've used a lot of existing pieces, including the SPARK toolkit,
Tools/compiler, and Lib/tokenize.py.

The end result is a set of Python classes and functions that implement th=
e
whole tokenize/parse/build AST/bytecompile process.  To the extent that
each component is modifable or subclassable, Python's grammar and semanti=
cs
can be extended.  For example, new keywords and statement types can be
introduced (such as Quixote's 'tmpl'), new operators can be introduced
(such as |absolute value|), along with the associated semantics.

(At this time, there is only a limited potential to modify the tokenizer)

One big problem right now is that M=F6bius Python only implements the
1.5.2 language subset.

The CVS tree on sourceforge is not up to date, but the tree on my system =
is
pretty complete, lacking only documentation.  Unfortunately, even a small
modification requires a fair amount of code (My 'absolute value' extensio=
n
is 91 lines plus comments, empty lines, and imports)

As far as I know, all that Quixote does at the syntax level is a few
regular expression tricks.  M=F6bius Python is much more than this.

Jeff
[1] http://mobiuspython.sourceforge.net/