chibi-scheme 0.1

An initial preview release of Chibi-Scheme is available at

http://synthcode.com/scheme/chibi-scheme-0.1.tgz

Smaller than TinyScheme, faster than a speeding Guile, able to leap tall vectors in a single bounds check, with native hygiene to boot!

WARNING: Do not use Chibi-Scheme!

Seriously, there are real Scheme compilers out there. The author of Chibi-Scheme was working on one himself before starting this silly project, and will likely continue to work on it for years to come. But sometimes we all just want to release something.

There seems to be a disturbing trend, however, of people taking toy Scheme interpreters seriously. It can’t be for ease of use, because the serious compilers all have the most friendly FFI’s. It can’t be for the small memory footprint, because the difference between a 100k and 2MB program text will be dwarfed by the runtime memory, and all of the real implementations have much more efficient memory usage. But time and again you’ll find TinyScheme crop in in bizarre places, which leads one to wonder how much of a bad name is Scheme getting by being so often represented by one of the slowest language implementations on the planet?

So Chibi-Scheme exists as a better toy implementation. It’s a very small but mostly complete R5RS Scheme implementation using a reasonably fast custom VM. Chibi-Scheme tries as much as possible not to trade its small size by cutting corners, and provides full continuations, both low and high-level hygienic macros based on syntactic-closures, string ports and exceptions. It also has optional immediate symbols, just to be quirky.

But don’t use Chibi-Scheme. Don’t use toy Scheme implementations at all. But if you really want a toy… well, then perhaps Chibi-Scheme 0.3 or so may be right for you.

[On a more serious note, I do want to hold this up as an example of how extremely simple and natural it is to implement syntactic-closures compared to alternatives such as syntax-case. The whole macro implementation is about 25 lines of low-level C code (modulo the extra lines I’ll have to add later for bug fixes), as opposed to say the 4000 or so lines of Scheme for psyntax.]

– Alex

(via comp.lang.scheme)

WisperWeb: Scheme in the browser

Here is a blog about the WisperWeb application framework.

The name evolved from my use of Lisp as a browser scripting language – “Web” + “Lisp” merged to “Wisp” and a search of available domain names resulted in the choice of ”WisperWeb”.

There are several themes that I will address in this blog: o the technology and impact of Google’s Application Engine o using GWT/GXT to build programs for the browser environment o why Lisp is an ideal Web scripting language o how XMPP instant messaging (soon be be available for the AppEngine) can be used to build browser-based, shared applications

WisperWeb has been developed over the past year and is now in the early phases of deployment. My posts will primarily address the challenges and benefits of building “real world” solutions using these technologies.

– Peter Fisk

IEEE Spectrum's 10 great tech books

  • The Pencil: A History of Design and Circumstance
  • Mirror Worlds: or, The Day Software Puts the Universe in a Shoebox… How It Will Happen and What It Will Mean
  • A New Kind of Science
  • Gödel, Escher, Bach: An Eternal Golden Braid
  • Hackers & Painters: Big Ideas from the Computer Age
  • The Design of Everyday Things
  • The Soul of a New Machine
  • The Codebreakers: The Story of Secret Writing
  • Longitude: The True Story of a Lone Genius Who Solved the Greatest Scientific Problem of His Time
  • The Making of the Atomic Bomb

(via IEEE Spectrum Volume 45, Number 3, 2008)

Moby Scheme

We are delighted to announce the first release of Moby Scheme, a compiler from Beginner Student Language (BSL) + World programs to smartphones. The current prototype compiles to the Android platform, and supports almost all BSL programs as well as libraries to accelerometer, GPS, and SMS functionality.
We are concurrently working on a Web service interface for end-users. If your only goal is to *use* Moby, you can certainly try it out, but the current release assumes you have some developer chops to install and manage packages. We’re hoping, however, that you’ll also want to *contribute*, for which this is your avenue.

(via PLT)

Knights of the Lambda Calculus

The Knights of the Lambda Calculus is a semi-fictional organization of expert LISP and Scheme hackers. The name refers to the lambda calculus, a mathematical formalism invented by Alonzo Church, with which LISP is intimately connected, and references the Knights Templar.
There is no actual organization that goes by the name Knights of the Lambda Calculus; it mostly only exists as a hacker culture in-joke. The concept most likely originated at MIT. For example, in the Structure and Interpretation of Computer Programs video lectures, one of the lecturers presents the audience with the button, saying they are now members of this special group. However, a “well-known LISPer” has been known to give out buttons with Knights insignia on them, and some people have claimed to have membership in the Knights.

Here is a local copy.
(via Wikipedia)

Art and Code and Visualizing Data

I went to two of Ben Fry’s talks at Art and Code, and bought his book Visualizing Data (O’Reilly) and downloaded his dissertation, so I can guess how his presentation went. To get the real flavor of what happens in those first ten minutes, though, besides waiting for the NEU ACM video (great ACM chapter, by the way!), you can also wait for the Art and Code videos, which are not up yet, but will be at some point, here: http://www.vimeo.com/artandcode

(via PLT)

On FP and Graphics Processing

Oddly, graphics processing is very functional, yet procedural languages are used to teach it. In a nutshell, matrices operate on matrices operate … . In between some of the stages, drawing takes place; the rightmost argument is the beginning of the scene. Years ago, I gave up learning OpenGL because it was so tedious. Now that I am enlightened by FP, I understand and enjoy graphics programming so much more that I wrote an API just for the fun of it.

(via PLT)