Friday, January 14, 2011

history

History of Smalltalk-72

Small talk programming language is an invention and a design created by a researcher named Alan Kay at Xerox Palo Alto Research. whic was then implemented by Dan Ignalls.The version that is used now for research work is named as Smalltalk-72 whose syntax and execution model were very much different from the modern Smalltalk. There was a further development in Smalltalk-76 to Smalltalk-80 which certainly proved enhancement in performance.
This language has grown eventually and now is very famous along with other programming languages.

Smalltalk -> is an object-oriented, dynamically typed, reflective PL. This was created as the language to underpin the “new world” of computing exemplified by “human-computer symbiosis.” Designed and created in part for educational use, more so for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC. The language was first generally released as Smalltalk-80. Smalltalk-like languages are in continuing active development, and have gathered loyal communities of users around them. ANSI Smalltalk was ratified in 1998 and represents the standard version of Smalltalk.

Influences

John Shoch, a member of the LRG at PARC, acknowledged in his 1979 paper Smalltalk’s debt to Plato’s theory of forms in which an ideal archetype becomes the template from which other objects are derived.[7] Smalltalk has influenced the wider world of computer programming in four main areas. It inspired the syntax and semantics of other computer programming languages. Secondly, it was a prototype for a model of computation known as message passing. Thirdly, its WIMP GUI inspired the windowing environments of personal computers in the late twentieth and early twenty-first centuries, so much so that the windows of the first Macintosh desktop look almost identical to the MVC windows of Smalltalk-80. Finally, the integrated development environment was the model for a generation of visual programming tools that look like Smalltalk’s code browsers and debuggers.
Python and Ruby have reimplemented some Smalltalk ideas in an environment similar to that of AWK or Perl. The Smalltalk “metamodel” also serves as the inspiration for the object model design of Perl 6.

Object-Oriented Programming
As in other object-oriented languages, the central concept in Smalltalk-80 (but not in Smalltalk-72) is that of an object. An object is always an instance of a class. Classes are "blueprints" that describe the properties and behavior of their instances. For example, a Window class would declare that windows have properties such as the label, the position and whether the window is visible or not. The class would also declare that instances support operations such as opening, closing, moving and hiding. Each particular Window object would have its own values of those properties, and each of them would be able to perform operations defined by its class.
A Smalltalk object can do exactly three things:
1. Hold state (references to other objects).
2. Receive a message from itself or another object.
3. In the course of processing a message, send messages to itself or another object.
The state an object holds is always private to that object. Other objects can query or change that state only by sending requests (messages) to the object to do so. Any message can be sent to any object: when a message is received, the receiver determines whether that message is appropriate. Alan Kay has commented that despite the attention given to objects, messaging is the most important concept in Smalltalk: "The big idea is 'messaging' -- that is what the kernel of Smalltalk/Squeak is all about (and it's something that was never quite completed in our Xerox PARC phase)."
Smalltalk is a "pure" object-oriented programming language, meaning that, unlike Java and C++, there is no difference between values which are objects and values which are primitive types. In Smalltalk, primitive values such as integers, booleans and characters are also objects, in the sense that they are instances of corresponding classes, and operations on them are invoked by sending messages.

Reflection

Smalltalk-80 is a totally reflective system, implemented in Smalltalk-80 itself. Smalltalk-80 provides both structural and computational reflection. Smalltalk is a structurally reflective system whose structure is defined by Smalltalk-80 objects. The classes and methods that define the system are themselves objects and fully part of the system that they help define. The Smalltalk compiler compiles textual source code into method objects, typically instances of CompiledMethod. These get added to classes by storing them in a class's method dictionary. The part of the class hierarchy that defines classes can add new classes to the system. The system is extended by running Smalltalk-80 code that creates or defines classes and methods. In this way a Smalltalk-80 system is a "living" system, carrying around the ability to extend itself at run time.

No comments:

Post a Comment