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 PAIP36, “The expert Lisp programmer eventually develops a good ‘efficiency model’.”
By this Norvig means that over time, the Lisp hacker eventually develops an understanding of how much her code “costs” in terms of space and time.
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.
|• History:||A brief history of Guile.|
|• Data Representation:||How Guile represents Scheme data.|
|• A Virtual Machine for Guile:||How compiled procedures work.|
|• Compiling to the Virtual Machine:||Not as hard as you might think.|