notes-011001

Notes-011001 - Notes on Programming Standard ML of New Jersey(version 110.0.6 Riccardo Pucella Department of Computer Science Cornell University

Info iconThis preview shows pages 1–5. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Notes on Programming Standard ML of New Jersey (version 110.0.6) Riccardo Pucella Department of Computer Science Cornell University Last revised: January 10, 2001 ii Preface The impetus behind these notes was the desire to provide a cohesive description of Standard ML of New Jersey, an interactive compiler and environment for Standard ML. The goal is to end up with a complete user guide to the system, inclduing the libraries, the tools and the extensions, as well as a tutorial on how to write “real” applications, centered around the use of the module system and the compilation manager. Other reasons include the desire to provide hands-on examples of how to use some maybe poorly understood features or features with an interface different from what one may be used to. Examples of such features include sockets, the input and output subsystem, the readers approach to text scanning and the use of continuations to handle non-local control-flow. All in all, this would be a repository for snippets of SML and SML/NJ programming lore. These notes are not a tutorial introduction to Standard ML. There exists excel-lent introductory material, available both commercially or freely over the Internet. These notes complement this literature by focusing on the Standard ML of New Jersey environment. The first part of these notes does given an overview of the language, but a quick one and without highlighting some of the subtleties of the language. Better writers than I have written better introductory material and I urge you to read those first. References are given in the chapter notes of Chapter 1. I go in somewhat more details when describing the Basis Library, since some of the underlying ideas are fundamental to the overall programming philosophy. Unfor-tunately, that chapter is long, boring and reads more like a reference manual than a tutorial. Throughness and precision at odds with readability. With luck, enough sample code and tutorial material is interspersed to lighten the mood. In the course of the notes, I take the opportunity to describe more advanced topics typically not covered in introductory material, such as sockets programming, signals handling, continuations, concurrency. Some of these subjects are discussed in advanced pro-gramming language courses, which not every one has taken or plan to take. Some of these subjects are hardly discussed and one needs to rummage technical papers or source code. These notes are quite obviously a work in progress. As such, any comments or iii iv PREFACE suggestions will be more than welcome. This version includes chapters 1 through 7. Planned chapters for the end of spring of 2001 include: Chap. 8 : ML-Lex: A Lexical Analyzer Generator Chap. 9 : ML-Yacc: A Parser Generator Chap. 10 : Input and Output Chap. 11 : Sockets Chap. 12 : Regular Expressions Chap. 13 : SML/NJ Extensions Chap. 14 : Continuations In the long run, chapters on the foreign function interface, CML, eXene, reader-based lexing and parsing, prettyprinting and programming reactive systems are...
View Full Document

This note was uploaded on 01/26/2011 for the course CS 455 taught by Professor Litherland,c during the Spring '10 term at Carnegie Mellon.

Page1 / 249

Notes-011001 - Notes on Programming Standard ML of New Jersey(version 110.0.6 Riccardo Pucella Department of Computer Science Cornell University

This preview shows document pages 1 - 5. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online