Introduction.html (4828B)
1 <html lang="en"> 2 <head> 3 <title>Introduction - klisp Reference Manual</title> 4 <meta http-equiv="Content-Type" content="text/html"> 5 <meta name="description" content="klisp Reference Manual"> 6 <meta name="generator" content="makeinfo 4.13"> 7 <link title="Top" rel="start" href="index.html#Top"> 8 <link rel="prev" href="License.html#License" title="License"> 9 <link rel="next" href="Interpreter.html#Interpreter" title="Interpreter"> 10 <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> 11 <meta http-equiv="Content-Style-Type" content="text/css"> 12 <style type="text/css"><!-- 13 pre.display { font-family:inherit } 14 pre.format { font-family:inherit } 15 pre.smalldisplay { font-family:inherit; font-size:smaller } 16 pre.smallformat { font-family:inherit; font-size:smaller } 17 pre.smallexample { font-size:smaller } 18 pre.smalllisp { font-size:smaller } 19 span.sc { font-variant:small-caps } 20 span.roman { font-family:serif; font-weight:normal; } 21 span.sansserif { font-family:sans-serif; font-weight:normal; } 22 --></style> 23 <link rel="stylesheet" type="text/css" href="css/style.css"> 24 </head> 25 <body> 26 <div class="node"> 27 <a name="Introduction"></a> 28 <p> 29 Next: <a rel="next" accesskey="n" href="Interpreter.html#Interpreter">Interpreter</a>, 30 Previous: <a rel="previous" accesskey="p" href="License.html#License">License</a>, 31 Up: <a rel="up" accesskey="u" href="index.html#Top">Top</a> 32 <hr> 33 </div> 34 35 <h2 class="chapter">1 Introduction</h2> 36 37 <p>klisp is an open source interpreter for the Kernel Programming 38 Language. It aims at being comprehensive and robust as specified in 39 the <cite>Revised(-1) Report on the Kernel Programming Language</cite>, but 40 that probably won't happen for some time. It is written in C99 under 41 the MIT license. It draws heavily from the Lua interpreter source 42 code & file structure. It uses the IMath library for arbitrary sized 43 integers and rationals. 44 45 <p>The Kernel programming language is a statically scoped and properly 46 tail-recursive dialect of Lisp, descended from Scheme. It is designed 47 to be simpler and more general than Scheme, with an exceptionally 48 clear, simple, and versatile semantics, only one way to form compound 49 expressions, and no inessential restrictions on the power of that one 50 compound form. Imperative, functional, and message-passing programming 51 styles (to name a few) may be conveniently expressed in Kernel. 52 53 <p>An important property of Kernel is that all manipulable entities in 54 Kernel are first-class objects. In particular, Kernel has no 55 second-class combiners; instead, the roles of special forms and macros 56 are subsumed by operatives, which are first-class, statically scoped 57 combiners that act directly on their unevaluated operands. Kernel 58 also has a second type of combiners, applicatives, which act on their 59 evalu- ated arguments. Applicatives are roughly equivalent to Scheme 60 procedures. However, an applicative is nothing more than a wrapper to 61 induce operand evaluation, around an underlying operative (or, in 62 principle, around another applicative, though that isn’t usually 63 done); applicatives themselves are mere facilitators to computation. 64 65 <p>You can read more about Kernel at 66 <a href="http://web.cs.wpi.edu/~jshutt/kernel.html">http://web.cs.wpi.edu/~jshutt/kernel.html</a>. 67 68 <p>klisp is freely available for both academic and commercial purposes. 69 See LICENSE for details. it can be downloaded at 70 <a href="https://bitbucket.org/AndresNavarro/klisp">https://bitbucket.org/AndresNavarro/klisp</a> 71 72 <p>klisp is developed by Andres Navarro, a Computer Science 73 undergraduate at Buenos Aires University (UBA). You can reach him at 74 <a href="mailto:canavarro82@gmail.com">canavarro82@gmail.com</a>. Significant contributions are being 75 done by Oto Havle, his fork is at 76 <a href="https://bitbucket.org/havleoto/klisp">https://bitbucket.org/havleoto/klisp</a>. 77 78 <p>This manual describes klisp version 0.3, presuming some familiarity 79 with the Lisp family of languages in general, and with the Kernel 80 Programming Language in particular. There are frequent references to 81 the Kernel Programming Language Report. Unlike in the report, no 82 rationale is provided for any feature, only a description of the 83 implemented functionality. 84 85 <p>This is edition 0.3. 86 87 <ul class="menu"> 88 <li><a accesskey="1" href="Caveats.html#Caveats">Caveats</a>: Flaws and a request for help. 89 <li><a accesskey="2" href="Kernel-History.html#Kernel-History">Kernel History</a>: Kernel is descended from Scheme. 90 <li><a accesskey="3" href="Conventions.html#Conventions">Conventions</a>: How the manual is formatted. 91 <li><a accesskey="4" href="Acknowledgements.html#Acknowledgements">Acknowledgements</a>: Contributions to this manual. 92 </ul> 93 94 </body></html> 95