Hedgehog

Never underestimate the power of a small tactical Lisp interpreter.Hedgehog is a bytecoded Lisp designed for use in small embedded applications:

Hedgehog is a very concise implementation of a Lisp-like language for low-end and embedded devices. It consists of a compiler and a byte code interpreter. The byte code interpreter is written in standard conforming C, is efficient and easily portable, and can be compiled to a very small executable of only some 20 kilobytes in the smallest configuration for the Intel x86 architecture.

The Hedgehog Lisp dialect has proper support for local and lambda functions, lexical scoping, variable argument functions, garbage collection, exceptions, macros, and over a hundred predefined functions or special forms. The built-in types are lists, symbols, strings, 32-bit integers, AVL-trees, and tuples up to 16 elements wide. Proper 32-bit wide integers are necessary for various bit-level operations in embedded systems.

As a Lisp enthusiast who spends his days developing programming tools for extremely resource-constrained DSP systems, I’ve occasionally wondered if it would be possible to run a Lisp on AMIS’s processors. At 20 kilobytes, the Hedgehog folks are getting surprisingly close. Neat stuff!

More notes from EclipseCon

More notes:

  • Google fellow, Urs Hölzle, gave an talk about how Google search works, telling how they cluster their machines in two matricies (one for indexing and another for content). He talked a little about the Google File System (GFS), and MapReduce. More details from Urs’ talk here. Fun stuff.
  • Ed Warnicke is trying to generate and organize interest in dynamically-typed languages — such as Perl, Python, Ruby, and especially TCL — in Eclipse. Though I have my doubts whether there is much demand for scripting language IDEs, I am curious and hopeful that something comes out of it.
  • Randy Hudson gave an talk on obstacle avoidance in GEF that I found interesting.
  • Mark and I took a short stroll along the waterfront between sessions yesterday. I can see why this is such a popular place to live: flowers bloom in February!
  • After hundreds of years of eating at tables, why hasn’t anybody developed a place setting that unambiguously identifies a diner’s water glass?

Some Observations from EclipseCon

Some brief observations from EclipseCon 2005:

Beatles in the Rain

Meet Rain!Mandy, and I are going to see Rain: The World’s Greatest Beatles Tribute at Massey Hall tomorrow night. I’ve always enjoyed Beatles tunes, but between the two of us, Mandy is by far the bigger Beatles fan. Luckily, Mandy’s father, who is also a huge fan, is coming too, giving Mandy the opportunity to experience the concert with somebody who appreciates it as much as she does while taking the pressure off of her ignoramus husband. It looks to be a fun night out.

Packing My Bags for EclipseCon

EclipseCon 2005I’m leaving for EclipseCon on Sunday. I hope to write daily reports on the talks that I attend, but I’m not making any promises.

I’m attending two tutorials on Monday: one on concurrency in Eclipse, the other on the Eclipse debug framework. I’m also hoping to get together with some of my former colleagues (now merely friends) from Texas Instruments that evening. And I’ll be attending a BoF on the topic of language toolkits in support of my colleague, Mark Melvin, who will be presenting in a Tech Exchange on the topic later in the week.

I have no definite plans for the rest of the week yet.

Cesare Beccaria on Design

I subscribe to the The Philospher’s Magazine’s quote-a-day mailing list. Today, I found the following quote from Cesare Beccaria in my inbox:

False is the idea of utility that sacrifices a thousand real advantages for one imaginary or trifling inconvenience; that would take fire from men because it burns, and water because one may drown in it; that has no remedy for evils, except destruction. The laws that forbid the carrying of arms are laws of such a nature. They disarm those only who are neither inclined nor determined to commit crimes.

Somehow, when I read it, I immediately thought of Java.