Pharo – Open-Source Smalltalk Environment

Pharo is object-oriented language (live object), Smalltalk-inspired, an environment in which you can (do not even have to stop the system while doing those):

  • Extend Object
  • Modify the compiler
  • Customize object the inspector
  • Build your own the domain-specific debugger
  • Everything is object (Classes are objects too); every object has a class; all methods are public
  • Everything happens by sending messages

Consists of: Parsers, Compilers, Domain Objects …

Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the “new world” of computing exemplified by “human–computer symbiosis.” It was designed and created in part for educational use [Wiki]

In Smalltalk, everything is object and everything happens by sending messages

Smalltalk offers no special syntax for control constructs. Instead, these are typically expressed by sending message to booleans, numbers and collections with blocks as arguments.

There are 3 kinds of messages (with the precedence corresponding)

  1. Unary message (ex: 1 factorial) – with form: receiver selector
  2. Binary message (ex: 1 + 2) with exactly one argument – with form: receiver selector argument
  3. Keyword message (ex: 2 raiseTo: 6 modulo: 10) with an arbitrary number of arguments – with form: receiver selectorWordOne: argumentOne wordTwo: argumentTwo

Unary messages are always sent first, then binary messages and finally keyword ones

—————-

References:

  1. http://www.pharo-project.org/about
  2. http://vimeo.com/97315968 – Pharo: Playing with live objects
  3. Pharo by Example, 2009.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s