27oct06abu
(c) Software Lab. Alexander Burger

                                                          Perfection is attained
                                           not when there is nothing left to add
                                     but when there is nothing left to take away
                                                     (Antoine de Saint-Exupery)
         The Pico Lisp System
         ====================

     _PI_co Lisp is not _CO_mmon Lisp

Pico Lisp can be viewed from two different aspects: As a general purpose
programming language, and a dedicated application server framework.


(1) As a programming language, Pico Lisp provides a 1-to-1 mapping of a clean
and powerful Lisp derivate, to a simple and efficient virtual machine. It
supports persistent objects as a first class data type, resulting in a database
system of Entity/Relation classes and a Prolog-like query language tightly
integrated into the system.

The virtual machine was designed to be
   Simple
      The internal data structure should be as simple as possible. Only one
      single data structure is used to build all higher level constructs.
   Unlimited
      There are no limits imposed upon the language due to limitations of the
      virtual machine architecture. That is, there is no upper bound in symbol
      name length, number digit counts, or data structure and buffer sizes,
      except for the total memory size of the host machine.
   Dynamic
      Behavior should be as dynamic as possible ("run"-time vs. "compile"-time).
      All decisions are delayed till runtime where possible. This involves
      matters like memory management, dynamic symbol binding, and late method
      binding.
   Practical
      Pico is not just a toy of theoretical value. Pico is used since 1988 in
      actual application development, research and production.

The language inherits the major advantages of classical Lisp systems like
   - Dynamic data types and structures
   - Formal equivalence of code and data
   - Functional programming style
   - An interactive environment

Pico Lisp is very different from any other Lisp dialect. This is partly due to
the above design principles, and partly due to its long development history
since 1984.

You can download the latest release version at
"http://software-lab.de/down.html".


(2) As an application server framework, Pico Lisp provides for 
   Database Management
      Index trees
      Nested transactions
      Object local indexes
      Entity/Relation classes
      Pilog (Pico Prolog) queries
      Multi-user synchronization
      DB Garbage collection
      Journaling, Replication
   User Interface
      Browser GUI
      HTML/WML generation
      Applet I/O
   Application Server
      Process management
      Process family communication
      XML I/O
      Import/export
      User administration
      Internationalization
      Security
      Object linkage
      Java reflection
      Postscript/Printing

Pico Lisp is not an IDE. All program development in Software Lab. is done using
the console, bash, vim and the Lisp interpreter.

The only type of GUI supported for applications is through a browser via HTML.
This makes the client side completely platform idependent. Applets are created
dynamically. They connect back to the Pico server and establish an interactive
user interface frontend, while all application logic runs on the server. Each
key press or mouse click is propagated to the server and can cause immediate
actions like in a local desktop application.

The GUI is deeply integrated with - and generated dynamically from - the
application's data model. Because the application logic runs on the server,
multiple users can view and modify the same database object without conflicts,
everyone seeing changes done by other users on her screen immediately due to the
internal process and database synchronization.

A deeper explanation of the programming paradigms can be found at
"http://software-lab.de/dbui.html".

Pico Lisp compiles and runs under GNU/Linux, FreeBSD, Mac OS X (Darwin),
Cygwin/Win32, and possibly other systems.

Pico Lisp is supported by 7fach and SmApper Technologies.

--------------------------------------------------------------------------------

   Alexander Burger
   Software Lab. / 7fach GmbH
   Bahnhofstr. 24a, D-86462 Langweid
   abu@software-lab.de, http://www.software-lab.de, +49 8230 5060
