PicoLisp

icon

programming simplified

Try it

Type PicoLisp expressions here. Hit enter to evaluate.



Got 5 minutes?

Type help to start the tutorial, or just start firing off PicoLisp one-liners.

An interpreted lisp built atop a simple, stable virtual machine

Simple

PicoLisp is a programming environment that prides itself on it's powerful simplicity. It gives the programmer the tools to create complex programs with simple code. Basically, it's super efficient.

First of all, PicoLisp is a virtual machine architecture, and then a programming language. Its internal structures are simple enough, allowing the experienced programmer to fully understand what's going on under the hood. In fact, at the lowest level, the VM is built up from a single data structure, the cell. The high-level constructs of the programming language map directly to these cells, making the whole system both understandable and predictable.

Relax into the PicoLisp mindset. All your thoughts and all your programs are simply a bunch of cells, making connections and sharing data amongst themselves.

Fun

PicoLisp has a lot of features that really make it a pleasure to program. Check it!

  • Integrated Database

    Database functionality is built into the core of the language. PicoLisp is a database query and manipulation language. Build large multi-user databases, distributed across many machines or in a cloud, with a modest, lean technology stack.

  • UI Framework

    PicoLisp ships with all you need to get started writing web applications. Just add love and a bit of CSS.

  • Native C calls

    Interface with almost any C library function, manipulate C data structures in memory, call lisp functions from your C code. All this without writing any glue code or include files. Heck, you can even call those C functions from the REPL.

  • Java Interoperability

    This seems to be important for a lot of people these days. Sure, why not? PicoLisp can interface directly to a running JVM, giving you dynamic access to all those libraries and classes or whatever.

Stable

PicoLisp has been under development since the late 80's. Both the language and the virtual machine have stabilized in that time. You can count on your programs running tomorrow and ten years from tomorrow.

Flexible

It's lisp, afterall. It's a programming language best suited for reprogramming itself. Into functional programming? Rock on. OOP? PicoLisp has an elegant, unobtrusive, totally optional object system. Dreaming of a new DSL? Trivial. Explore a syntax of nested function calls, bend the language to the task at hand, metaprogram yourself to the moon. We'll help you build a rocket.

Unabashedly Dynamic

PicoLisp doesn't even care! It tries to be as dynamic as possible. All decisions - matters like memory management, dynamic symbol binding, and late method binding - are delayed until runtime. Entire environments are first-class citizens. There is no compiler.

But seriously, dynamic binding is very powerful because there is only one single, dynamically changing environment active all the time. This makes it possible (e.g. for program snippets, interspersed with application data and/or passed over the network) to access the whole application context freely, yet in a dynamically controlled manner. And (shallow) dynamic binding is the fastest method for a lisp interpreter.

It's a breath of fresh air in this stagnant, statically typed world.

Dangerous

PicoLisp is for programmers who want fine-grained control of their environment, at all levels, from the application domain down to the bare metal, who want to use a transparent and simple - yet universal - programming model, and who want to know exactly what is going on.

Such control comes at a price, however. PicoLisp does not pretend to be easy to learn, nor will it make any attempt to protect you from yourself. You've been warned.