Object-Oriented Programming

Object-Oriented Programming

10/9/2007 Why Study Smalltalk CSE 3302 Programming Languages • Purest OO language • Pioneered in many things Object-Oriented – Graphical user interface (Window, Menu, Mouse) – Personal workstation Programming – Push OO into success • I invented the term Object‐Oriented, and I can tell you I did not have C++ in mind. ‐‐ Alan Kay Chengkai Li • Fall 2007 Has an active community • Could have deserved more popularity Lecture 13 –OO Programming, Lecture 13 –OO Programming, CSE3302 Programming Languages, UT‐Arlington 1 CSE3302 Programming Languages, UT‐Arlington 2 Fall 2007 ©Chengkai Li, 2007 Fall 2007 ©Chengkai Li, 2007 Key Features History • Very simple syntax • 1967: Inspired by Simula67, the first OO language • Everything is object • 1971: Started by Dynabook project (Alan Kay) Integer like 3, true, nil – Hardware: GUI, pointing device, external storage, etc. Class is object • Later led to Alto (“laptop”) no control: if, loop are objects – Software: targeted at Children • Dyyynamically typed: – Variable has no type. • Became Smallta lk – The class hierarchy is the type system. – Education • The language is together with its interactive runtime system – Runtime written in the language itself Is Dynabook realized? Kay doesn’t think so: – Can change the system on‐the‐fly – Squeak – Debug system state (image), object, class hierarchy – One Laptop Per Child project (Nicholas Negroponte, Alan Kay, …) • All data is private (protected), all methods are public. http://www.xogiving.org/ • No manual memory management and pointers Lecture 13 –OO Programming, Lecture 13 –OO Programming, CSE3302 Programming Languages, UT‐Arlington 3 CSE3302 Programming Languages, UT‐Arlington 4 Fall 2007 ©Chengkai Li, 2007 Fall 2007 ©Chengkai Li, 2007 History (cont.) Smalltalk Today • 1973: Xerox Alto Computer – First Smalltalk environment • Squeak – The ALTO Computer 1974 ‐ Video – Seaside: a dynamic web application development framework • http://www.maniacworld.com/alto‐computer‐ video.html – Croquet: an open source platform for collaborative 3D multi‐user online applications. • 1972: Smalltalk‐72 – Sophie: a digital media assembly tool to create multimedia • 1976: Smalltalk‐76 documents. • 1980: Smalltalk‐80 – Scratch: a toolkit for children to write games, animated • Major contributors of Smalltalk: stories. Alan Kay (2003 Turing Award), Adele Goldberg, Daniel Ingalls, • Cincom VisualWorks, IBM VisualAge, GNU Smalltalk, Dolphin, et. Al. …. Lecture 13 –OO Programming, Lecture 13 –OO Programming, CSE3302 Programming Languages, UT‐Arlington 5 CSE3302 Programming Languages, UT‐Arlington 6 Fall 2007 ©Chengkai Li, 2007 Fall 2007 ©Chengkai Li, 2007 1 10/9/2007 Resources What we use in class • Implementations: Squeak: squeak (http://www.squeak.org/) • Download at http://www.squeak.org/ Cincom VisualWorks • Books, Tutorials: • Quick Tutorial: http://www.iam.unibe.ch/~ducasse/FreeBooks.html A Development Example for Squeak 3.9 http://squeak.preeminent.org/tut2007/html/ http://squeak.preeminent.org/tut2007/html/ http://www.iam.unibe.ch/~scg/SBE/ http://wiki.squeak.org/squeak/377 • A Free Book: Squeak by Example http://www.iam.unibe.ch/~scg/SBE/ Lecture 13 –OO Programming, Lecture 13 –OO Programming, CSE3302 Programming Languages, UT‐Arlington 7 CSE3302 Programming Languages, UT‐Arlington 8 Fall 2007 ©Chengkai Li, 2007 Fall 2007 ©Chengkai Li, 2007 Now Alan Kay Talks More Squeak • http://video.google.com/videoplay?docid=‐ • http://www.youtube.com/watch?v=y_3l08tI5 2950949730059754521 wQ • http://video.google.com/videoplay?docid=‐ 9055536763288165825 Lecture 13 –OO Programming, Lecture 13 –OO Programming, CSE3302 Programming Languages, UT‐Arlington 9 CSE3302 Programming Languages, UT‐Arlington 10 Fall 2007 ©Chengkai Li, 2007 Fall 2007 ©Chengkai Li, 2007 2.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    2 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us