A Tutorial for GNU Smalltalk

Andrew Valencia, Valencia Consulting
HTML by Mark Shapiro, Pathwarden Computing

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