DESIGN PRINCIPLES BEHIND SMALLTALK Dan Ingalls, Byte Magazine, August 1981 Arun Kannan - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

DESIGN PRINCIPLES BEHIND SMALLTALK Dan Ingalls, Byte Magazine, August 1981 Arun Kannan

Description:

Provide computer support for the creative spirit in everyone. ... model for processing, and a bitmap model for visual display of information. ... – PowerPoint PPT presentation

Number of Views:98
Avg rating:3.0/5.0
Slides: 25
Provided by: cisUso
Category:

less

Transcript and Presenter's Notes

Title: DESIGN PRINCIPLES BEHIND SMALLTALK Dan Ingalls, Byte Magazine, August 1981 Arun Kannan


1
DESIGN PRINCIPLES BEHIND SMALLTALKDan Ingalls,
Byte Magazine, August 1981Arun Kannan
2
Organization of presentation
  • What is Smalltalk
  • What is the objective of Smalltalk
  • What are its language design principles
  • How to handle system complexity
  • Some implementation information
  • Additional exploration Simulation
  • Summary

3
What is Smalltalk
  • Purity Supports object oriented paradigm
  • Simplicity Uniformity of the language
  • Intuitive appeal Simulation

4
OBJECTIVE AND DESIGN PRINCIPLES OF SMALLTALK
5
Broad Objective
  • Provide computer support for the creative spirit
    in everyone.
  • Must be entirely comprehensible to a single
    individual.
  • Language to communicate models in human mind and
  • User interface to aid in such communication.

6
Objective -gt Design Principles
  • Intended for everyone
  • Completely comprehensible to a single individual
  • Spirit that is creative
  • Computer support
  • Represent models in human mind
  • Orthogonal language with small set of
    unchangeable parts
  • Features to build complex systems
  • Meaningful user interface

7
Design principles
  • Objects Should 'support' a concept of object
    and provide a uniform way to refer to objects.
  • Language Should provide framework for all kinds
    of communication between objects.
  • Organization Should have a framework in which
    complex systems can be built.
  • User Interface Should present components of the
    system in a meaningful way.

8
Pictorially ...
Language
Object1
Object2
  • Bare Essentials
  • Define objects (shape, color etc)
  • Refer to objects (arrow mark)
  • Communicate to objects (language)
  • Accessories
  • Organization (a way to build complex systems)
  • User Interface (for the user to interact with
    computer)

9
Objects and reference
  • Humans view universe to be comprised of objects.
  • There are objects and there are references to
    objects.
  • Ex Chair and that chair over there.
  • In order to provide models compatible with the
    human mind, the language should
  • support the concept of object and
  • provide a uniform means for referring to objects
    in its universe.

10
Communication between objects
  • Message passing between objects as a uniform way
    of communication.
  • Objects send the name of the desired operation,
    along with any arguments, as a message to another
    object.
  • The transmission of messages is the only process
    that is carried on outside of objects.

11
Organization
  • One of the objective is to build complex systems
    using Smalltalk.
  • Several related organizational principles
    contribute to the successful management of
    complexity.
  • For example Classification, Modularity,
    Factoring, Polymorphism.

12
User Interface
  • Visual presentation of objects through text,
    menus and pictures.
  • If a computer language provides storage
    management, file system, display handling,
    keyboard input, access to other subsystems then
    the need for an operating system is eliminated.
  • All the above and more are part of Smalltalk.
  • Squeak, Squeak NOS

13
SYSTEM COMPLEXITY ORGANIZATIONAL PRINCIPLES
14
Classification and Modularity
  • Grouping related components.
  • A class describes objects -- their internal
    state, the message protocol they recognize, and
    the internal methods for responding to those
    messages.
  • Minimize interdependence between components in
    the system.
  • Structural information is protected because all
    access to the internal state of an object is
    through the message interface.

15
Factoring and Polymorphism
  • Each independent component in a system would
    appear in only one place.
  • Smalltalk encourages well-factored designs
    through inheritance.
  • Generic description is crucial to models of the
    real world.
  • A program should only specify the behavior of
    objects, not their representation.

16
Example
  • Consider an automobile traffic simulation.
  • Many procedures in the program will refer to the
    various vehicles involved.
  • Suppose one wished to add a new vehicle, say, a
    street sweeper.
  • StreetSweeper (and all other vehicle classes)
    would be described as a subclass of a general
    Vehicle class.
  • Provided that street sweepers support the same
    protocol as all other vehicles, no changes are
    needed to include them in the simulation.

17
IMPLEMENTATION
18
Virtual Machine
  • A virtual machine specification provides the set
    of primitive operations that would be sufficient
    to support an entire computing system.
  • The Smalltalk virtual machine establishes an
    object-oriented model for storage, a
    message-oriented model for processing, and a
    bitmap model for visual display of information.

19
Storage Management
  • Objects are created when expressions are
    evaluated.
  • They can be passed around by uniform reference,
    so that no provision for their storage is
    necessary in the procedures that manipulate them.
  • When all references to an object have disappeared
    from the system, the object itself vanishes, and
    its storage is reclaimed.

20
COMPUTATION AS SIMULATION
21
Simulation
  • Some problems involve collections of interacting
    entities whose low-level pairwise interactions
    with each other are known but whose high-level
    group interactions cannot be grasped.
  • Simulation enables one to encode these low-level
    interactions and simulate them, dynamically
    approximating the overall behaviour of the
    system. Drolet, Moodie 91

22
Computation as Simulation
  • Object-oriented programming views a program as a
    collection of loosely connected agents, termed
    objects.
  • Each object is responsible for specific tasks.
  • It is by the interaction of objects that
    computation proceeds.
  • In a certain sense, therefore, programming is
    nothing more or less than the simulation of a
    model universe. Timothy Budd, Addison Wesley
    Pub.

23
SUMMARY
24
Summary
  • Way to describe objects
  • Uniform way to refer to objects
  • Uniform way to pass message to objects
  • Several organizational principles available to
    manage complexity of system
  • Meaningful user interface
Write a Comment
User Comments (0)
About PowerShow.com