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
- styles of programming -- as a family of conventions
- data abstraction -- and its possible realizations
- polymorphism -- and the features of inheritance
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
- How is OOP related to programming languages?
- 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.