Architectural Overview
Here is a very brief architectural overview.
The architecture of Vista Smalltalk is best described as having three layers:
- User Language
- Lisp
- 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
[...] Here is the architectural overview. [...]
Pingback by Studiowhiz.com » Blog Archive » Smalltalk in Flash?! — April 20, 2007 @ 2:48 pm
[…] 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
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
Sorry I wanted under “Lisp Function Reference” topic.
Comment by CalmoSoft — November 21, 2007 @ 1:41 am
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