Introduction to Programming Using Sml / Edition 1

Paperback (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 94%)
Other sellers (Paperback)
  • All (12) from $1.99   
  • New (4) from $65.00   
  • Used (8) from $1.99   
Close
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any BN.com coupons and promotions
$65.00
Seller since 2014

Feedback rating:

(113)

Condition:

New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

New
Brand new.

Ships from: acton, MA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
$84.90
Seller since 2008

Feedback rating:

(187)

Condition: New
0201398206 New. Looks like an interesting title!

Ships from: Naperville, IL

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
$113.68
Seller since 2008

Feedback rating:

(4380)

Condition: New
New Book. Shipped from UK within 4 to 14 business days. Established seller since 2000.

Ships from: Horcott Rd, Fairford, United Kingdom

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
$121.63
Seller since 2008

Feedback rating:

(17206)

Condition: New
Brand New, Perfect Condition, Please allow 4-14 business days for delivery. 100% Money Back Guarantee, Over 1,000,000 customers served.

Ships from: Westminster, MD

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
Page 1 of 1
Showing All
Close
Sort by

Overview

Introduction to Programming using SML provides a thorough introduction to the principles of programming and program design using the Standard ML programming language. The emphasis throughout is to p of programming into practice. The examples and exercises teach the student how to apply basic theoretical concepts to produce succinct and elegant programs and program designs. Coverage includes an introduction to fundamental data structures and their applications. The notions of binding, environment, store, closure and evaluation are introduced in order to explain the meaning of programs in an informal but precise way. Thus, the authors provide the reader with a set of durable programming concepts which will exist well into the next generation of programming languages. Features of the book include:
  • Attractive and reader-friendly presentation
  • Clear and careful explanations
  • A rich collection of programming problems and a wide variety of examples
  • Coverage of modelling and abstraction using data structures and the SML module system
  • Overview and statement of objectives at the start of each chapter
  • An introduction to producing technical documentation based on the SML module system
  • Extensive material in the appendices covering the SML language and module system and selected parts of the SML basis library
Accompanying Web Site supporting the book, containing all the program code, further teaching material and links to SML systems and other useful resources
Read More Show Less

Editorial Reviews

Booknews
Based on Hanson and Rischel's introductory programming course in the Informatics Programme at the Technical University of Denmark, Using Standard ML Meta Language throughout, they bypass theory and customized or efficient implementations to focus on understanding the process of programming and program design. Annotation c. Book News, Inc., Portland, OR booknews.com
Read More Show Less

Product Details

  • ISBN-13: 9780201398205
  • Publisher: Addison-Wesley
  • Publication date: 7/21/1999
  • Series: International Computer Science Series
  • Edition description: New Edition
  • Edition number: 1
  • Pages: 355
  • Product dimensions: 6.77 (w) x 9.20 (h) x 0.71 (d)

Read an Excerpt

PREFACE:

The topics of this book are programming and program design. The contents are used in the introductory programming course in the Informatics Programme at the Technical University of Denmark. This is the first course on programming that many of the students attend. The contents are furthermore used in a programming course for electrical engineers in a later semester. The emphasis is on programming and program design with a systematic use of lists, trees, sets and tables to build models and programs. The book does not cover efficient implementations using specialized representations of these data structures, as this topic is covered in other textbooks on 'algorithms and data structures'.

It is a goal of the book to bring theory to practical use. The examples and exercises in the book teach the student how to use basic, theoretically well-understood, concepts from computer science in problem solving in order to achieve succinct and elegant programs and program designs which can be communicated to other people. The book does, however, avoid formalistic explanations of the theory. Fundamental concepts such as bindings of identifiers and environments are explained in an informal but precise way such that the students get the right intuitive understanding. The presented concepts are programming language independent, and the book is therefore a general book on programming.

Throughout the book we use Standard ML (abbreviated SML) as the programming language. The reasons for this choice are:

  • The language is very powerful in expressing structured data as well as computations on such data. This enables students to solve interesting problems from thevery beginning of the course.

  • The different SML systems have a simple interactive interface to the user. This allows us to downplay the role of I/O while solving difficult problems in a brief and elegant way.

  • The language is close to common mathematical notation. This means that it is not very hard for students to learn the syntax of programs.

  • There is an extensive standard library, and there are several SML systems running on a number of platforms.

  • The language has a complete, formal semantics. Based on this formal semantics, we give a clear (informal) semantics of the programming language constructs, so that students can appreciate a language with a well-defined semantics.

We use the Moscow ML system in our course, which has turned out to be a fast and very reliable system with moderate resource demands. The SML-mode of the Emacs editor gives a pleasant environment where the user can easily switch between program editing, compilation and program runs. The students can get the system on their own PC so that they can use the system in their home work. The distribution of the system is easy as a complete ML system for a PC can be housed on a single floppy disk.

The chapters of the book are:

  1. Getting started
  2. Basic values and operators
  3. Tuples and records
  4. Problem solving I
  5. Lists
  6. Problem solving II
  7. Tagged values and partial functions
  8. Finite trees
  9. Higher-order functions
  10. Finite sets
  11. Modules
  12. Tables
  13. Problem solving III
  14. Input/output in SML
  15. Interactive programs
  16. Problem solving IV
  17. Iteration
  18. Imperative programming

