21st Century Smalltalk

Architectural Overview

Here is a very brief architectural overview.

The architecture of Vista Smalltalk is best described as having three layers:

  1. User Language
  2. Lisp
  3. Primitive Base

———————-
User Language Layer
———————-
The term “User Language” indicates any language which is designed for end-user interaction, such as:

  •  Smalltalk
  •  Basic
  •  Python
  •  Other

There are currently grammars for Smalltalk and Basic - the “Other” category might include specialized languages for modelling or games. “User” languages are converted to and from Lisp s-expression format for internal use.

———–
Lisp Layer
———–
The Lisp used internally is a very small dialect designed specifically for building object-oriented applications. It is implemented as an interpreter written in ActionScript (for Flash) or C# (for .Net). When C# 3.0 is released, I plan to add a compiler to the .Net version.

 It features:

  • reader macros
  • macro expansions
  • standard list functions
  • closures
  • Xlisp-style messaging
  • Smalltalk-like objects

Advantages of using Lisp are:

  • macros
  • excellent serialization
  • mix data/code
  • basis for AI techniques

—————
Primitive Base
—————
The primitive base is written in the host language of the implementation - C# for .Net or ActionScript for Flash.

It has three components:

  • interpreter
  • object system
  • Lisp primitive functions

Language capabilities can be extended by adding new Lisp primitive functions which are then accessible by user languages such as Smalltalk.

———-
Summary
———-
The architecture has these goals:

  • replace Javascript with better languages
  • replace MXML/XAML with Lisp
  • portable accross Flash or .Net
  • extensible architecture
  • basis for next generation AI

5 Comments »

  1. [...] Here is the architectural overview. [...]

    Pingback by Studiowhiz.com » Blog Archive » Smalltalk in Flash?! — April 20, 2007 @ 2:48 pm

  2. […] Here is the architectural overview too. […]

    http://hsug.freeblog.hu/archives/2007/08/12/Architectural_Overview_of_Vista_Smalltalk

    Comment by Gal Zsolt — September 7, 2007 @ 2:48 pm

  3. See at ( in Hungarian ):
    http://www.antikvarium.hu/ant/start.php?fsurl=http%3A%2F%2Fwww.antikvarium.hu%2Fant%2Fbook.php%3FID%3D229684
    (47-88 pages

    Comment by CalmoSoft — November 21, 2007 @ 1:39 am

  4. Sorry I wanted under “Lisp Function Reference” topic.

    Comment by CalmoSoft — November 21, 2007 @ 1:41 am

  5. I can’t understand the reasons for the goal of replacing MXML/XAML with Lisp. I thought the reason to add MXML to ActionScript, and XAML to C#, was to have a convenient and more practical language for expressing UI elements in terms of layout and position, and to gain a much more declarative description of component states and transition between states. I thought MXML/XAML bridges the gap between the designer tools (Blend and Thermo) and the developer tools (Flex Builder and Visual Studio). What is your motivation for replacing MXML/XAML with Lisp?

    Best Regards,
    Vladimir

    Comment by Vladimir Tsvetkov — February 9, 2008 @ 4:24 pm

RSS feed for comments on this post. TrackBack URI

Leave a comment

Blog at WordPress.com.