[Edu-sig] PataPata 0.2.04 released (Smalltalk parser; unified worlds)
Paul D. Fernhout
pdfernhout at kurtz-fernhout.com
Sun Aug 20 17:48:00 CEST 2006
I've released version 0.2.04 of PataPata on SourceForge:
http://sourceforge.net/project/showfiles.php?group_id=165910
Big changes:
* DandelionGarden, ExampleWorld, and WorldInspector now all use identical
code file for TK and Swing. This is a big milestone, as even if the
results don't always look 100% the same, being able to have an identical
source file could be the basis for making a HyperCard-like format for
PataPata to do simple stacks that work with both Python and Jython.
There remains work to be done on unifying the support files, but that is
hidden to the user worlds. The xturtle example is in a separate
TK-specific world file now. WX and GLUT still use their own world files.
* Added Pointrel version with Smalltalk-like parser (in Pointrel
directory, not integrated into GUI yet, but included wx version).
This is based mostly on work I did about two years ago, but which I never
released before. The Pointrel Smalltalk-like parser work may be of
interest for a few reasons:
1. It shows Python (the language plus libraries) being a universal VM for
other languages. (Yes, performance is a potential issue, etc.)
2. The Pointrel data storage format used makes explicit a lot of implicit
things in data storage for programs, and so might be of interest for
people learning how program compiling and evaluation can be represented
abstractly (using Python).
3. It might someday support blending Python and Smalltalk/Self syntaxes
for prototype development under PataPata.
Anyway, it's an experiment more than anything else. It does not use
bytecodes to represent compiled programs, instead it uses "triads".
MethodContext objects should work; BlockContext objects are probably
broken in this variation (though BlockContext objects should work in the
older 20041201 code).
From the Pointrel subdirectory README.txt file:
=====
Work in progress toward support Smalltalk syntax (for prototypes) on
Python using triadal data storage.
File pointrel20041201.py is a standalone program which offers a
smalltalk-like development environment (with a browser, inspector,
debugger, and workspace) Python under wxWidgets using a Pointrel triadal
approach. This is the most complete. It can read and write the image.p
file. From the first window you can open others.
File smalltalkToPython.py is a first cut at translating Smalltalk to
Python (not finished). This just prints out an attempt at Python code to
the console. It is mostly the same code as pointrel20041201.py without the
GUI and with a different code generator.
File protos20060808.py calls pointrel20060808.py and other pointrel*.py
files to parse a Smalltalk-like syntax with a different pointrel and VM
approach (intended to be simpler and clearer than 20041201 version).
Essentially, this is mostly the same code as pointrel20041201.py but
broken up into separate files and with changes to the VM instruction
evaluation (and triadal storage approach) and with the wx GUI removed. It
prints out:
"""
Welcome to Protos
('String', 'The result of adding 10 and 20 is:')
('Integer', '30')
halting
"""
As minor as that output is, it accomplishes the addition using a message
send and a stack of two [MethodContext] objects.
Usage:
python pointrel20041201.py
python smalltalkToPython.py
python protos20060808.py
python pointrel20060808.py (makes and reads test.im, and prints test output)
============
--Paul Fernhout
More information about the Edu-sig
mailing list