The main organization of the first 12 chapters follows the data types: simple types, tuples, lists, trees, sets and tables -with the associated operators. Applications of these types, with associated operators, are illustrated through a large collection of interesting programming problems.

The chapters on 'problem solving' define a standard way of writing down the solution to a programming problem. This standard emphasizes specification of interfaces by means of signatures as described in Chapter 11 on the module system of SML.

The chapter on interactive programming introduces the concepts of I/O actions and dialogue automata for designing such programs, and this is supplemented by the notion of abstract syntax for commands in the following chapter: 'Problem solving IV'.

The chapter on iteration gives a few basic techniques, which iii some cases can give more efficient implementations. The last chapter introduces various aspects of imperative programming and imperative-data structures, together with the imperative operators.

The book has the following appendices:

  1. SML systems
  2. Overview of Standard ML
  3. Overview of the SML module system
  4. Selected parts of the SML basis library
  5. Modules of sets and tables
  6. The ASCII alphabet
  7. Further reading

Appendix A gives pointers to where to find information about existing SML systems. Appendices B and C give an overview of the SML language. The description is based on the mathematical semantics of SML, but it is presented in an informal way. Appendix D is a reference to selected parts of the Standard ML Basis Library. Appendix E contains modules for sets and tables which are used in main text. Appendix F gives a table of the ASCII alphabet. Appendix G contains some references for further reading.

The following WWW pages describe how we use the book in our course:

...
Read More Show Less

Table of Contents

(Each chapter concludes with a Summary and Exercises.)
1. Getting Started.

Values, Types, Identifiers and Declarations.
Simple Function Declarations.
Comments.
Recursion.
The Power Function.
About Types and Type Checking.
Bindings and Environments.

2. Basic Values and Operators.
Integers and Reals.
Expressions, Precedence, Association.
Euclid'S Algorithm.
Evaluations with Environments.
Characters and Strings.
Truth Values.
The If-Then-Else Expression.
Overloaded Operators.
Type Inference.

3. Tuples and Records.
Tuples.
Tuple Patterns.
Infix Functions on Pairs.
Records.
Record Patterns.
Type Declarations.
Locally Declared Identifiers.

4. Problem Solving I.
Problem Statement: Rational Numbers.
Solution 1.
Solution 2.
Comparing the Solutions.
A Solution using Records.

5. Lists.
Building Lists.
The 'Cons' Operator.
List Patterns.
Append and Reverse; Polymorphic Types.
Polymorphic Values.
A Library of List Functions.
Membership; Equality Types.
Type Inference.

6. Problem Solving Ii.
Problem Analysis: Cash Register.
Programming.
Test.

7. Tagged Values and Partial Functions.
Datatype Declarations.
The Case-Expression.
Enumeration Types.
The Order Type.
Partial Functions: The Option Datatype.
Exception Handling.
The Eight Queens Problem.

8. Finite Trees.
Chinese Boxes.
Symbolic Differentiation.
Trees of Ancestors; Traversal of a Tree.
Mutual Recursion.
Parameterized Datatypes.
Electrical Circuits.
Abstract Types.

9. Higher-Order Functions.
Expressions Denoting Functions.
Value Declarations of Recursive Functions.
The Map Function.
Declaring Higher order Functions.
Higher-Order List Functions.
Functional Composition.
Tree Recursion.
Type Inference For Higher-Order Functions.
Closures.
Static Binding.
Lazy Evaluation.

10. Finite Sets.
A Representation of Sets.
Operations on Sets.
An Abstype for Sets.
Other Representations of Sets.

11. Modules.
Structures.
Specifications and Signatures.
Signatures and Structures.
Further Facilities.
Fixity of Identifiers.
Functors.

12. Tables.
The Table Concept.
A Representation of Tables.
Operations on Tables.

13. Problem Solving Iii.
Problem Analysis.
A Sample Run.
Programming.
Test.

14. Input/Output In Sml.
Input Streams.
Output Streams.
Simple Input and Output.
Use of Conversions.
Sequential Composition.
Input/Output of Composite Data.
Input with Prompt and Validation.

15. Interactive Programs.
A Quiz Program.
Actions.
Action Schemas.
Functions for Action Schemas.
Dialogue Automaton.
Dialogue Program.
Action Refinement.

16. Problem Solving Iv.
Problem Analysis.
Programming.
Test.

17. Iteration.
Resource Measures.
Two Problems.
Solutions: Accumulating Parameters.
Iteration.

18. Imperative Programming.
The Store.
Operations on the Sml Store.
References and Polymorphism.
Arrays.
The While Loop.
Imperative Data Structures.

Appendices.
A. Sml Systems.
B. Overview of Standard Ml.
Lexical Conventions.
Syntax.
Value, Environment And Store.
Types.
Semantics.

C. Overview of the Sml Module System.
Lexical Conventions.
Syntax.
Interfaces and Environments.
Semantics.

D. Selected Parts of the Sml Basis Library.
General.
Numbers.
Characters And Strings.
Lists.
Vectors.
Arrays.
Timers and Time.
Date.
Conversions.
Text Input.
Text Output.

