Practical and Portable Programming in Scheme Donovan Kolbly, Ph.D. TippingPoint Technologies This tutorial is intended to be an introduction to programming in the Scheme language with a focus on practical issues of system integration (application development) and portability as it is practiced in the Scheme community. The target audience is primarily dabblers in the Scheme language that would like to understand the opportunities and pitfalls of taking Scheme to the next level in practical applications. Programmers fluent in other functional languages but not necessarily Scheme or Lisp will also benefit from the hands-on introductory approach taken here. The first part of this tutorial will include a quick overview of the basic, well-standardized data structures in Scheme (where portability is less of an issue). We will also cover some of the common extensions to Scheme and how the SRFI process and R6RS play in the goal of achieving practical, portable programming. For second, hands-on part of this tutorial, we'll work through some examples of writing utility scripts with a view to portability both across Scheme implementations and across operating systems. The focus will be on practical, commercially useful tools or applications. Attendees should have either a Linux, Mac OS X, or Windows laptop with both Scheme 48 and PLT Scheme installed, as we will be using these two implementations to illustrate some of the portability issues that Scheme programmers encounter both at the language and at the system level. The reference version of Scheme 48 will be 1.8, available for download from [http://s48.org/] The reference version of PLT scheme will be 4.0.2, may be downloaded from [http://download.plt-scheme.org/drscheme/] Both systems impose fairly nominal requirements for a modern laptop. ------------------------------------------------------------------------ Donovan Kolbly is a Director of Software Development at TippingPoint Technologies in Austin, Texas. He has 20 years of experience in software development, 10 years of which has been with an eye to using Scheme where it makes sense in commercial practice (and sometimes where it doesn't). He is the author of the RScheme implementation, which embodies much of his research into language systems and which was a platform for several commercial applications. He has a Ph.D. in Computer Science from the University of Texas at Austin.