Computer science

Pharo By Example 5

Stéphane Ducasse, Dimitris Chloupis, Nicolai Hess, Dmitri Zagidulin
Square Bracket Associates / Pharo Books · Pharo 5 edition, 29 September 2018 · English · Published 2018

A practical introduction to the Pharo Smalltalk environment, object model, syntax, tools, testing and metaclasses.

Learning stage
College introduction
Prerequisites
Basic programming concepts; examples use the historical Pharo 5 environment.
PDF pages
376 in this file
Editorial review
2026-10-29

Contents

Choose the section you need. Listening availability is shown for each section.

  • Illustrations

    Read the original · Narration availability requires a section review.

  • Preface
    • Preface

      Read the original · Narration availability requires a section review.

    • What is Pharo?

      Read the original · Narration availability requires a section review.

    • Who should read this book?

      Read the original · Narration availability requires a section review.

    • A word of advice

      Read the original · Narration availability requires a section review.

    • An open book

      Read the original · Narration availability requires a section review.

    • The Pharo community

      Read the original · Narration availability requires a section review.

    • Examples and exercises

      Read the original · Narration availability requires a section review.

    • Acknowledgments

      Read the original · Narration availability requires a section review.

    • Hyper special acknowledgments

      Read the original · Narration availability requires a section review.

  • A quick tour of Pharo
    • A quick tour of Pharo

      Read the original · Narration availability requires a section review.

    • Installing Pharo

      Read the original · Narration availability requires a section review.

    • Pharo: File Components

      Read the original · Narration availability requires a section review.

    • Launching Pharo

      Read the original · Narration availability requires a section review.

    • Pharo Launcher

      Read the original · Narration availability requires a section review.

    • The World Menu

      Read the original · Narration availability requires a section review.

    • Sending Messages

      Read the original · Narration availability requires a section review.

    • Saving, Quitting and Restarting a Pharo Session

      Read the original · Narration availability requires a section review.

    • Playgrounds and Transcripts

      Read the original · Narration availability requires a section review.

    • Keyboard Shortcuts

      Read the original · Narration availability requires a section review.

    • The System Browser

      Read the original · Narration availability requires a section review.

    • Finding Classes

      Read the original · Narration availability requires a section review.

    • Finding Methods

      Read the original · Narration availability requires a section review.

    • Defining a New Method

      Read the original · Narration availability requires a section review.

    • Chapter Summary

      Read the original · Narration availability requires a section review.

  • A first application
    • A first application

      Read the original · Narration availability requires a section review.

    • The Lights Out game

      Read the original · Narration availability requires a section review.

    • Creating a new Package

      Read the original · Narration availability requires a section review.

    • Defining the class LOCell

      Read the original · Narration availability requires a section review.

    • Adding methods to a class

      Read the original · Narration availability requires a section review.

    • Inspecting an object

      Read the original · Narration availability requires a section review.

    • Defining the class LOGame

      Read the original · Narration availability requires a section review.

    • Organizing methods into protocols

      Read the original · Narration availability requires a section review.

    • Finishing the game

      Read the original · Narration availability requires a section review.

    • Let's try our code

      Read the original · Narration availability requires a section review.

    • Saving and sharing Pharo code

      Read the original · Narration availability requires a section review.

    • Chapter summary

      Read the original · Narration availability requires a section review.

  • Syntax in a nutshell
    • Syntax in a nutshell

      Read the original · Narration availability requires a section review.

    • Syntactic elements

      Read the original · Narration availability requires a section review.

    • Pseudo-variables

      Read the original · Narration availability requires a section review.

    • Message sends

      Read the original · Narration availability requires a section review.

    • Method syntax

      Read the original · Narration availability requires a section review.

    • Block syntax

      Read the original · Narration availability requires a section review.

    • Conditionals and loops in a nutshell

      Read the original · Narration availability requires a section review.

    • Primitives and pragmas

      Read the original · Narration availability requires a section review.

    • Chapter summary

      Read the original · Narration availability requires a section review.

  • Understanding message syntax
    • Understanding message syntax

      Read the original · Narration availability requires a section review.

    • Identifying messages

      Read the original · Narration availability requires a section review.

    • Three types of messages

      Read the original · Narration availability requires a section review.

    • Message composition

      Read the original · Narration availability requires a section review.

    • Hints for identifying keyword messages

      Read the original · Narration availability requires a section review.

    • Expression sequences

      Read the original · Narration availability requires a section review.

    • Cascaded messages

      Read the original · Narration availability requires a section review.

    • Chapter summary

      Read the original · Narration availability requires a section review.

  • The Pharo object model
    • The Pharo object model

      Read the original · Narration availability requires a section review.

    • The rules of the model

      Read the original · Narration availability requires a section review.

    • Everything is an Object

      Read the original · Narration availability requires a section review.

    • Every object is an instance of a class

      Read the original · Narration availability requires a section review.

    • Instance structure and behavior

      Read the original · Narration availability requires a section review.

    • The instance side and the class side

      Read the original · Narration availability requires a section review.

    • Every class has a superclass

      Read the original · Narration availability requires a section review.

    • Everything happens by sending messages

      Read the original · Narration availability requires a section review.

    • Method lookup follows the inheritance chain

      Read the original · Narration availability requires a section review.

    • Shared variables

      Read the original · Narration availability requires a section review.

    • Internal object implementation note

      Read the original · Narration availability requires a section review.

    • Chapter summary

      Read the original · Narration availability requires a section review.

  • Some of the key tools of the Pharo environment
    • Some of the key tools of the Pharo environment

      Read the original · Narration availability requires a section review.

    • Pharo environment overview

      Read the original · Narration availability requires a section review.

    • The main code browser

      Read the original · Narration availability requires a section review.

    • The inspector

      Read the original · Narration availability requires a section review.

    • The debugger

      Read the original · Narration availability requires a section review.

    • The process browser

      Read the original · Narration availability requires a section review.

    • Finding methods

      Read the original · Narration availability requires a section review.

    • Chapter summary

      Read the original · Narration availability requires a section review.

  • Sharing code and source control
    • Sharing code and source control

      Read the original · Narration availability requires a section review.

    • Packages: groups of classes and methods

      Read the original · Narration availability requires a section review.

    • Source control

      Read the original · Narration availability requires a section review.

    • The File List Browser

      Read the original · Narration availability requires a section review.

    • In Pharo, you can't lose code

      Read the original · Narration availability requires a section review.

    • Chapter summary

      Read the original · Narration availability requires a section review.

  • SUnit
    • SUnit

      Read the original · Narration availability requires a section review.

    • Introduction

      Read the original · Narration availability requires a section review.

    • Why testing is important

      Read the original · Narration availability requires a section review.

    • What makes a good test?

      Read the original · Narration availability requires a section review.

    • SUnit by example

      Read the original · Narration availability requires a section review.

    • The SUnit cookbook

      Read the original · Narration availability requires a section review.

    • The SUnit framework

      Read the original · Narration availability requires a section review.

    • Advanced features of SUnit

      Read the original · Narration availability requires a section review.

    • Continuing after a failure

      Read the original · Narration availability requires a section review.

    • SUnit implementation

      Read the original · Narration availability requires a section review.

    • A piece of advices on testing

      Read the original · Narration availability requires a section review.

    • Chapter summary

      Read the original · Narration availability requires a section review.

  • Basic classes
    • Basic classes

      Read the original · Narration availability requires a section review.

    • Object

      Read the original · Narration availability requires a section review.

    • Numbers

      Read the original · Narration availability requires a section review.

    • Characters

      Read the original · Narration availability requires a section review.

    • Strings

      Read the original · Narration availability requires a section review.

    • Booleans

      Read the original · Narration availability requires a section review.

    • Chapter summary

      Read the original · Narration availability requires a section review.

    • Collections

      Read the original · Narration availability requires a section review.

    • Introduction

      Read the original · Narration availability requires a section review.

    • The varieties of collections

      Read the original · Narration availability requires a section review.

    • Collection implementations

      Read the original · Narration availability requires a section review.

    • Examples of key classes

      Read the original · Narration availability requires a section review.

    • Collection iterators

      Read the original · Narration availability requires a section review.

    • Some hints for using collections

      Read the original · Narration availability requires a section review.

    • Chapter summary

      Read the original · Narration availability requires a section review.

  • Streams
    • Streams

      Read the original · Narration availability requires a section review.

    • Two sequences of elements

      Read the original · Narration availability requires a section review.

    • Streams vs. collections

      Read the original · Narration availability requires a section review.

    • Streaming over collections

      Read the original · Narration availability requires a section review.

    • Using streams for file access

      Read the original · Narration availability requires a section review.

    • Chapter summary

      Read the original · Narration availability requires a section review.

  • Morphic
    • Morphic

      Read the original · Narration availability requires a section review.

    • The history of Morphic

      Read the original · Narration availability requires a section review.

    • Manipulating morphs

      Read the original · Narration availability requires a section review.

    • Composing morphs

      Read the original · Narration availability requires a section review.

    • Creating and drawing your own morphs

      Read the original · Narration availability requires a section review.

    • Interaction and animation

      Read the original · Narration availability requires a section review.

    • Interactors

      Read the original · Narration availability requires a section review.

    • Drag-and-drop

      Read the original · Narration availability requires a section review.

    • A complete example

      Read the original · Narration availability requires a section review.

    • More about the canvas

      Read the original · Narration availability requires a section review.

    • Chapter summary

      Read the original · Narration availability requires a section review.

  • Seaside by example
    • Seaside by example

      Read the original · Narration availability requires a section review.

    • Why do we need Seaside?

      Read the original · Narration availability requires a section review.

    • Getting started

      Read the original · Narration availability requires a section review.

    • Seaside components

      Read the original · Narration availability requires a section review.

    • Rendering HTML

      Read the original · Narration availability requires a section review.

    • CSS: Cascading style sheets

      Read the original · Narration availability requires a section review.

    • Managing control flow

      Read the original · Narration availability requires a section review.

    • A complete tutorial example

      Read the original · Narration availability requires a section review.

    • A quick look at AJAX

      Read the original · Narration availability requires a section review.

    • Chapter summary

      Read the original · Narration availability requires a section review.

  • Reflection
    • Reflection

      Read the original · Narration availability requires a section review.

    • Introspection

      Read the original · Narration availability requires a section review.

    • Browsing code

      Read the original · Narration availability requires a section review.

    • Classes, method dictionaries and methods

      Read the original · Narration availability requires a section review.

    • Browsing environments

      Read the original · Narration availability requires a section review.

    • Accessing the run-time context

      Read the original · Narration availability requires a section review.

    • Intercepting messages not understood

      Read the original · Narration availability requires a section review.

    • Objects as method wrappers

      Read the original · Narration availability requires a section review.

    • Pragmas

      Read the original · Narration availability requires a section review.

    • Chapter summary

      Read the original · Narration availability requires a section review.

  • Regular expressions in Pharo
    • Regular expressions in Pharo

      Read the original · Narration availability requires a section review.

    • Tutorial example — generating a site map

      Read the original · Narration availability requires a section review.

    • Regex syntax

      Read the original · Narration availability requires a section review.

    • Regex API

      Read the original · Narration availability requires a section review.

    • Implementation Notes by Vassili Bykov

      Read the original · Narration availability requires a section review.

    • Chapter Summary

      Read the original · Narration availability requires a section review.

  • Classes and metaclasses
    • Classes and metaclasses

      Read the original · Narration availability requires a section review.

    • Rules for classes and metaclasses

      Read the original · Narration availability requires a section review.

    • Revisiting the Pharo object model

      Read the original · Narration availability requires a section review.

    • Every class is an instance of a metaclass

      Read the original · Narration availability requires a section review.

    • The metaclass hierarchy parallels the class hierarchy

      Read the original · Narration availability requires a section review.

    • Every metaclass inherits from Class and Behavior

      Read the original · Narration availability requires a section review.

    • Every metaclass is an instance of Metaclass

      Read the original · Narration availability requires a section review.

    • The metaclass of Metaclass is an instance of Metaclass

      Read the original · Narration availability requires a section review.

    • Chapter summary

      Read the original · Narration availability requires a section review.

Sources and permissions

The author and publisher remain the source of this textbook. Permission information applies to the specific files in this edition.

Author, publisher, and discovery sources

Authors: Stéphane Ducasse, Dimitris Chloupis, Nicolai Hess, Dmitri Zagidulin
Publisher: Square Bracket Associates / Pharo Books

  • Discovered through Open Textbook Library: Source record · Checked 2026-10-26
  • Discovered through Open Textbook Library: Source record · Checked 2026-10-25
CC BY-SA 3.0

Pharo By Example 5 by Stéphane Ducasse, Dimitris Chloupis, Nicolai Hess and Dmitri Zagidulin. © 2017; source edition dated 29 September 2018. CC BY-SA 3.0. Original PDF unchanged; layout credit to Damien Pollet retained.

Read the license

Original publication

Changes: Original PDF bytes are unchanged. Catalog metadata and page viewing are supplied by iReadAll. No endorsement implied. Structured extraction, audio, translation and independent image redistribution are not approved.

Checked 2026-10-29

More actions
Download original PDF