computingFreedom | Build | Picolisp | Picolisp Machine | Pil sources | Pil Tutorials | Linux | BASH | C Programmming | Operating Systems | Javascipt | Emacs | vim | Pharo Smalltalk | Computer Security | Penti

If you have always been interested in Lisp and its variant forms such as Common Lisp, Scheme, Racket, newLISP and the like, I think that you are really going to love Picolisp.

The original 32 bit implementation is written in C, and supports 32bit programming. Over the years the language has grown and is now available in 64 bit. The really cool things is this time the language is implemented by a generic assembler written in picolisp. The picolisp website has all the documentation that you need to get setup and running. It also has an extensive tutorial on the language. So you can get started there.

What I want to do here, is examine the sources and the implementation details so that we can get a low level / deep understanding of how the language actually works.


The main picolisp website has a very comprehensive documentation consisting of the Picolisp Reference and other tutorials. I do not intend on duplicating efforts here. What I will try and do instead is add complementary and supplemental information here. As such I have followed the topics in the order they appear in the Reference. Hopefully reading this document in conjunction with the original reference will help bring it to life.

The PicoLisp Machine


Working With Numbers



Internal Symbols

Transient Symbols

External Symbols




Shared Libraries



Error Handling

@ Result


OO Concepts



The 5 Transaction Steps

Short transactions, involving only a single DB operation, are available in functions like new! and methods like put!> (by convention with an exclamation mark), which implicitly call (dbSync) and (commit 'upd) themselves

Updating the Database

Entities / Relations

Pilog (PicoLisp Prolog)

Naming Conventions

Breaking Traditions


24jun17   admin
Revision History