5 Programming in C

This part of the manual explains the general concepts that you need to
understand when interfacing to Guile from C. You will learn about how
the latent typing of Scheme is embedded into the static typing of C, how
the garbage collection of Guile is made available to C code, and how
continuations influence the control flow in a C program.

This knowledge should make it straightforward to add new functions to
Guile that can be called from Scheme. Adding new data types is also
possible and is done by defining smobs.

The Programming Overview section of this part contains general
musings and guidelines about programming with Guile. It explores
different ways to design a program around Guile, or how to embed Guile
into existing programs.

For a pedagogical yet detailed explanation of how the data representation of
Guile is implemented, See Data Representation. You don’t need to know the
details given there to use Guile from C, but they are useful when you want to
modify Guile itself or when you are just curious about how it is all done.

For detailed reference information on the variables, functions
etc. that make up Guile’s application programming interface (API),
See API Reference.