1
0
Fork 0
cl-sites/guile.html_node/Guile-Implementation.html

97 lines
4.2 KiB
HTML
Raw Normal View History

2024-12-17 12:49:28 +01:00
<!DOCTYPE html>
<html>
<!-- Created by GNU Texinfo 7.1, https://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- This manual documents Guile version 3.0.10.
Copyright (C) 1996-1997, 2000-2005, 2009-2023 Free Software Foundation,
Inc.
Copyright (C) 2021 Maxime Devos
Copyright (C) 2024 Tomas Volf
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
copy of the license is included in the section entitled "GNU Free
Documentation License." -->
<title>Guile Implementation (Guile Reference Manual)</title>
<meta name="description" content="Guile Implementation (Guile Reference Manual)">
<meta name="keywords" content="Guile Implementation (Guile Reference Manual)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content=".texi2any-real">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link href="index.html" rel="start" title="Top">
<link href="Concept-Index.html" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html" rel="up" title="Top">
<link href="GNU-Free-Documentation-License.html" rel="next" title="GNU Free Documentation License">
<link href="GOOPS.html" rel="prev" title="GOOPS">
<style type="text/css">
<!--
a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
span:hover a.copiable-link {visibility: visible}
-->
</style>
<link rel="stylesheet" type="text/css" href="https://www.gnu.org/software/gnulib/manual.css">
</head>
<body lang="en">
<div class="chapter-level-extent" id="Guile-Implementation">
<div class="nav-panel">
<p>
Next: <a href="GNU-Free-Documentation-License.html" accesskey="n" rel="next">GNU Free Documentation License</a>, Previous: <a href="GOOPS.html" accesskey="p" rel="prev">GOOPS</a>, Up: <a href="index.html" accesskey="u" rel="up">The Guile Reference Manual</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<h2 class="chapter" id="Guile-Implementation-1"><span>9 Guile Implementation<a class="copiable-link" href="#Guile-Implementation-1"> &para;</a></span></h2>
<p>At some point, after one has been programming in Scheme for some time,
another level of Scheme comes into view: its implementation. Knowledge
of how Scheme can be implemented turns out to be necessary to become
an expert hacker. As Peter Norvig notes in his retrospective on
PAIP<a class="footnote" id="DOCF35" href="#FOOT35"><sup>35</sup></a>, &ldquo;The expert Lisp
programmer eventually develops a good &lsquo;efficiency model&rsquo;.&rdquo;
</p>
<p>By this Norvig means that over time, the Lisp hacker eventually
develops an understanding of how much her code &ldquo;costs&rdquo; in terms of
space and time.
</p>
<p>This chapter describes Guile as an implementation of Scheme: its
history, how it represents and evaluates its data, and its compiler.
This knowledge can help you to make that step from being one who is
merely familiar with Scheme to being a real hacker.
</p>
<ul class="mini-toc">
<li><a href="History.html" accesskey="1">A Brief History of Guile</a></li>
<li><a href="Data-Representation.html" accesskey="2">Data Representation</a></li>
<li><a href="A-Virtual-Machine-for-Guile.html" accesskey="3">A Virtual Machine for Guile</a></li>
<li><a href="Compiling-to-the-Virtual-Machine.html" accesskey="4">Compiling to the Virtual Machine</a></li>
</ul>
</div>
<div class="footnotes-segment">
<hr>
<h4 class="footnotes-heading">Footnotes</h4>
<h5 class="footnote-body-heading"><a id="FOOT35" href="#DOCF35">(35)</a></h5>
<p>PAIP is the common abbreviation for <cite class="cite">Paradigms of
Artificial Intelligence Programming</cite>, an old but still useful text on
Lisp. Norvig&rsquo;s retrospective sums up the lessons of PAIP, and can be
found at <a class="uref" href="http://norvig.com/Lisp-retro.html">http://norvig.com/Lisp-retro.html</a>.</p>
</div>
</body>
</html>