Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > e3d62627d1d1aab7ab1be2dd7f65a872 > files > 330

ecl-10.4.1-1.fc14.x86_64.rpm

<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Part&#160;III.&#160;Internals</title><link rel="stylesheet" href="ecl.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="The ECL manual"><link rel="up" href="index.html" title="The ECL manual"><link rel="prev" href="ch23s02.html" title="8.2.&#160;Embedding Reference"><link rel="next" href="ch24.html" title="Chapter&#160;1.&#160;Building programs"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part&#160;III.&#160;Internals</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch23s02.html">Prev</a>&#160;</td><th width="60%" align="center">&#160;</th><td width="20%" align="right">&#160;<a accesskey="n" href="ch24.html">Next</a></td></tr></table><hr></div><div class="part" title="Part&#160;III.&#160;Internals"><div class="titlepage"><div><div><h1 class="title"><a name="part.internals"></a>Part&#160;III.&#160;Internals</h1></div></div></div><div class="partintro" title="Internals"><div></div><p><span class="application">ECL</span> is an implementation of the Common-Lisp language that is based on a kernel
 written in C plus a set of libraries written in Common-Lisp. The kernel includes a
 bytecodes compiler, an interpreter, and enough functions to create and
 manipulate all lisp objects. The lisp libraries provide higher level constructs
 such as macro definitions, LOOPs, an implementation of CLOS, and a translator
 from Lisp to C.</p><p>As a result of this design, which dates back to the Kyoto CL and was later
 improved in Giuseppe Attardi's ECoLisp, <span class="application">ECL</span> can be used as</p><div class="itemizedlist"><ul class="itemizedlist" type="bullet"><li class="listitem" style="list-style-type: disc"><p>As a standalone implementation of the Common-Lisp language</p></li><li class="listitem" style="list-style-type: disc"><p>As an embedded interpreter subject to the control of a larger C program.</p></li><li class="listitem" style="list-style-type: disc"><p>As a Common-Lisp environment with C/C++ extensions.</p></li></ul></div><p class="continues">This manual describes the facility of <span class="application">ECL</span> to interface the C language and
 <span class="application">ECL</span>.  With this facility, the user can arrange his or her C-language
 programs so that they can be invoked from <span class="application">ECL</span>. In addition, the user can
 write Lisp function definitions in the C language to increase runtime
 efficiency.</p><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="ch24.html">1. Building programs</a></span></dt><dd><dl><dt><span class="section"><a href="ch24.html#Internals-What-can-ECL-do-">1.1. What can <span class="application">ECL</span> do?</a></span></dt><dt><span class="section"><a href="ch24s02.html">1.2. Compiling files</a></span></dt><dt><span class="section"><a href="ch24s03.html">1.3. Building standalone executables</a></span></dt><dt><span class="section"><a href="ch24s04.html">1.4. Building libraries</a></span></dt><dt><span class="section"><a href="ch24s05.html">1.5. File names</a></span></dt><dt><span class="section"><a href="ch24s06.html">1.6. Compiler examples</a></span></dt><dd><dl><dt><span class="section"><a href="ch24s06.html#id675955">1.6.1. The <code class="filename">hello.lisp</code> file</a></span></dt><dt><span class="section"><a href="ch24s06.html#id676016">1.6.2. Example of loadable object file</a></span></dt><dt><span class="section"><a href="ch24s06.html#id676095">1.6.3. Example of standalone program</a></span></dt><dt><span class="section"><a href="ch24s06.html#id676201">1.6.4. Combining files into a larger FASL</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ch25.html">2. Manipulating Lisp objects</a></span></dt><dd><dl><dt><span class="section"><a href="ch25.html#Internals-Objects-representation">2.1. Objects representation</a></span></dt><dt><span class="section"><a href="ch25s02.html">2.2. Constructing objects</a></span></dt><dt><span class="section"><a href="ch25s03.html">2.3. Integers</a></span></dt><dt><span class="section"><a href="ch25s04.html">2.4. Characters</a></span></dt><dt><span class="section"><a href="ch25s05.html">2.5. Arrays</a></span></dt><dt><span class="section"><a href="ch25s06.html">2.6. Strings</a></span></dt><dt><span class="section"><a href="ch25s07.html">2.7. Bitvectors</a></span></dt><dt><span class="section"><a href="ch25s08.html">2.8. Streams</a></span></dt><dt><span class="section"><a href="ch25s09.html">2.9. Structures</a></span></dt><dt><span class="section"><a href="ch25s10.html">2.10. Instances</a></span></dt><dt><span class="section"><a href="ch25s11.html">2.11. Bytecodes</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch26.html">3. The interpreter</a></span></dt><dd><dl><dt><span class="section"><a href="ch26.html#Internals-ECL-stacks">3.1. <span class="application">ECL</span> stacks</a></span></dt><dt><span class="section"><a href="ch26s02.html">3.2. Procedure Call Conventions</a></span></dt><dt><span class="section"><a href="ch26s03.html">3.3. The lexical environment</a></span></dt><dt><span class="section"><a href="ch26s04.html">3.4. The interpreter stack</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch27.html">4. The compiler</a></span></dt><dd><dl><dt><span class="section"><a href="ch27.html#Internals-The-compiler-translates-to-C">4.1. The compiler translates to C</a></span></dt><dt><span class="section"><a href="ch27s02.html">4.2. The compiler mimics human C programmer</a></span></dt><dt><span class="section"><a href="ch27s03.html">4.3. Implementation of Compiled Closures</a></span></dt><dt><span class="section"><a href="ch27s04.html">4.4. Use of Declarations to Improve Efficiency</a></span></dt><dt><span class="section"><a href="ch27s05.html">4.5. Inspecting generated C code</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch28.html">5. Porting <span class="application">ECL</span></a></span></dt></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch23s02.html">Prev</a>&#160;</td><td width="20%" align="center">&#160;</td><td width="40%" align="right">&#160;<a accesskey="n" href="ch24.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">8.2.&#160;Embedding Reference&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;Chapter&#160;1.&#160;Building programs</td></tr></table></div></body></html>