Unix System Programming in Scheme
The Unix Way, if such a thing even exists anymore in modern systems, is to glue small applications together into a sort of dataflow graph. This glue is typically applied through use of a shell scripting language, like that built into the Bourne shell. Unfortunately, the Bourne shell syntax becomes awkward very quickly when programs written in it progress pass the trivial stage.
Olin Shivers came to the rescue with the Scheme shell. It's a full Scheme system with extensions to make Unix programming easier. It has new syntax for process creation, input/output redirection, and system call interfaces. It manages to (almost) seamlessly merge the utility of Unix with the elegance of Scheme.
Shivers wrote a paper on the Scheme shell that goes into much more detail about his motivations, his design philosophy, and what using the Scheme shell for Unix programming is like. It seems to me to be an ideal solution for programs too complex to write trivially in Bourne shell script, but still within the realm of Unix scripting. I'll report again if and when I get a chance to use it.
#
Posted by: Levi
at 11:15 PM on Wednesday, September 28, 2005
  
Comments: (0)
Categories: Scheme
When To Use Macros
One of the most powerful features of Lisp is the ability to mold the language through syntactic transformation. This tool, though indispensable at times, is often overused to the detriment of readability and maintainability. This blog entry gives a good summary of how to decide whether a particular task is best tackled by a macro or some other means.
#
Posted by: Levi
at 5:48 PM on Tuesday, August 23, 2005
  
Comments: (0)
Categories: Lisp Scheme
Scheme to C in 90 Minutes
The Montreal Scheme/Lisp User Group site has an archive of a presentation given at one of their meetings in which a simple Scheme to C compiler was constructed. It doesn't support the whole Scheme standard, but does support optimized tail calls, continuations, and full closures.
90 minutes is pretty good for a language compiler, even if it doesn't compile to native code! Scheme is a great language for studying compilation techniques since it's so easy to transform.
#
Posted by: Levi
at 5:19 PM on Tuesday, July 26, 2005
  
Comments: (0)
Categories: Scheme
IF Scheme Tutorial
Someone on the #scheme channel on Freenode IRC pointed out this Scheme introduction in the format of Interactive Fiction. Bring back fond memories of Zork and its ilk and learn a new programming language at the same time!
#
Posted by: Levi
at 9:54 PM on Thursday, May 5, 2005
  
Comments: (0)
Categories: Scheme