Copyright © Philip M. Parker, INSEAD. Terms of Use.

Crosswords: OBJECT-ORIENTED PROGRAMMING |
| English words defined with "OBJECT-ORIENTED PROGRAMMING": Java ♦ object-oriented programing language, object-oriented programming language. (references) |
| Specialty definitions using "OBJECT-ORIENTED PROGRAMMING": 6.001 ♦ abstract class, Alan Kay ♦ Business Application Programming Interface ♦ class library, class method, CLU, component architecture, concrete class ♦ derived class, dynamic binding ♦ ECOOP, eXperimental LISP ♦ FOOP ♦ Idealized CSP, instance variable ♦ Java Virtual Machine, JOOP ♦ Lisp Object-Oriented Programming System, Loglan'82, LOOPS ♦ message passing, MODSIM, multiple inheritance ♦ Object Management Group, Objective PASCAL, object-oriented, object-oriented design, object-oriented language, OOPL, OOPSLA ♦ SCOOPS, SIMULA I, Smalltalk, subject-oriented programming ♦ Think C ♦ vector graphics ♦ Wild_LIFE. (references) |
Source: compiled by the editor from various references; see credits. |
(From Wikipedia, the free Encyclopedia)
Object-oriented programming (OOP) is a computer programming paradigm that emphasizes the following aspects:
OOP is often called a paradigm rather than style or type of programming to emphasize the point that OOP can change the way software is developed, by changing the way that programmers and software engineers think about software.
The most fundamental aspect of object-oriented programming is that a computer program is composed of a collection of what are called objects. Each object is capable of receiving messages and sending messages to other objects and the user accesses the object via the interface, independent way from the internal structure of the object (encapsulation)--the technique known as abstraction with use of objects.
In OOP, programmers are supposed to concentrate on distributing responsibility over objects, which is in contrast to the view in traditional paradigms such as imperative programming where programmers are more concerned about steps of data processes to produce certain results. The proponents of OOP claim that the use of OOP style programming can make programs easier to write, maintain, reuse and prove correct (at least in some cases).
Inheritance: One object's data and/or functionality may be based on those of other objects, from which the former object is said to inherit. This allows commonalities among different kinds of objects to be expressed once and reused multiple times. Inheritance is also commonly held to include subtyping, whereby one type of object is defined to be a more specialised version of another type (see Liskov substitution principle), though non-subtyping inheritance is also possible. Inheritance is typically expressed by describing classes of objects arranged in an inheritance hierarchy reflecting common behavior.
In procedural languages, OOP often appears as a form where data types are extended to behave like an object in OOP, very similar to abstract data type with an extension such as inheritance. Each method is actually a subprogram which is syntaxtically bound to a class.
The definitions of OOP are disputed. In the most general sense, object-oriented programming refers to the practice of viewing software primarily in terms of the "things" (objects) it manipulates, rather than the actions it performs. Other paradigms such as functional and procedural programming focus primarily on the actions, with the objects being secondary considerations; in OOP, the situation is converse.
Widely-used terminology distinguishes object-oriented programming from object-based. The former is held to include inheritance (described below), while the latter does not. See Dispute over the definition of object-oriented programming
The most popular and developed model of OOP is a classed based model, as opposed to object-based model. In this model, objects are entities that combine both state (i.e., data) and behavior (i.e., procedures, or methodss). Objects are defined by a classes, which is a definition, or blueprint, of all objects of a specific type. An object is considered to be an instance of a class. A class is similar to a structure, with the addition of method pointers, member access control, and an implicit member data type which locates instances of the class (i.e.: actual objects of that class) in the class hierarchy (essential for runtime inheritance features).
Object-based programming techniques include the concept of an object (encapsulation, and abstraction) but do not include the class-based models of inheritance.
The concepts of object-oriented programming first took root in Simula 67, a 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.) They were later refined in Smalltalk, which was developed in Simula at Xerox PARC, but was designed to be a fully dynamic system in which objects could be created and modified "on the fly" rather than having a system based on static programs.
Object-oriented programming "took off" as the dominant programming methodology during the mid-1980s, largely due to the influence of C++, an extension of the C programming language. Its dominance was further cemented by the rising popularity of Graphical user interfaces, for which object-oriented programming is allegedly well-suited. Indeed, the rise of GUIs changed the user focus from the sequential instructions of text-based interfaces to the more dynamic manipulation of tangible components. An example of a closely related dynamic GUI library and OOP language can be found in the Cocoa frameworks on Mac OS X, written in Objective C, an object-oriented, dynamic messaging extension to C based on Smalltalk.
Object-oriented features were added to many existing languages during that time, including Ada, BASIC, Lisp, Pascal, and others. Adding these features to languages that were not initially designed for them often led to problems with compatibility and maintainability of code. "Pure" object-oriented languages, on the other hand, lacked features that many programmers had come to depend upon. To bridge this gap, many attempts have been made to create new languages based on object-oriented methods but allowing some procedural features in "safe" ways.
Bertrand Meyer's Eiffel was an early and moderately successful language with those goals.
In the past decade Java has emerged in wide use partially because of it similarity to the [C language] but more importantly because if its implementation using a virtual machine that theoretically runs code unchanged on many different platforms, the latter of which makes it the darling of larger development shops with hetergeneous environments.
More recently, a number of languages have emerged that are primarily object-oriented yet compatible with procedural methodology, such as Python and Ruby. Besides Java, probably the most commerically important recent object-oriented languages are VB.NET and C Sharp designed for Microsoft's .NET platform.
Just as procedural programming led to refinements of technique such as structured programming, modern object-oriented software design methods include refinements such as the use of design patterns, design by contract, and modelling languages (such as UML).
Basic
Inheritance
OOP with procedural languages
Definition
Class-based models
Object-based models
History
Further reading
See also:
External link
Source: adapted by the editor from Wikipedia, the free encyclopedia under a copyleft GNU Free Documentation License (GFDL) from the article "Object-oriented programming."
| Domain | Definition |
Computing | Object-oriented programming |
Source: compiled by the editor from various references; see credits. | |
| Domain | Title |
Books | |
Source: compiled by the editor from various references; see credits. | |
| Language | Translations for "OBJECT-ORIENTED PROGRAMMING"; alternative meanings/domain in parentheses. | ||||||||||||||||
Danish | objekt-orienteret programmering. (various references) | ||||||||||||||||
Dutch | objectgerichte programmering, objectgeoriënteerd programmeren. (various references) | ||||||||||||||||
French | programmation par objets, programmation orientée vers les objets, programmation orientée objets. (various references) | ||||||||||||||||
German | objekt-orientierte Programmierung (object-oriented design), objektbezogene Programmierung, Programmiertechnik,die das "Wissen" um ein Objekt in einer Datenstruktur lokalisiert,-handle es sich um Daten im traditionellen Sinne oder um prozedurales "Wissen"-,und durch eine Vererbung von Attributen und Methoden zwischen verschiedenen Objekttypen un. (various references) | ||||||||||||||||
Greek | προγραμματισμός προσανατολισμένος στο αντικείμενο. (various references) | ||||||||||||||||
Italian | programmazione orientata verso gli oggetti, programmazione orientata agli oggetti, programmazione object oriented. (various references) | ||||||||||||||||
Pig Latin | object-orienteday ogrammingpray programação orientada para o objecto. (various references) programación por objetos, programación orientada a objetos. (various references) | ||||||||||||||||
Hexadecimal (or equivalents, 770AD-1900s) (references)4F 42 4A 45 43 54 2D 4F 52 49 45 4E 54 45 44      50 52 4F 47 52 41 4D 4D 49 4E 47 |
| Leonardo da Vinci (1452-1519; backwards) (references)
|
Binary Code (1918-1938, probably earlier) (references)01001111 01000010 01001010 01000101 01000011 01010100 00101101 01001111 01010010 01001001 01000101 01001110 01010100 01000101 01000100 00100000 01010000 01010010 01001111 01000111 01010010 01000001 01001101 01001101 01001001 01001110 01000111 |
HTML Code (1990) (references)O B J E C T - O R I E N T E D   P R O G R A M M I N G |
ISO 10646 (1991-1993) (references)004F 0042 004A 0045 0043 0054 002D 004F 0052 0049 0045 004E 0054 0045 0044      0050 0052 004F 0047 0052 0041 004D 004D 0049 004E 0047 |
Encryption (beginner's substitution cypher): (references)49364439375415495243394854393825052494152354747434841 |
| 1. Crosswords 2. Usage: Commercial 3. Translations: Modern 4. Orthography | 5. Bibliography |
Copyright © Philip M. Parker, INSEAD. Terms of Use.