Object-oriented programming: Difference between revisions

Content deleted Content added
Line 160:
==History==
The concept of objects and instances in computing had its first major breakthrough with the [[PDP-1]] system at [[MIT]] which was probably the earliest example of capability based architecture. Another early example was [[Sketchpad]] made by [[Ivan Sutherland]] in 1963; however, this was an application and not a [[programming paradigm]].
 
{{col-begin}}
{{col-3}}
*[[F-Coalgebra|coalgebraic datatype]]s
*[[existential quantification]] and [[Module (programming)|module]]s
{{col-3}}
*[[recursion]]
*[[Record (computer science)|records]] and [[record extension]]s
{{col-3}}
*[[F-bounded polymorphism]]
{{col-end}}
 
Objects as programming entities were introduced in [[Simula|Simula 67]], a programming language designed for making simulations, created by [[Ole-Johan Dahl]] and [[Kristen Nygaard]] of the [[Norwegian Computing Centre]] in [[Oslo]]. (Reportedly, the story is that they were working on ship simulations, and were confounded by the combinatorial explosion of how the different attributes from different ships could affect one another. The idea occurred to group the different types of ships into different classes of objects, each class of objects being responsible for defining its ''own'' [[data]] and [[behavior]].) Such an approach was a simple extrapolation of concepts earlier used in ''analog'' programming. On ''analog'' computers, such direct mapping from real-world phenomena/objects to analog phenomena/objects (and conversely), was (and is) called 'simulation.' Simula not only introduced the notion of classes, but also of instances of classes, which is probably the first explicit use of those notions.