PataPata 0.2.04 released (Smalltalk parser; unified worlds)
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
participants (1)
-
Paul D. Fernhout