Abstract
The purpose of this paper is to define a reverse engineering technique for recovering structural design information through the analysis of a Prolog prototype. Prolog is widely used for making prototypes due to its high level of abstraction, and object oriented programming has emerged as a successful paradigm for software development. However, object oriented modelling is difficult to achieve. Thus, we propose to extract an object oriented scheme from the Prolog prototype. We show that the identification of the inclusion polymorphism expressed by Prolog clauses allows us to define an inheritance hierarchy.
In the first section, we define a polymorphic denotational type system for Prolog, and we show that a Prolog program expresses relationships between types which allow us to capture inclusion polymorphism. In the second section, we present an algorithm that infers relationships between types expressed in a Prolog program. These relationships are used to define an object oriented scheme, where the inheritance hierarchy only depends on the semantic relations specified by the clauses of the program. Finally, we compare our approach with some related works, and we show the advantage of our system for well capturing inheritance relations.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
JM. Andreoli, R. Pareschi: Linear objects: logical processes with built-in inheritance, Proc. of the 7th ICLP 1990, pp 495-510
H. Ait-Kaci, R. Nasr, J. Seo: Implementing a Knowledge Based Library Information System with Typed Horn Logic, Information Processing and Management, Vol.25, No.4, 1989, 35p
H. Azzoune: Types in Prolog. A type inference system and its applications (in french), Thèse de Doctorat, Institut National Polytechnique de Grenoble, 1989, 177p
R. Balzer: Draft Report on Requirements for a Common Prototyping System, SIGPLAN Notices, Vol. 24, No.3, 1989, pp 93–114
R.J. Brachman: What IS-? is and isn’t: an analysis of taxonomies links in semantics networks, IEEE computer, 1983, pp 30-36
L. Cardelli, P. Wegner: On understanding Types, Data Abstraction, and Polymorphism, ACM Computing Surveys, Vol. 17, No. 14, 1985, pp 471–522
B. Cox: Object oriented technology and the software industrial revolution... Necessary but sufficient, Proc. of OOPSLA’ 89, Special issue of ACM SIGPLAN Notices, Vol.24, No.10, 1989, pp 510–522
S. Danforth, C. Tomlinson: Type Theories and Object Oriented Programming, ACM Computing surveys, Vol. 20, No. 1, 1988, pp 29–72
H. Gallaire: Boosting Logic Programming, Proc. of the 4th ICLP, MIT Press, 1987, pp 962-988
J.S. Hodas, D. Miller: Representing objects in a logic programming language with scoping constructs, Proc. of the 7th ICLP, 1990, pp 511-526
K. Kahn, E.D. Tribble, M.S. Miller et al.: Vulcan: Logical Concurrent Objects, in “Research directions in Object Oriented Programming”, MIT Press, 1987, pp 75-112
B. Legeard, M. Rueher: An approach for prototyping in Prolog (in french), TSI Dunod, Vol. 8, No. 5, 1989, pp 423–438
P. Mello, A. Natali: Objects as communicating Prolog units, Proc. of the ECOOP’87, pp 233-243
B. Meyer: Object Oriented Software Construction, Prentice Hall, 1988, 534p
P. Mishra: Towards a theory of types in Prolog, Proc. of the IEEE Int. Symp. of LP, 1984, pp 289-298
A. Mycroft, R.A. O’Keefe: A polymorphic type system for Prolog, Artificial Intelligence (23), 1984, pp 295–307
M. Rueher: Contribution à Vétude du prototypage exploratoire: vers une programmation multistyle, Mémoire d’habilitation, Université de Nice Sophia Antipolis, 1991, 135p
M. Rueher, C. Michel: Using objects evolution for software processes representation, Proc. Software track HICSS23, IEEE Computer Society Press, 1990, pp 121-130
P. Wegner: The Object Oriented Classification Paradigm, in Research directions in object oriented programming, MIT Press, 1987, pp 481-560
P. Wegner: Concepts and paradigms of Object Oriented Programming, OOPS Messenger, Vol. 1, No. 1, 1990, ACM Press, pp 7–87
J. Zobel: Derivation of polymorphic types for Prolog programs, Proc. of the 4th ICLP, 1987, pp 817-838
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1992 Springer-Verlag London
About this paper
Cite this paper
Solnon, C., Rueher, M. (1992). Using a Prolog Prototype for Designing an Object Oriented Scheme. In: Clement, T.P., Lau, KK. (eds) Logic Program Synthesis and Transformation. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3494-7_22
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3494-7_22
Publisher Name: Springer, London
Print ISBN: 978-3-540-19742-3
Online ISBN: 978-1-4471-3494-7
eBook Packages: Springer Book Archive