Live data from Hacker News

Tiny Lisp Computer

technoblogy.com

11–20 of 27 posts

Re: Tiny Lisp Computer

#11
post #6

Huh. I thought about doing this, figured it would be impossible / pointless, and that (apparently wrong) assumption led me on a year-long journey: The core problem, I thought, would be that AVRs have very very little memory. 316 Lisp cells sounds about right. I figured, well that's pointless. How can I do better? I wasn't able to find a microcontroller that you can attach external memory to (without cheating and usin…

If you build a compiler without runtime eval, you can use all the AVR's memory for user data. Still tiny, but not as cramped as this interpreter: http://microscheme.org Then again, if it doesn't have runtime eval, is it really a lisp?

Good question. It's hard to say.

As for microscheme, it looks cool. Although I am annoyed, because it implicitly claims to be Scheme (it's not), and it explicitly claims to be functional (scheme most definitely isn't). But those are just nitpicks.

Re: Tiny Lisp Computer

#12
post #6

Huh. I thought about doing this, figured it would be impossible / pointless, and that (apparently wrong) assumption led me on a year-long journey: The core problem, I thought, would be that AVRs have very very little memory. 316 Lisp cells sounds about right. I figured, well that's pointless. How can I do better? I wasn't able to find a microcontroller that you can attach external memory to (without cheating and usin…

Some of the devices in the Mega AVR line support external memory. The ATmega640 is an example. Generally you'll only find it on higher pin-count devices which aren't available in DIP packages. If you need something that's a bit easier to work with, the Teensy 2.0++ is an option. As for your Z80 computer, another option would be to add some simple bank-switching hardware to allow you to boot from ROM. Probably more wo…

Once one starts getting into the high pin-count devices, just make the leap to ARM and using something like [0] which has 1MB of Data RAM.

[0] http://www.mouser.com/search/ProductDetail.aspx?R=0virtualke...

Re: Tiny Lisp Computer

#13
post #3

it's basically a uLisp shell on Arduino? it will be shuned by the Haskell elite unless you need a monad to toggle the led, since it's intrinsically a non functional side effect :)

Lisp made its choice long ago: flexability over constraint, freedom over guarantees, call it what you will.

It does make it a hard language to optimize though. Thankfully, it got significantly easier once functions became opaque. But it's still a PITA.

Re: Tiny Lisp Computer

#14

Earlier quoted context omitted.

If you build a compiler without runtime eval, you can use all the AVR's memory for user data. Still tiny, but not as cramped as this interpreter: http://microscheme.org Then again, if it doesn't have runtime eval, is it really a lisp?

Good question. It's hard to say. As for microscheme, it looks cool. Although I am annoyed, because it implicitly claims to be Scheme (it's not), and it explicitly claims to be functional (scheme most definitely isn't). But those are just nitpicks.

Scheme fits the common definition of a functional language, even if it's not pure in the same way as Haskell. Especially since idiomatic Scheme uses pure functions and recursion (as opposed to idiomatic CL which is a lot more imperative).

Re: Tiny Lisp Computer

#15
post #10

In my opinion, this is among the coolest / revolutionary computer products that I have seen in the last 30 years of my usage of computers. It is also great to see that LISP is gaining more and more popularity as people realize the advantages of the stateless, reentrant, idempotent functional programming paradigm.

I don't mean to sound snarky in the least, genuinely curious, but haven't a large proportion of tinkerers, especially with an EE bent, tried to put a simple lisp interpreter on some limited hardware at some point in their lives? I certainly know that a bunch of people learning FPGA programming in a user group i once belonged to all tried to put a lisp machine on one after working through the last chapter of SICP, and there's that lovely article about lisp interpreters running on old JPL probes back in the day. What about this makes it revolutionary?

Re: Tiny Lisp Computer

#16
post #10

In my opinion, this is among the coolest / revolutionary computer products that I have seen in the last 30 years of my usage of computers. It is also great to see that LISP is gaining more and more popularity as people realize the advantages of the stateless, reentrant, idempotent functional programming paradigm.

I don't mean to sound snarky in the least, genuinely curious, but haven't a large proportion of tinkerers, especially with an EE bent, tried to put a simple lisp interpreter on some limited hardware at some point in their lives? I certainly know that a bunch of people learning FPGA programming in a user group i once belonged to all tried to put a lisp machine on one after working through the last chapter of SICP, and…

The JPL probe ran a fully compiled Common Lisp.

Re: Tiny Lisp Computer

#17
post #14

Earlier quoted context omitted.

Good question. It's hard to say. As for microscheme, it looks cool. Although I am annoyed, because it implicitly claims to be Scheme (it's not), and it explicitly claims to be functional (scheme most definitely isn't). But those are just nitpicks.

Scheme fits the common definition of a functional language, even if it's not pure in the same way as Haskell. Especially since idiomatic Scheme uses pure functions and recursion (as opposed to idiomatic CL which is a lot more imperative).

To the contrary, idiomatic Scheme also uses a lot of stateful data.

Re: Tiny Lisp Computer

#18
post #10

In my opinion, this is among the coolest / revolutionary computer products that I have seen in the last 30 years of my usage of computers. It is also great to see that LISP is gaining more and more popularity as people realize the advantages of the stateless, reentrant, idempotent functional programming paradigm.

I don't mean to sound snarky in the least, genuinely curious, but haven't a large proportion of tinkerers, especially with an EE bent, tried to put a simple lisp interpreter on some limited hardware at some point in their lives? I certainly know that a bunch of people learning FPGA programming in a user group i once belonged to all tried to put a lisp machine on one after working through the last chapter of SICP, and…

Of course it's not revolutionary. Lisp is the past technology of the future. And indeed lots of people have done things like this, with Lisp or Forth or Basic or microPython or Lua.

I believe a very early Raspberry Pi prototype was an Atmel chip that ran a Lua interpreter with bit-banged VGA display. It was extremely cheap but ultimately deemed not capable enough.

Re: Tiny Lisp Computer

#19
post #4

uLisp is cool (code is a bit scary in places though), I'm working on a virtual game console which uses an AVR. I added some simple drawing functions. http://fingswotidun.com/cruft/lisptri.gif The emulator is at http://fingswotidun.com/avr/ but it's very alpha. If you have a small screen you can't even click on the run button because of an old debugging div is sitting on top of it.

I would like to read a blog post about your virtual game console if you have or ever write one.

Re: Tiny Lisp Computer

#20
The article links to http://www.technoblogy.com/list?1GLV calling it the full code listing for this Tiny Lisp Computer, however, that link leads to code for a ATtiny841 "I2C Display Module" which is from the "Make your own I2C peripherals" blog post at http://www.technoblogy.com/show?1G29. Hope the author sees this so he can change the link to be the correct one.
Post reply on HN