Self on Smalltalk/V for Windows =============================== by Gordon Cichon. distributed unter the GPL. Please note that this is unfinished and undocumented code! This is a tiny contribution to the topic Self on Windows. This is very old stuff which I never documented or released. This is the code I experimented with implementing Self on top of Smalltalk which I did 1995/1996. It contains a parser written in Smalltalk which is capable of parsing Self code. Unfortunately, it does not work on transported generated code because that uses a special object annotation syntax ({} = "") which this parser does not support. A special feature of this is that Self and Smalltalk objects are tightly integrated, and you can send messages to Smalltalk objects seamlessly within Self, and you can even send messages to Self object from within Smalltalk using some "doesNotUnderstand:" proxies. The reason why I did it that way was because I intended using Smalltalk primitive objects like integers. This program also contains a very basic GUI which is based on Smalltalk/V windows containing a list of slots for a certain object, and a text input field on the bottom to edit the contents of a slot. The system contains an abstract syntax tree representation for Self code (instead of bytecodes), and it has very basic evaluation capabilities implemented with recursive Smalltalk code which is propably going to bug if you like to support multi-threading or exceptions. This thing runs on Smalltalk/V for Windows 2.0, and I have implemented it several years ago in two weeks on a 386SX notebook computer which ran at 16Mhz, had a 40Gig harddisk, 12Meg memory and a 6" black&white LCD screen. :-) Also included are some experiments to do a Self parser with lex/yacc which I did not get ambiguity free because as some other group members have noted the Self grammar has some delicate features. Please note also that I used mySelf as code name for these experiments which should not be confused with another project called that name, too. Have fun with it :-)