<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE> A Guide to the S-Lang Language: Preface</TITLE>
<LINK HREF="slang-2.html" REL=next>

<LINK HREF="slang.html#toc1" REL=contents>
</HEAD>
<BODY>
<A HREF="slang-2.html">Next</A>
Previous
<A HREF="slang.html#toc1">Contents</A>
<HR>
<H2><A NAME="s1">1. Preface</A></H2>

<P> 
<P><B>S-Lang</B> is an interpreted language that was designed from the start
to be easily embedded into a program to provide it with a powerful
extension language.  Examples of programs that use <B>S-Lang</B> as an
extension language include the <B>jed</B> text editor, the <B>slrn</B>
newsreader, and <B>sldxe</B> (unreleased), a numerical computation
program.  For this reason, <B>S-Lang</B> does not exist as a separate
application and many of the examples in this document are presented
in the context of one of the above applications.
<P><B>S-Lang</B> is also a programmer's library that permits a programmer to
develop sophisticated platform-independent software.  In addition to
providing the <B>S-Lang</B> extension language, the library provides
facilities for screen management, keymaps, low-level terminal I/O,
etc.  However, this document is concerned only with the extension
language and does not address these other features of the <B>S-Lang</B>
library.  For information about the other components of the library,
the reader is referred to the <B>The <B>S-Lang</B> Library Reference</B>.
<P>
<H2><A NAME="ss1.1">1.1 A Brief History of <B>S-Lang</B></A>
</H2>

<P> 
<P>I first began working on <B>S-Lang</B> sometime during the fall of 1992.
At that time I was writing a text editor (<B>jed</B>), which I wanted to
endow with a macro language.  It occured to me that an
application-independent language that could be embedded into the
editor would prove more useful because I could envision embedding it
into other programs.  As a result, <B>S-Lang</B> was born.  
<P><B>S-Lang</B> was originally a stack language that supported a
postscript-like syntax.  For that reason, I named it <B>S-Lang</B>, where
the <EM>S</EM> was supposed to emphasize its stack-based nature.  About
a year later, I began to work on a preparser that would allow one to
write using a more traditional infix syntax making it easier to use
for those unfamiliar with stack based languages.  Currently, the
syntax of the language resembles C, nevertheless some
postscript-like features still remain, e.g., the `<CODE>%</CODE>' character
is still used as a comment delimiter.
<P>
<P>
<H2><A NAME="ss1.2">1.2 Acknowledgements</A>
</H2>

<P> 
<P>Since I first released <B>S-Lang</B>, I have received a lot feedback about
the library and the language from many people.  This has given me
the opportunity and pleasure to interact with several people to
make the library portable and easy to use.  In particular, I would
like to thank the following individuals:
<P>Luchesar Ionkov <CODE>&lt;lionkov@sf.cit.bg&gt;</CODE> for his comments and
criticisms of the syntax of the language.  He was the person who
made me realize that the low-level byte-code engine should be
totally type-independent.  He also improved the tokenizer and
preparser and impressed upon me that the language needed a
grammar.
<P>Mark Olesen <CODE>&lt;olesen@weber.me.queensu.ca&gt;</CODE> for his many patches to
various aspects of the library and his support on AIX. He also
contributed a lot to the pre-processing (<CODE>SLprep</CODE>) routines.
<P>John Burnell <CODE>&lt;j.burnell@irl.cri.nz&gt;</CODE> for the OS/2 port of the
video and keyboard routines.  He also made value suggestions
regarding the interpreter interface.
<P>Darrel Hankerson <CODE>&lt;hankedr@mail.auburn.edu&gt;</CODE> for cleaning up and
unifying some of the code and the makefiles.
<P>Dominik Wujastyk <CODE>&lt;ucgadkw@ucl.ac.uk&gt;</CODE> who was always willing to test
new releases of the library.
<P>Michael Elkins <CODE>&lt;me@muddcs.cs.hmc.edu&gt;</CODE> for his work on the curses
emulation.
<P>Ulli Horlacher <CODE>&lt;framstag@belwue.de&gt;</CODE> and Oezguer Kesim
<CODE>&lt;kesim@math.fu-berlin.de&gt;</CODE> for the <B>S-Lang</B> newsgroup and mailing list.
<P>Hunter Goatley, Andy Harper <CODE>&lt;Andy.Harper@kcl.ac.uk&gt;</CODE>, and Martin
P.J. Zinser <CODE>&lt;zinser@decus.decus.de&gt;</CODE> for their VMS support.
<P>Dave Sims <CODE>&lt;sims@usa.acsys.com&gt;</CODE> and Chin Huang
<CODE>&lt;cthuang@vex.net&gt;</CODE> for Windows 95 and Windows NT support.
<P>Lloyd Zusman <CODE>&lt;ljz@asfast.com&gt;</CODE> and Rich Roth <CODE>&lt;rich@on-the-net.com&gt;</CODE>
for creating and maintaining <CODE>www.s-lang.org</CODE>.
<P>I am also grateful to many other people who send in bug-reports and
bug-fixes, for without such community involvement, <B>S-Lang</B> would not
be as well-tested and stable as it is.  Finally, I would like to
thank my wife for her support and understanding while I spent long
weekend hours developing the library.
<P>
<P>
<P>
<HR>
<A HREF="slang-2.html">Next</A>
Previous
<A HREF="slang.html#toc1">Contents</A>
</BODY>
</HTML>
