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

OBJECT-ORIENTED PROGRAMMING

Crosswords: OBJECT-ORIENTED PROGRAMMING

English words defined with "OBJECT-ORIENTED PROGRAMMING": Javaobject-oriented programing language, object-oriented programming language. (references)
Specialty definitions using "OBJECT-ORIENTED PROGRAMMING": 6.001abstract class, Alan KayBusiness Application Programming Interfaceclass library, class method, CLU, component architecture, concrete classderived class, dynamic bindingECOOP, eXperimental LISPFOOPIdealized CSP, instance variableJava Virtual Machine, JOOPLisp Object-Oriented Programming System, Loglan'82, LOOPSmessage passing, MODSIM, multiple inheritanceObject Management Group, Objective PASCAL, object-oriented, object-oriented design, object-oriented language, OOPL, OOPSLASCOOPS, SIMULA I, Smalltalk, subject-oriented programmingThink Cvector graphicsWild_LIFE. (references)

Source: compiled by the editor from various references; see credits.

Top     

Specialty Definition: Object-oriented programming

(From Wikipedia, the free Encyclopedia)

Object-oriented programming (OOP) is a computer programming paradigm that emphasizes the following aspects:

Notes: Abstraction is important to but not unique to OOP. Reusability is a benefit often attributed to OOP.

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.

Basic

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

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.

OOP with procedural languages

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.

Definition

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

Class-based models

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 models

Object-based programming techniques include the concept of an object (encapsulation, and abstraction) but do not include the class-based models of inheritance.

History

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).

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."

Top     

Specialty Definition: OBJECT-ORIENTED PROGRAMMING

DomainDefinition

Computing

Object-oriented programming (OOP) The use of a class of programming languages and techniques based on the concept of an "object" which is a data structure (abstract data type) encapsulated with a set of routines, called "methods", which operate on the data. Operations on the data can _only_ be performed via these methods, which are common to all objects that are instances of a particular "class". Thus the interface to objects is well defined, and allows the code implementing the methods to be changed so long as the interface remains the same. Each class is a separate module and has a position in a "class hierarchy". Methods or code in one class can be passed down the hierarchy to a subclass or inherited from a superclass. This is called "inheritance". A procedure call is described as invoking a method on an object (which effectively becomes the procedure's first argument), and may optionally include other arguments. The method name is looked up in the object's class to find out how to perform that operation on the given object. If the method is not defined for the object's class, it is looked for in its superclass and so on up the class hierarchy until it is found or there is no higher superclass. OOP started with SIMULA-67 around 1970 and became all-pervasive with the advent of C++, and later Java. Another popular object-oriented programming language (OOPL) is Smalltalk, a seminal example from Xerox's Palo Alto Research Center (PARC). Others include Ada, Object Pascal, Objective C, DRAGOON, BETA, Emerald, POOL, Eiffel, Self, Oblog, ESP, Loops, POLKA, and Python. Other languages, such as Perl and VB, permit, but do not enforce OOP. FAQ (http://iamwww.unibe.ch/~scg/OOinfo/FAQ/). (http://zgdv.igd.fhg.de/papers/se/oop/). (http://cuiwww.unige.ch/Chloe/OOinfo). Usenet newsgroup: news:comp.object. (2001-10-11). Source: The Free On-line Dictionary of Computing.

Source: compiled by the editor from various references; see credits.

Top     

Commercial Usage: OBJECT-ORIENTED PROGRAMMING

DomainTitle

Books

  • Java Methods : An Introduction to Object-Oriented Programming (reference)

  • Object-Oriented Programming with Visual Basic .NET (reference)

    (more book examples)

Source: compiled by the editor from various references; see credits.

Top     

Modern Translation: OBJECT-ORIENTED PROGRAMMING

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

   

Portuguese

  

programação orientada para o objecto. (various references)

   

Spanish

  

programación por objetos, programación orientada a objetos. (various references)

Source: compiled by the editor from various translation references.

Top     

Alternative Orthography: OBJECT-ORIENTED PROGRAMMING


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)

&#79 &#66 &#74 &#69 &#67 &#84 &#45 &#79 &#82 &#73 &#69 &#78 &#84 &#69 &#68 &#32 &#80 &#82 &#79 &#71 &#82 &#65 &#77 &#77 &#73 &#78 &#71

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

Top     



INDEX

1. Crosswords
2. Usage: Commercial
3. Translations: Modern
4. Orthography
5. Bibliography


  

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