<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE> A Guide to the S-Lang Language</TITLE> <LINK HREF="slang-1.html" REL=next> </HEAD> <BODY> <A HREF="slang-1.html">Next</A> Previous Contents <HR> <H1> A Guide to the S-Lang Language</H1> <H2>John E. Davis, <CODE>davis@space.mit.edu</CODE></H2> Sat Feb 3 01:58:05 2001 <P> <H2><A NAME="toc1">1.</A> <A HREF="slang-1.html">Preface</A></H2> <UL> <LI><A HREF="slang-1.html#ss1.1">1.1 A Brief History of <B>S-Lang</B></A> <LI><A HREF="slang-1.html#ss1.2">1.2 Acknowledgements</A> </UL> <P> <H2><A NAME="toc2">2.</A> <A HREF="slang-2.html">Introduction</A></H2> <UL> <LI><A HREF="slang-2.html#ss2.1">2.1 Language Features</A> <LI><A HREF="slang-2.html#ss2.2">2.2 Data Types and Operators</A> <LI><A HREF="slang-2.html#ss2.3">2.3 Statements and Functions</A> <LI><A HREF="slang-2.html#ss2.4">2.4 Error Handling</A> <LI><A HREF="slang-2.html#ss2.5">2.5 Run-Time Library</A> <LI><A HREF="slang-2.html#ss2.6">2.6 Input/Output</A> <LI><A HREF="slang-2.html#ss2.7">2.7 Obtaining <B>S-Lang</B></A> </UL> <P> <H2><A NAME="toc3">3.</A> <A HREF="slang-3.html">Overview of the Language</A></H2> <UL> <LI><A HREF="slang-3.html#ss3.1">3.1 Variables and Functions</A> <LI><A HREF="slang-3.html#ss3.2">3.2 Strings</A> <LI><A HREF="slang-3.html#ss3.3">3.3 Referencing and Dereferencing</A> <LI><A HREF="slang-3.html#ss3.4">3.4 Arrays</A> <LI><A HREF="slang-3.html#ss3.5">3.5 Structures and User-Defined Types</A> <LI><A HREF="slang-3.html#ss3.6">3.6 Namespaces</A> </UL> <P> <H2><A NAME="toc4">4.</A> <A HREF="slang-4.html">Data Types and Literal Constants</A></H2> <UL> <LI><A HREF="slang-4.html#ss4.1">4.1 Predefined Data Types</A> <LI><A HREF="slang-4.html#ss4.2">4.2 Typecasting: Converting from one Type to Another</A> </UL> <P> <H2><A NAME="toc5">5.</A> <A HREF="slang-5.html">Identifiers</A></H2> <P> <H2><A NAME="toc6">6.</A> <A HREF="slang-6.html">Variables</A></H2> <P> <H2><A NAME="toc7">7.</A> <A HREF="slang-7.html">Operators</A></H2> <UL> <LI><A HREF="slang-7.html#ss7.1">7.1 Unary Operators</A> <LI><A HREF="slang-7.html#ss7.2">7.2 Binary Operators</A> <LI><A HREF="slang-7.html#ss7.3">7.3 Mixing Integer and Floating Point Arithmetic</A> <LI><A HREF="slang-7.html#ss7.4">7.4 Short Circuit Boolean Evaluation</A> </UL> <P> <H2><A NAME="toc8">8.</A> <A HREF="slang-8.html">Statements</A></H2> <UL> <LI><A HREF="slang-8.html#ss8.1">8.1 Variable Declaration Statements</A> <LI><A HREF="slang-8.html#ss8.2">8.2 Assignment Statements</A> <LI><A HREF="slang-8.html#ss8.3">8.3 Conditional and Looping Statements</A> <LI><A HREF="slang-8.html#ss8.4">8.4 break, return, continue</A> </UL> <P> <H2><A NAME="toc9">9.</A> <A HREF="slang-9.html">Functions</A></H2> <UL> <LI><A HREF="slang-9.html#ss9.1">9.1 Declaring Functions</A> <LI><A HREF="slang-9.html#ss9.2">9.2 Parameter Passing Mechanism</A> <LI><A HREF="slang-9.html#ss9.3">9.3 Referencing Variables</A> <LI><A HREF="slang-9.html#ss9.4">9.4 Functions with a Variable Number of Arguments</A> <LI><A HREF="slang-9.html#ss9.5">9.5 Returning Values</A> <LI><A HREF="slang-9.html#ss9.6">9.6 Multiple Assignment Statement</A> <LI><A HREF="slang-9.html#ss9.7">9.7 Exit-Blocks</A> </UL> <P> <H2><A NAME="toc10">10.</A> <A HREF="slang-10.html">Name Spaces</A></H2> <P> <H2><A NAME="toc11">11.</A> <A HREF="slang-11.html">Arrays</A></H2> <UL> <LI><A HREF="slang-11.html#ss11.1">11.1 Creating Arrays</A> <LI><A HREF="slang-11.html#ss11.2">11.2 Reshaping Arrays</A> <LI><A HREF="slang-11.html#ss11.3">11.3 Indexing Arrays</A> <LI><A HREF="slang-11.html#ss11.4">11.4 Arrays and Variables</A> <LI><A HREF="slang-11.html#ss11.5">11.5 Using Arrays in Computations</A> </UL> <P> <H2><A NAME="toc12">12.</A> <A HREF="slang-12.html">Associative Arrays</A></H2> <P> <H2><A NAME="toc13">13.</A> <A HREF="slang-13.html">Structures and User-Defined Types</A></H2> <UL> <LI><A HREF="slang-13.html#ss13.1">13.1 Defining a Structure</A> <LI><A HREF="slang-13.html#ss13.2">13.2 Accessing the Fields of a Structure</A> <LI><A HREF="slang-13.html#ss13.3">13.3 Linked Lists</A> <LI><A HREF="slang-13.html#ss13.4">13.4 Defining New Types</A> </UL> <P> <H2><A NAME="toc14">14.</A> <A HREF="slang-14.html">Error Handling</A></H2> <UL> <LI><A HREF="slang-14.html#ss14.1">14.1 Error-Blocks</A> <LI><A HREF="slang-14.html#ss14.2">14.2 Clearing Errors</A> </UL> <P> <H2><A NAME="toc15">15.</A> <A HREF="slang-15.html">Loading Files: evalfile and autoload</A></H2> <P> <H2><A NAME="toc16">16.</A> <A HREF="slang-16.html">File Input/Output</A></H2> <UL> <LI><A HREF="slang-16.html#ss16.1">16.1 Input/Output via stdio</A> <LI><A HREF="slang-16.html#ss16.2">16.2 POSIX I/O</A> <LI><A HREF="slang-16.html#ss16.3">16.3 Advanced I/O techniques</A> </UL> <P> <H2><A NAME="toc17">17.</A> <A HREF="slang-17.html">Debugging</A></H2> <P> <H2><A NAME="toc18">18.</A> <A HREF="slang-18.html">Regular Expressions</A></H2> <UL> <LI><A HREF="slang-18.html#ss18.1">18.1 <B>S-Lang</B> RE Syntax</A> <LI><A HREF="slang-18.html#ss18.2">18.2 Differences between <B>S-Lang</B> and egrep REs</A> </UL> <P> <H2><A NAME="toc19">19.</A> <A HREF="slang-19.html">Future Directions</A></H2> <H2>Appendix</H2> <P> <H2><A NAME="toc20">20.</A> <A HREF="slang-20.html">Copyright</A></H2> <UL> <LI><A HREF="slang-20.html#ss20.1">20.1 The GNU Public License</A> <LI><A HREF="slang-20.html#ss20.2">20.2 The Artistic License</A> </UL> <HR> <A HREF="slang-1.html">Next</A> Previous Contents </BODY> </HTML>