Browse > Article
http://dx.doi.org/10.3745/KIPSTA.2004.11A.1.089

Taxonomy of Abstraction  

Kim, Sung-Ki (한신대학교 컴퓨터학과)
Abstract
Abstraction is an important concept applied widely to variables, functions, complex data, abstract data types, classes and polymorphism in programming languages. However, the concept of abstraction has been considered as ambiguous and explained differently because it is not defined clearly and uniformly. In this paper, we analyse many aspects of abstraction in programming languages, and propose the taxonomy of abstraction. We classify abstraction according to the mechanism of formation into 4 categories such as napping abstraction, bundling abstraction. integrating abstraction and extending abstraction. We also consider many concepts related closely to abstraction such as functions, abstract data types, objects, encapsulation and classes in the view of abstraction. These analysis and consideration will make it possible to explain uniformly various aspects of abstraction which have been treated individually and differently, and to understand the meanings, necessity and importance of abstraction more intensively.
Keywords
Abstraction; Procedural Abstraction; Abstract Data Type; Encapsulation; Class; Polymorphism; Encapsulation;
Citations & Related Records
Times Cited By KSCI : 1  (Citation Analysis)
연도 인용수 순위
1 K. Arnold and J. Gosling, The Java Programming language, Addison-Wesley, 1996
2 M. Abadi, L. Cardelli and P. L. Curien, 'Formal Parametric Polymorphism,' Proceedings of the 20th ACM Symposium on Principles of Programming Languages, 1993   DOI
3 The Bible Societies, The Holy Bible Authorized Version, The Bible Societies, 1972
4 A. Bogida, J. Mylopoulos and H. Wong, 'Generalization/Specialization as a Basis for Software Specification,' On Conceptual Modelling: Perspectives from Artificial Intelligence, Databases, and Programming Languages, M. L. Brodie, J. Mylopoulos and J. W. Schmidt, Eds., Springer-Verlag, 1984
5 P. Canning, W. Cook, W. Hill, W. Olthoff and J.C. Mitchell, 'F'-bounded Polymorphism for Object-Oriented Programming,' Proceedings of the 4th Functional Programming Languages and Computer Architecture, 1989   DOI
6 L. Cardelli and P. Wegner, 'On Understanding Types, Data Abstraction, and Polymorphism,' ACM Computing Survey, Vol.17, No.4, Dec., 1985   DOI   ScienceOn
7 O. J Dahl and K. Nygaard, 'Simula - An Algol-based Simulation Language,' Comm. ACM, Vol.9. No.9, Sep., 1966   DOI
8 S. Danforth and C. Tomlinson, 'Type Theories and Object-Oriented Programming,' ACM Computing Surveys, Vol.20, No.1, Mar., 1988   DOI   ScienceOn
9 http://www.encyber.com/
10 B. W. Kenighan, D. M. Ritchie, The C Programming Language, Prentice-Hall, 1988
11 Q. Ma, 'Parametricity as Subtyping,' Proceedings of the 19th ACM Symposium on Principles of Programming Languages, 1992   DOI
12 R. Sethi, 'Programming Languages,' Concepts and Constructs, Addison-Wesley, 1989
13 M. N. Mattos, 'Abstraction Concepts: the Basis for Knowledge Modeling,' Proc. of Conf. on Entity-Relationship Approach, 1988
14 O. Nierstrasz, 'A Survey of Object-Oriented Concepts,' in Object-Oriented Concepts, Databases, and Application, ACM Press, 1989   DOI
15 R. W. Sebesta, Concepts of Programming Languages, The Benjamin/Cummings Publishing Company, 1992
16 P. Wegner, 'Classification in Object-oriented Systems,' ACM SIGPLAN Notices, Vol.21, No.10, Oct., 1986   DOI
17 T. Korson and J. D. McGregor, 'Understanding Object-Oriented: a Unifying Paradigm,' Comm. of ACM, Vol.33, No.9, Sep., 1990   DOI
18 A. Taivalaari, 'On the Notion of Inheritance,' ACM Computing Surveys, Vol.28, No.3, Sep., 1996   DOI   ScienceOn
19 J. D. Ullman and J. Widom, A First Course in Database Systems, prentice-Hall, 1997
20 A. Snyder, 'Encapsulation and Inheritance in Object-Oriented Programming language,' Proceedings of the First ACM Conference on Object-oriented programming Systems, Languages and Applications, 1986   DOI
21 B. Mayer, Eiffel : The Language, Prentice-Hall, 1992
22 B. Stroustrup, The C++ programming Language, Addison Wesley, 1993
23 김성기, '절차적 추상화의 분류와 다형성', 한국정보처리학회논문지A, Vol.10A, No.1, Mar., 2003   과학기술학회마을   DOI
24 김성기, '프로그래밍 언어에서의 추상화', 한신대학교 정보과학연구소논문지, Vol.6, No.1, Dec., 2002
25 J. M. Smith and D. C. P. Smith, 'Database Abstraction : Aggregation and Generalization,' ACM TODS, Vol.2, No.2, June, 1977