E. Modules of Sets and Tables.
Sets.
Tables.
Signatures.
Structures.

F. The Ascii Alphabet.
G. Further Reading.
Index.
Read More Show Less

Preface

The topics of this book are programming and program design. The contents are used in the introductory programming course in the Informatics Programme at the Technical University of Denmark. This is the first course on programming that many of the students attend. The contents are furthermore used in a programming course for electrical engineers in a later semester. The emphasis is on programming and program design with a systematic use of lists, trees, sets and tables to build models and programs. The book does not cover efficient implementations using specialized representations of these data structures, as this topic is covered in other textbooks on 'algorithms and data structures'.

It is a goal of the book to bring theory to practical use. The examples and exercises in the book teach the student how to use basic, theoretically well-understood, concepts from computer science in problem solving in order to achieve succinct and elegant programs and program designs which can be communicated to other people. The book does, however, avoid formalistic explanations of the theory. Fundamental concepts such as bindings of identifiers and environments are explained in an informal but precise way such that the students get the right intuitive understanding. The presented concepts are programming language independent, and the book is therefore a general book on programming.

Throughout the book we use Standard ML (abbreviated SML) as the programming language. The reasons for this choice are:

  • The language is very powerful in expressing structured data as well as computations on such data. This enables students to solve interesting problems from the verybeginning of the course.

  • The different SML systems have a simple interactive interface to the user. This allows us to downplay the role of I/O while solving difficult problems in a brief and elegant way.

  • The language is close to common mathematical notation. This means that it is not very hard for students to learn the syntax of programs.

  • There is an extensive standard library, and there are several SML systems running on a number of platforms.

  • The language has a complete, formal semantics. Based on this formal semantics, we give a clear (informal) semantics of the programming language constructs, so that students can appreciate a language with a well-defined semantics.

We use the Moscow ML system in our course, which has turned out to be a fast and very reliable system with moderate resource demands. The SML-mode of the Emacs editor gives a pleasant environment where the user can easily switch between program editing, compilation and program runs. The students can get the system on their own PC so that they can use the system in their home work. The distribution of the system is easy as a complete ML system for a PC can be housed on a single floppy disk.

The chapters of the book are:

  1. Getting started
  2. Basic values and operators
  3. Tuples and records
  4. Problem solving I
  5. Lists
  6. Problem solving II
  7. Tagged values and partial functions
  8. Finite trees
  9. Higher-order functions
  10. Finite sets
  11. Modules
  12. Tables
  13. Problem solving III
  14. Input/output in SML
  15. Interactive programs
  16. Problem solving IV
  17. Iteration
  18. Imperative programming

The main organization of the first 12 chapters follows the data types: simple types, tuples, lists, trees, sets and tables -with the associated operators. Applications of these types, with associated operators, are illustrated through a large collection of interesting programming problems.

The chapters on 'problem solving' define a standard way of writing down the solution to a programming problem. This standard emphasizes specification of interfaces by means of signatures as described in Chapter 11 on the module system of SML.

The chapter on interactive programming introduces the concepts of I/O actions and dialogue automata for designing such programs, and this is supplemented by the notion of abstract syntax for commands in the following chapter: 'Problem solving IV'.

The chapter on iteration gives a few basic techniques, which iii some cases can give more efficient implementations. The last chapter introduces various aspects of imperative programming and imperative-data structures, together with the imperative operators.

The book has the following appendices:

  1. SML systems
  2. Overview of Standard ML
  3. Overview of the SML module system
  4. Selected parts of the SML basis library
  5. Modules of sets and tables
  6. The ASCII alphabet
  7. Further reading

Appendix A gives pointers to where to find information about existing SML systems. Appendices B and C give an overview of the SML language. The description is based on the mathematical semantics of SML, but it is presented in an informal way. Appendix D is a reference to selected parts of the Standard ML Basis Library. Appendix E contains modules for sets and tables which are used in main text. Appendix F gives a table of the ASCII alphabet. Appendix G contains some references for further reading.

The following WWW pages describe how we use the book in our course:

http://www.it.dtu.dk/introSML

Acknowledgments

We have received numerous comments and suggestions from many colleagues and students. Special thanks go to Jens Thyge Kristensen for his enthusiastic support in reading through all versions of the manuscript and providing many recommendations about the overall structure of the book as well as details of each chapter. Also, Ken Larsen, Jakob Lichtenberg, Anders P. Ravn, Peter Sestoft, Simon Mørk and Torben Hoffmann have given many important suggestions. Furthermore, the final version of the book has been strongly influenced by the corrections and suggestions from the anonymous referees.

The book The Definition of Standard ML (Revised), by Milner, Tofte, Harper and MacQueen has been an invaluable reference for us during the writing of this book. Furthermore, we are indebted to Peter Sestoft for his great help and endless patience in explaining to us details of the SML language.

Our sincere thanks go to the late Disa la Cour for proof reading a draft version of this book and for trying to improve our English writing.

Finally, we are grateful to Dines Bjørner who in the first place taught us the use of mathematical concepts in software development.



Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)