Computational Abstraction Steps

By: Lone Leth Thomsen, Bent Thomsen, Kurt Nørmark


In this paper we discuss computational abstraction steps as a way to create class abstractions from concrete objects, and from examples. Computational abstraction steps are regarded as symmetric counterparts to computational concretization steps, which are well-known in terms of function calls and class instantiations. Our teaching experience shows that many novice programmers find it difficult to write programs with abstractions that materialize to concrete objects later in the development process. The contribution of this paper is the idea of initiating a programming process by creating or capturing concrete values, objects, or actions. As the next step, some of these are lifted to a higher level by computational means. In the object-oriented paradigm the target of such steps is classes. We hypothesize that the proposed approach primarily will be beneficial to novice programmers or during the exploratory phase of a program development process. In some specific niches it is also expected that our approach will be a help to professional programmers.


Abstraction, generalisation, concretisation, prototype-based programming, class-based programming, class objects, first class classes, meta-programming

Cite as:

Lone Leth Thomsen, Bent Thomsen, Kurt Nørmark, “Computational Abstraction Steps”, Journal of Object Technology, Volume 9, no. 6 (November 2010), pp. 1-23, doi:10.5381/jot.2010.9.6.a1.

PDF | DOI | BiBTeX | Tweet this | Post to CiteULike | Share on LinkedIn