GNU SmallTalk 1.1 Source Language: C Built: VMS V5.4 This directory tree contains GNU Smalltalk 1.1 modified for VMS. GNU Smalltalk is an implementation of the Blue Book (Smalltalk-80: The Language and its Implementation, by Adele Goldberg and David Robson). The Smalltalk programming language is an object oriented programming language. This means, for one thing, that when programming you are thinking of not only the data that an object contains, but also of the operations available on that object. The object's data representation capabilities and the operations available on the object are ``inseparable''; the set of things that you can do with an object is defined precisely by the set of operations, which Smalltalk calls 'methods', that are available for that object. You cannot even examine the contents of an object from the outside. To an outsider, the object is a black box that has some state and some operations available, but that's all you know. In the Smalltalk language, everything is an object. This includes variables, executable procedures (methods), stack frames (called method contexts or block contexts), etc. Each object is an 'instance' of a 'class'. A class can be thought of as a datatype and the set of functions that operate on that datatype. An instance is a particular variable of that datatype. When you want to perform an operation on an object, you send it a 'message', and the object performs that message. For example, to print an object, you'd send it the message 'print', thus: randomObject print The message that you send is actually the name of a method (procedure) to invoke. When you send a message to an object, Smalltalk tries to find a method that's defined for that type of object. It first looks in the object's class for a method that matches. If none is found there, it looks in the object's parent class, then the grandparent class, and so on. At the top of the class structure is a class called Object, which has no parent. If the method is not found by the time that the searching gets to the methods of class Object, an error occurs. This error is signalled by sending the original object a 'doesNotUnderstand:' message, which, if not intercepted by the object's class or any parent class, will be handled by Object itself by reporting the error to the user and printing a backtrace of the methods that had been invoked at the time the error occurred. For further information see [mits.smalltalk.smalltalk_1.1]mst.texinfo (which is designed to be viewed with Emacs). To run Smalltalk, execute symbols.com :- $ @[mits.smalltalk]symbols Smalltalk may then be invoked in two ways :- Line mode - $ mst DECwindows mode - $ xmst If you need to rebuild the image file :- $ set default smalltalk_image: $ delete mst.im;* $ mst build_image.st [MITS.SMALLTALK.LIB] This is the directory where I keep the image file. It also contains a few methods which I have written, plus the definitions for the X-Window interface. [MITS.SMALLTALK.VOICE] This is a start at interfacing DECtalk to Smalltalk. It doesn't work particularly well, but you're welcome to it. [MITS.SMALLTALK.XW] This is a simple DECwindows interface for Smalltalk. To execute a Smalltalk command, select the text using MB1, and invoke using MB3. Alternatively, use the pop-up menu with MB2. This still has a few bugs, but is generally a whole lot better than line mode. Author: Steve Byrne Alistair Grant Internet: alistair@mits.com.au PSI Mail: psi%0505238730004::alistair Alternate: alistair%mits.com.au@ucsvc.ucs.unimelb.edu.au grant@decus.com.au