Paradigms of programming


slide: Paradigms of programming

Objectives

This section characterizes object-oriented programming as a paradigm of programming, in relation to other well-established paradigms. In particular, it intends to delineate, following  [St88], what it means to support a particular paradigm or style of programming.

Points to emphasize


slide: Paradigm

Hints

The discussion of the evolvement of the object-oriented paradigm is best placed in the perspective of the genesis of programming languages as embodying increasingly powerful mechanisms for abstraction.

Questions

  1. How is OOP related to programming languages?
  2. What classes of languages support OOP features? Explain.

slide: Questions

Comments

Many students favor the phrase small is beautiful, and hence seem at first, especially when brought up with Modula or Pascal, to be somewhat apprehensive towards features such as encapsulation and inheritance. They seem to be sometimes wondering: ``Why do we need these features when we can already express what we want in Modula?.'' It takes some pains to convince them that in real life small is certainly not always to be considered beautiful, and that many of the additional features offered for example by C++ are not superfluous but, on the contrary, essential to realize abstract data types.