Friday, May 13, 2011

First release of Map

First release of Map complete! Grab the code here:
https://github.com/farrellm/Map
Not as ambitious a release as I had hoped, but it's a start. Current features include:

  • literal constants (integer, floating point, string, and symbol)
  • function application
  • native function framework (sqrt, exit)
  • sequence special form
  • REPL
Planned features (in no particular order):
  • Android app
  • collections and aggregate functions (map, reduce)
  • streams
  • more special forms (let, if, lambda)
  • full static typing with type inference

Monday, May 9, 2011

Week 1. An interpreter for Android

Ok, so I'm already cheating and it's only my first week. I started writing a basic lisp-like interpreter a couple weeks ago, but I restarted nearly from scratch tonight, so I think it's ok.

The premise here is I want a language for my phone that will execute faster than Jython in SL4A. Also, I'd like it to be a lisp/scheme. I've never written a language before (beyond the meta-circular evaluate in 6.001), so I thought I'd give it a try. I must say, an extremely liberating experience so far. It is fascinating to see how decisions for, say, static vs. dynamic binding, arise.

So two major parts that need to be complete by the weekend: the interpreter and the UI. This is also my first Android app, so I will need to reserve plenty of time for even a simple interactive shell. It's getting late now, so I'll cover more of the details of my language later in the week.

Sunday, May 8, 2011

A journey begins

I came across a couple of stories on Hacker News today that caught my attention. The first, a challenge: code every day and release every week:
http://www.shimweasel.com/2011/05/08/the-stewart-method-how-not-to-suck
An ambitious goal, but given the length of my personal backlog, maybe the only way to make some meaningful progress.

The other:
http://www.technologyreview.com/computing/37525/?p1=A2&a=f
Maybe a future project idea ;-)