21st Century Smalltalk

March 26, 2007

Standard Deviations

Filed under: Lisp, Smalltalk Language, Vista Smalltalk — pfisk @ 7:21 pm

There are two reference implementations that I use in building Vista Smalltalk:

  • Squeak for Smalltalk-80
  • Clisp for Common Lisp

On matters of language syntax, I try to make Vst as con-formant as possible to these two references. There are, however, some elements of standard Smalltalk (NCITS J20) and standard Lisp (ANSI X3.226:19) that I do not intend to implement.

fractional numbers fractions will not be part of the Vst core language. Support for fractions will be available as part of a library intended for teaching mathematics.
complex numbers complex arithmetic will not be part of the core language. It will be available as part of a math/engineering library.
big integers all numbers in Vst are 64-bit. There will be a library for big integers if there is a demand for it.

The parser for Vista Smalltalk is built using the Lisp reader, and it can be dynamically modified through the use of reader macros. So it is fairly straightforward to add new syntax (eg for fractions) as part of a library.

The issue of big integershas come up several times since the first release of Vista Smalltalk in 2004 (under the name Smalltalk/Vmx).

Both Lisp and Smalltalk were first developed in an era of very limited memory and many implementations probably used 16 or 24 bit integers. So, in the early days, it was essential to have “bignum” libraries in order to deal with many practical problems.

Today, memory is no longer a problem and I use 64-bit integers and floats in both the Flash and .Net versions of Vst giving 15-digits of precision over a range of +/- 1.79e+308. Almost all of the  coding solutions that I have seen over the years can be handled within those limits (with the possible exceptions of long running numerical simulations or cryptography).

My focus in Vista Smalltalk is to include features required for the next generation of applications:

  • IP connectivity
  • security levels
  • graphics
  • animations
  • serialization (JSON, etc)
  • P2P (XMPP, etc)

Lisp and Smalltalk are great languages. But to compete in the realm of Internet applications, they both need to be brought up to date.

3 Comments »

  1. Thanks for this overview, Peter! Makes a lot of sense.

    Comment by M. David Peterson — March 27, 2007 @ 3:38 am

  2. Support for big integers will be added in one of the next versions of the .NET Framework.

    Comment by Tommy Carlier — March 27, 2007 @ 5:53 am

  3. I think bignums are in the .net 3.5 release. AFIK there they is not seamlessly integrated – ie you have too catch an overflow condition an convert to bignum – it is not automatic as in Smalltalk

    Comment by pfisk — March 28, 2007 @ 1:19 pm


RSS feed for comments on this post. TrackBack URI

Leave a comment

Blog at WordPress.com.