History of the language self Sandeep K Gude. History Designed by - David Ungar, Randall Smith Presented as "SELF: The Power of Simplicity", OOPLSA '87,

Slides:



Advertisements
Similar presentations
Object-Oriented Programming Python. OO Paradigm - Review Three Characteristics of OO Languages –Inheritance It isn’t necessary to build every class from.
Advertisements

C++ Classes & Data Abstraction
B. Ross Cosc 4f79 1 Frames Knowledge bases can be enhanced by using principles from frame knowledge representation (similar to object orientation) This.
CS ExCo Advanced in Topics Object-Oriented Programming.
OOP - Object Oriented Programming Object Oriented Programming is an approach to programming that was developed to make large programs easier to manage.
Object-Oriented Analysis and Design
Chapter 1 Object-Oriented System Development
Principles of Object-Oriented Software Development The language Smalltalk.
Object Oriented System Development with VB .NET
Lecture 1: An Introduction to Java. What is Java? Programming language developed by Sun Microsystems in 1995 –Inherits its syntax from c –Adapted the.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani.
16/22/2015 2:54 PM6/22/2015 2:54 PM6/22/2015 2:54 PMObject-Oriented Development Concept originated with simulating objects and their interactions. Adapted.
Principles of Object-oriented Programming Programming Language Paradigms August 26, 2002.
Data Abstraction and Object- Oriented Programming CS351 – Programming Paradigms.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Self: The Power of Simplicity David Ungar and Randall B. Smith Presenter: Jonathan Aldrich
CSE 332: C++ templates and generic programming I Motivation for Generic Programming in C++ We’ve looked at procedural programming –Reuse of code by packaging.
Introduction to Ruby CSE 413 Autumn 2008 Credit: Dan Grossman, CSE341.
1 Introduction Chapter 1. 2 Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding the organization.
Module 7: Essentials of Object-Oriented Programming.
Programming C# in comparison to C++, Java and Smalltalk by Anne Holzapfel.
OBJECT ORIENTED PROGRAMMING CONCEPTS ISC 560. Object-oriented Concepts  Objects – things names with nouns  Classes – classifications (groups) of similar.
Sadegh Aliakbary Sharif University of Technology Fall 2011.
Unified Modeling Language, Version 2.0
Programming language A programming language is an artificial language designed to communicate instructions to a machine,languageinstructionsmachine particularly.
CSCI-383 Object-Oriented Programming & Design Lecture 13.
CSE 425: Object-Oriented Programming I Object-Oriented Programming A design method as well as a programming paradigm –For example, CRC cards, noun-verb.
The Procedure Abstraction, Part V: Support for OOLs Comp 412 Copyright 2010, Keith D. Cooper & Linda Torczon, all rights reserved. Students enrolled in.
Chapter 2 Introducing Interfaces Summary prepared by Kirk Scott.
Object Oriented Programming Principles Lecturer: Kalamullah Ramli Electrical Engineering Dept. University of Indonesia Session-3.
Inheritance in the Java programming language J. W. Rider.
1 SystemVerilog Enhancement Requests Daniel Schostak Principal Engineer February 26 th 2010.
SNPL1 Woochang Lim What (Variable) + How (Function) = Object Objects are the physical and conceptual things we find in the universe around us. Object-Oriented.
1 UML Distilled 3e by Martin Fowler Chapter 1 Introduction to UML.
Chapter 12 Support for Object oriented Programming.
A Shared View of Sharing: The Treaty of Orlando By Lynn Andrea Stein, Henry Lieberman, David Ungar.
C# G 1 CSC 298 Object Oriented Programming Part 2.
CS 3050 Object-Oriented Analysis and Design. Objectives What is “Object-Oriented?” Object-Oriented Approach Vs. Structured Approach How Has the Object-Oriented.
Java Fundamentals Usman Ependi UBD
Salman Marvasti Sharif University of Technology Winter 2015.
CS 598 Scripting Languages Design and Implementation 14. Self Compilers.
CS 598 Scripting Languages Design and Implementation 8. Self.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
1 Unified Modeling Language, Version 2.0 Chapter 2.
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
Object orientation and Packaging in Java Object Orientation and Packaging Introduction: After completing this chapter, you will be able to identify.
Concurrent Object-Oriented Programming Languages Chris Tomlinson Mark Scheevel.
Abdul Rahim Ahmad MITM 613 Intelligent System Chapter 10: Tools.
OOP Basics Classes & Methods (c) IDMS/SQL News
2000 Research Overview Dr. Kim Mens Programming Technology Lab Vrije Universiteit Brussel.
Sadegh Aliakbary Sharif University of Technology Fall 2010.
CPS120: Introduction to Computer Science Lecture 16A Object-Oriented Concepts.
SysML and Modelica Integration Working Group Meeting 3/11/09 Peter Fritzson Wladimir Schamai.
Programming Languages Dan Grossman 2013 Classes and Objects.
Classes in C++ By: Mr. Jacobs. Objectives  Explore the implications of permitting programmers to define their own data types and then present C++ mechanism.
Inheritance a subclass extends the functionality of a superclass a subclass inherits all the functionality of a superclass don't reinvent the wheel – "stand.
Motivation for Generic Programming in C++
OOP - Object Oriented Programming
The Movement To Objects
Introduction to Design Patterns
C# and the .NET Framework
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
object oriented Principles of software design
Demeter Aspects Who We Are Aspectual Collaborations
What to do today: Brief history of Ruby General qualities/info
Programming Languages
Lesson 5: More on Creational Patterns
CPS120: Introduction to Computer Science
Presentation transcript:

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