README (4332B)
1 08jan13abu 2 (c) Software Lab. Alexander Burger 3 4 Perfection is attained 5 not when there is nothing left to add 6 but when there is nothing left to take away 7 (Antoine de Saint-Exupery) 8 The PicoLisp System 9 =================== 10 11 _PI_co Lisp is not _CO_mmon Lisp 12 13 PicoLisp can be viewed from two different aspects: As a general purpose 14 programming language, and a dedicated application server framework. 15 16 17 (1) As a programming language, PicoLisp provides a 1-to-1 mapping of a clean 18 and powerful Lisp derivate, to a simple and efficient virtual machine. It 19 supports persistent objects as a first class data type, resulting in a database 20 system of Entity/Relation classes and a Prolog-like query language tightly 21 integrated into the system. 22 23 The virtual machine was designed to be 24 Simple 25 The internal data structure should be as simple as possible. Only one 26 single data structure is used to build all higher level constructs. 27 Unlimited 28 There are no limits imposed upon the language due to limitations of the 29 virtual machine architecture. That is, there is no upper bound in symbol 30 name length, number digit counts, or data structure and buffer sizes, 31 except for the total memory size of the host machine. 32 Dynamic 33 Behavior should be as dynamic as possible ("run"-time vs. "compile"-time). 34 All decisions are delayed till runtime where possible. This involves 35 matters like memory management, dynamic symbol binding, and late method 36 binding. 37 Practical 38 PicoLisp is not just a toy of theoretical value. PicoLisp is used since 39 1988 in actual application development, research and production. 40 41 The language inherits the major advantages of classical Lisp systems like 42 - Dynamic data types and structures 43 - Formal equivalence of code and data 44 - Functional programming style 45 - An interactive environment 46 47 PicoLisp is very different from any other Lisp dialect. This is partly due to 48 the above design principles, and partly due to its long development history 49 since 1984. 50 51 You can download the latest release version at http://software-lab.de/down.html 52 53 54 (2) As an application server framework, PicoLisp provides for 55 NoSQL Database Management 56 Index trees 57 Object local indexes 58 Entity/Relation classes 59 Pilog (PicoLisp Prolog) queries 60 Multi-user synchronization 61 DB Garbage collection 62 Journaling, Replication 63 User Interface 64 Browser GUI 65 (X)HTML/CSS 66 XMLHttpRequest/JavaScript 67 Application Server 68 Process management 69 Process family communication 70 XML I/O 71 Import/export 72 User administration 73 Internationalization 74 Security 75 Object linkage 76 Postscript/Printing 77 78 PicoLisp is not an IDE. All program development in Software Lab. is done using 79 the console, bash, vim and the Lisp interpreter. 80 81 The only type of GUI supported for applications is through a browser via HTML. 82 This makes the client side completely platform independent. The GUI is created 83 dynamically. Though it uses JavaScript and XMLHttpRequest for speed 84 improvements, it is fully functional also without JavaScript or CSS. 85 86 The GUI is deeply integrated with - and generated dynamically from - the 87 application's data model. Because the application logic runs on the server, 88 multiple users can view and modify the same database object without conflicts, 89 everyone seeing changes done by other users on her screen immediately due to the 90 internal process and database synchronization. 91 92 PicoLisp is free software, and you are welcome to use and redistribute it under 93 the conditions of the MIT/X11 License (see "COPYING"). 94 95 It compiles and runs on current 32-bit GNU/Linux, FreeBSD, Mac OS X (Darwin), 96 Cygwin/Win32 (and possibly other) systems. A native 64-bit version is available 97 for x86-64/Linux, x86-64/FreeBSD, x86-64/SunOS and ppc64/Linux. 98 99 -------------------------------------------------------------------------------- 100 101 Alexander Burger 102 Software Lab. / 7fach GmbH 103 Bahnhofstr. 24a, D-86462 Langweid 104 abu@software-lab.de, http://www.software-lab.de, +49 8230 5060