Budd's introduction to Smalltalk programming and the Little Smalltalk interpreter focuses on elementary, rather than advanced topics of object-oriented programming. The Little Smalltalk system runs under the UNIX operating system and can be executed on conventional terminals.
Author(s): Timothy Budd
Edition: 1
Publisher: Addison-Wesley
Year: 1987
Language: English
Pages: 280
Preface
PART ONE - The Language
CHAPTER 1 - This chapter introduces the basic concepts of the Smalltalk language; namely object, method, class, inheritance and overriding
Basics
Objects, Classes, and Inheritance
History, Background Reading
CHAPTER 2 - This chapter introduces the syntax for literal objects (such as numbers) and the syntax for messages. It explains how to use the Little Smalltalk system to evaluate expressions typed in directly at the keyboard and how to use a few simple messages to discover information about different types of objects
Syntax
Literal Constants
Identifiers
Messages
Getting Started
Finding Out About Objects
Blocks
Comments and Continuations
CHAPTER 3 - The basic classes included in the Little Smalltalk standard library are explained in this chapter
Basic Classes
Basic Objects
Collections
Control Structures
Class Management
Abstract Superclasses
CHAPTER 4 - This chapter introduces the syntax used for defining classes. An example class definition is presented
Class Definition
An Illustrative Example
Processing a Class Definition
CHAPTER 5 - This chapter illustrates the development of a simple application in Smalltalk and describes how environments can be saved and restored
A Simple Application
Saving Environments
CHAPTER 6 - This chapter introduces the syntax for cascaded expressions and describes the notion of primitive expressions. It illustrates the use of primitives by showing how primitives are used to produce the correct results for mixed mode arithmetic operations
Primitives, Cascades, and Coercion
Cascades
Primitives
Numbers
CHAPTER 7 - This chapter presents a simple simulation of an ice cream store, illustrating the ease with which simulations can be described in Smalltalk
A Simulation
The Ice Cream Store Simulation
Further Reading
CHAPTER 8 - This chapter introduces the concept of generators and shows how generators can be used in the solution of problems requiring goal??directed evaluation
Generators
Filters
Goal-Directed Evaluation
Operations on Generators
Further Reading
CHAPTER 9 - Although graphics are not fundamental to Little Smalltalk in the same way that they are an intrinsic part of the Smalltalk-80 system, it is still possible to describe some graphics functions using the language. This chapter details three types of approaches to graphics
Graphics
Character Graphics
Line Graphics
Bit-Mapped Graphics
CHAPTER 10 - This chapter introduces the concepts of processes and semaphores It illustrates these concepts using the dining philosophers problem
Processes
Semaphores
Monitors
The Dining Philosophers Problem
Further Reading
PART TWO - The Implementation
CHAPTER 11 - This chapter describes the features that make an interpreter for the Smalltalk language different from, say, a Pascal compiler. Provides a high-level description of the major components in the Little Smalltalk system
Implementation Overview
Identifier Typelessness
Unscoped Lifetimes
An Interactive System
A Multi-Processing Language
System Overview
CHAPTER 12 - The internal representation of objects in the Little Smalltalk system is described in this chapter, which also overviews the memory manage?? ment algorithms. The chapter ends with a discussion of several optimizations used to improve the speed of the Little Smalltalk system
The Representation of Objects
Special Objects
Memory Management
Optimizations
CHAPTER 13 - The techniques used to represent methods internally in the Little Smalltalk system are described in this chapter
Bytecodes
The Representation of Methods
Optimizations
Dynamic Optimizations
CHAPTER 14 - This chapter presents a more detailed view of the central component of the Little Smalltalk system, the process manager. It then goes on to describe the driver, the process that reads commands from the user terminal and schedules them for execution. The chapter ends by describing the class parser and the internal representation of classes
The Process Manager
The Driver
The Class Parser
CHAPTER 15 - This chapter describes the actions of the interpreter and the courier in executing bytecodes and passing messages. It ends by describing the primitive handler and the manipulation of special objects
The Interpreter
Push Opcodes
Pop Opcodes
Message-Send1ng Opcodes
Block Creation
Special Instructions
The Courier
The Primitive Handler
Blocks
References - An annotated bibliography of references related to the Little Smalltalk system
Projects
Appendices
APPENDIX 1 - Describes how to run the Little Smalltalk system. Lists the various options available
Running Little Smalltalk
APPENDIX 2 - Presents syntax charts describing the language accepted by the Little Smalltalk system
Syntax Charts
APPENDIX 3 - Presents descriptions of the various messages to which the classes in the standard library will respond
Class Descriptions
APPENDIX 4 - Gives the meanings of the various primitive numbers
Primitives
APPENDIX 5 - Describes the differences between Little Smalltalk and the Xerox Smalltalk-80 systems
Differences Between Little Smalltalk and the Smalltalk-80 Programming System