Recently, I posted links to the darcs repositories of Scheffig and fcc. Scheffig is the Scheme 48 Foreign Function Interface Generator (well, and the name is a pun, as German speaking readers might have noticed) written by Andreas Bernauer, Tobias Thierer, Martin Gasbichler, and Philipp Schumacher. The project started back in 2001 when Martin taught a pratical course in compiler construction. Andreas and Tobias wrote most of the code and at the end of term, Scheffig was in pretty good shape. Philipp wrote the code for handling C constructs like structs, unions, and typedefs, taught Scheffig to use GCPRO, and added a configuration language to control Scheffig’s behavior. He did this as a term project (I was his advisor). Two give a real world example, we generated bindings for OpenGL. Worked fine, however, the OpenGL API contains some functions that have callbacks as arguments. That’s still an open problem.
However, since some thrill-seeking fearless Scheme 48 users are interested in the code, Martin and I deciced to make the repository (converted to darcs) available:
darcs get http://www-pu.informatik.uni-tuebingen.de/users/knauel/sw/scheffig/
As a prerequisite you will need fcc. Fcc is C front-end written by Mike Sperber:
darcs get http://www-pu.informatik.uni-tuebingen.de/users/knauel/sw/fcc/
Both repositories contain some documentation. My post may also be helpful for building Scheffig. Good luck!
Technorati Tags: Scheme, Scheme 48, OpenGL