1
0
Fork 0
cl-sites/guile.html_node/Programming-Overview.html

89 lines
4 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>Programming Overview (Guile Reference Manual)</title>
<meta name="description" content="Programming Overview (Guile Reference Manual)">
<meta name="keywords" content="Programming Overview (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="Programming-in-C.html" rel="up" title="Programming in C">
<link href="Autoconf-Support.html" rel="next" title="Autoconf Support">
<link href="Function-Snarfing.html" rel="prev" title="Function Snarfing">
<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="section-level-extent" id="Programming-Overview">
<div class="nav-panel">
<p>
Next: <a href="Autoconf-Support.html" accesskey="n" rel="next">Autoconf Support</a>, Previous: <a href="Function-Snarfing.html" accesskey="p" rel="prev">Function Snarfing</a>, Up: <a href="Programming-in-C.html" accesskey="u" rel="up">Programming in C</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>
<h3 class="section" id="An-Overview-of-Guile-Programming"><span>5.7 An Overview of Guile Programming<a class="copiable-link" href="#An-Overview-of-Guile-Programming"> &para;</a></span></h3>
<p>Guile is designed as an extension language interpreter that is
straightforward to integrate with applications written in C (and C++).
The big win here for the application developer is that Guile
integration, as the Guile web page says, &ldquo;lowers your project&rsquo;s
hacktivation energy.&rdquo; Lowering the hacktivation energy means that you,
as the application developer, <em class="emph">and your users</em>, reap the benefits
that flow from being able to extend the application in a high level
extension language rather than in plain old C.
</p>
<p>In abstract terms, it&rsquo;s difficult to explain what this really means and
what the integration process involves, so instead let&rsquo;s begin by jumping
straight into an example of how you might integrate Guile into an
existing program, and what you could expect to gain by so doing. With
that example under our belts, we&rsquo;ll then return to a more general
analysis of the arguments involved and the range of programming options
available.
</p>
<ul class="mini-toc">
<li><a href="Extending-Dia.html" accesskey="1">How One Might Extend Dia Using Guile</a></li>
<li><a href="Scheme-vs-C.html" accesskey="2">Why Scheme is More Hackable Than C</a></li>
<li><a href="Testbed-Example.html" accesskey="3">Example: Using Guile for an Application Testbed</a></li>
<li><a href="Programming-Options.html" accesskey="4">A Choice of Programming Options</a></li>
<li><a href="User-Programming.html" accesskey="5">How About Application Users?</a></li>
</ul>
</div>
</body>
</html>