History of the language self Sandeep K Gude
History Designed by - David Ungar, Randall Smith Presented as "SELF: The Power of Simplicity", OOPLSA '87,
History Continued….. Initial implementation was undertaken at Stanford University in 1987 Self was used as a vehicle for language, environment, user interface and implementation research
History continued…. A public releases of Self from stanford took place in In 1991 the Self project moved to Sun Microsystems Labs.
Context There is a (n)ever ending thirst for a pure object oriented approach of programming. eg Camp Smalltalk: meetings for discussions on Object oriented programming
Context …. A programming language which can be self supporting A programming langugage which can over come the inadequacies of the operating system.
Elements of the language Kristin Ruble
What is Different about SELF No Classes No variables Objects have slots not instance variables Objects created by “cloning” a prototype
Self based on a small number of simple and concrete ideas Prototypes Slots Behavior
Prototypes Prototypes combine inheritance and instantiation to provide a framework that is simpler and more flexible than most object-oriented languages
Slots Slots unite variables and procedures into a single construct This permits the inheritance hierarchy to take over the function of lexical scoping in conventional languages
Behavior Self does not distinguish state from behavior Narrows the gaps between ordinary objects, procedures, and closures Self's simplicity and expressiveness offer new insights into object-oriented computation.
SELF Objects
Self Objects
Example:SELF True
Its position with respect to other languages Brian Barcomb
Similarities Object-Oriented
Similarities Object-Oriented Closely related to Smalltalk -syntax -no type declarations -block usage -exploratory style
Differences Simplicity Concreteness No Classes Object-Level Inheritance Prototypes Messages
In a class-based language
In SELF
Conclusion of Language Comparison Self’s simplicity and expressiveness offer new insights into object oriented computation