A Tutorial for GNU Smalltalk
Andrew Valencia, Valencia Consulting
HTML by Mark Shapiro, Pathwarden Computing
- Getting Started
- Starting up Smalltalk
- Saying Hello
- What actually happened
- What a string does with a "printNl" message
- Doing math
- Math in Smalltalk
- Using some of the Smalltalk classes
- An array in Smalltalk
- A set in Smalltalk
- Dictionaries
- Smalltalk Dictionary
- Closing thoughts
- The Smalltalk class hierarchy
- Class Objects
- Animals
- The bottom line of the class hierarchy
- Creating a new class of objects
- Creating a new class
- Documenting the classes
- Defining a method for the classes
- Defining an instance method
- Looking at our account
- Moving money around
- Specialized objects
- Two subclasses for the Account class
- The Savings class
- The Checking class
- Writing checks
- Code blocks
- Conditions and decision making
- Iteration and collections
- Code blocks, part two
- Integer loops
- Intervals
- Invoking code blocks
- When Things Go Bad
- A Simple error
- Nested calls
- Some Shortcomings in GNU Smalltalk
- Looking at objects
- Coexisting in the Class Hierarchy
- The Existing Class Hierarchy
- Those Darn Arrays
- Adding a New Kind of Number
- Inheritance and Polymorphism
- Limitations of the Complex Class
- Smalltalk Streams
- The Output Stream
- Your Own Stream
- Files
- Dynamic Strings
- How Arrays Work
- The Array Classes
- Arrays at a Lower Level
- subclasses
- variableSubclass
- VariableByteSubclass
- Accessing These New Arrays
- An Example
- Basic Allocation
- Further Studies
- Viewing the Smalltalk Source
- Other ways to Collect Objects
- Flow of Control
- Smalltalk virtual Machine
- Two Flavors of Equality
- Checking for the Two Types of Equality
- Where to get Help
- Acknowledgements