[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