Abstract
The roots of object-oriented (OO) programming and concurrent programming both date back to the development of seminal concepts in these areas during the mid to late 1960s. Object-based languages provide support for the concepts of data abstraction and modularity. Data abstraction supports separation of functionality from implementation; a module provides encapsulation of code and data, thus providing protection and information hiding. OO programming supports three additional concepts: inheritance, dynamic binding, and polymorphism. Concurrency refers to logical parallelism of computations. Concurrent operations in a computation can be executed in any order on a uniprocessor, or they may be executed in parallel on different processors, possibly executing at different speeds. A computation may consist of a set of concurrent processes. A process (or thread) represents a system-level entity for carrying out the sequence of operations in a program.
Original language | English (US) |
---|---|
Pages (from-to) | 22-55 |
Number of pages | 34 |
Journal | JOOP - Journal of Object-Oriented Programming |
Volume | 12 |
Issue number | 7 |
State | Published - Nov 1999 |