Brad Templeton Home
One of the first projects I did after forming Looking Glass Software Limited was a syntax-directed programming environment called Alice: The Personal Pascal.
Syntax-directed editors are somewhat controversial, however I think they are quite good for people learning programming, and Alice was written first to be used in education in the school systems of Ontario. Our first sale was a contract to develop it for the Ministry of Education there.
ALICE was also ported to run on the IBM PC under DOS and the Atari ST, and a Basic version was made only for the Ontario schools. The PC version was sold by a company called Software Channels Inc., a division of Graham Software. Graham Software, at least according to allegations made in parliament, turned out to be something of a sham, and it closed its doors 7 months after launching ALICE.
You can still read a review of the Atari ST version on the net!
The PC and Atari versions of ALICE are now free. You can pick up an archive with the binaries and the source to the manuals in alice.zip on this site.
New! The Atari ST Version of ALICE is up free. The Atari ST version was much more sophisticated, with a GUI, and tools to write graphics and GUI programs. You can get it in either zip format or as two Atari ST Disk images for use with ST emulators Disk 1 nd Disk 2
See below for how to get the source code as well.
For DOS, it comes in two versions. The original version could only use 128K of spare RAM. It was meant for the 256kb DOS computers common in 1985. The "large" version could use "the full" 640K, and has a few more features.
Alice was quite advanced for its day, I like to think. It had over 700 help screens back when help was an unusual feature in software. A number of its features were later repeated in products like Microsoft Visual Basic and others.
If you have a school, you can probaby get your hands on donated older PCs for free. Feel free to teach programming using ALICE. It runs in DOS, and will also run in a DOS window under Windows or NT. (In fact, if you put it in a DOS window with more than 25 lines, you can give it a command line option or ap.ini option of "L=50" for example to have it run in a 50 line window.)
However, unfortunately in releasing this free I must state that absolutely no support will be available. If I start getting support calls, especially from people who think, "oh, he wouldn't mind just one simple question" then I will have to reliquish the free licence.
The manuals have been converted to HTML, though they are still somewhat old and were written for paper, not for web pages.
I do have about 8 boxes of the manuals left. I will donate them to anybody who can arrange to come pick them up in Sunnyvale, California. I will not ship single manuals, sorry.
Syntax Directed Editor
What's a syntax directed programming environment? To start with it's what might be called today a visual integrated programming environment. These are common today, but in 1984 many of these ideas were new.
In a syntax directed editor, you edit a program, not a piece of text. The editor works directly on the program as a tree -- matching the syntax trees by which the language is structured. The units you work with are not lines and chracters but terms, expressions, statements and blocks.
This makes it literally impossible to have a syntax error, and beginning users get templates to construct their program, showing the components of each structure so that they "fill in the blanks." For example when you type for in to the "Statement" placeholder, you immediately see:
for variable := start to finish do begin Statement end;
And all you do is fill in the blanks. But at each blank you can get help, get a menu of what you can type and more.
Here are some of the features found in Alice
I have also put up the source code, ready to compile on linux. This can be found in the alice.tar.gz archive. Be warned, however, that this source is in pretty rough shape. I've put it up mostly in hope that somebody else might be interesting in cleaning it up a bit, making an RPM etc. There is more source for other portions as well, contact me if interested.
A russian translation is available.
For those interested, there is also a Belorussian translation of the documentation.