www.delorie.com/gnu/docs/guile/guile-tut_13.html   search  
 
Buy GNU books!


Guile Tutorial

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2 What is libguile

Libguile is the library which allows C programs to start a Scheme interpreter and execute Scheme code. There are also facilities in libguile to make C data structures available to Scheme, and vice versa.

The interface provided by the libguile C library is somewhat specific to the implementation of the Scheme interpreter. This low-level libguile interface is usually referred to as the scm_ interface, since its public calls (API) all have the scm_ prefix.

There is also a higher-level libguile interface, which is usually referred to as the gh_ interface (libGuile High). Its public calls all have the gh_ prefix. The gh_ library interface is designed to hide the implementation details, thus making it easier to assimilate and portable to other underlying Scheme implementations.

People extending Guile by adding bindings to C libraries (like OpenGL or Rx) are encouraged to use the gh_ interface, so their work will be portable to other Scheme systems. The gh_ interface should be more stable, because it is simpler.

The scm_ interface is necessary if you want to poke into the innards of Scheme data structures, or do anything else that is not offered by the gh_ interface. It is not covered in this tutorial, but is covered extensively in @xref{Scheme data representation, Guile Reference Manual, guile-ref, Guile Reference Manual}.

This chapter gives a gentle introduction to the gh_ interface, presenting some hello world-style programs which I wrote while teaching myself to use libguile.

The Guile Programmer's Manual gives more examples of programs written using libguile, illustrating diverse applications. You can also consult my Gnudl documentation at http://nis-www.lanl.gov/~rosalia/mydocs/ to see a large scale project that uses C and Scheme code together.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

  webmaster   donations   bookstore     delorie software   privacy  
  Copyright © 2003   by The Free Software Foundation     Updated Jun 2003