Skip to main content

Using a Prolog Prototype for Designing an Object Oriented Scheme

  • Conference paper
  • 33 Accesses

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. JM. Andreoli, R. Pareschi: Linear objects: logical processes with built-in inheritance, Proc. of the 7th ICLP 1990, pp 495-510

    Google Scholar 

  2. 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

    Google Scholar 

  3. 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

    Google Scholar 

  4. R. Balzer: Draft Report on Requirements for a Common Prototyping System, SIGPLAN Notices, Vol. 24, No.3, 1989, pp 93–114

    Article  MathSciNet  Google Scholar 

  5. R.J. Brachman: What IS-? is and isn’t: an analysis of taxonomies links in semantics networks, IEEE computer, 1983, pp 30-36

    Google Scholar 

  6. L. Cardelli, P. Wegner: On understanding Types, Data Abstraction, and Polymorphism, ACM Computing Surveys, Vol. 17, No. 14, 1985, pp 471–522

    Article  Google Scholar 

  7. 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

    Google Scholar 

  8. S. Danforth, C. Tomlinson: Type Theories and Object Oriented Programming, ACM Computing surveys, Vol. 20, No. 1, 1988, pp 29–72

    Article  MathSciNet  MATH  Google Scholar 

  9. H. Gallaire: Boosting Logic Programming, Proc. of the 4th ICLP, MIT Press, 1987, pp 962-988

    Google Scholar 

  10. J.S. Hodas, D. Miller: Representing objects in a logic programming language with scoping constructs, Proc. of the 7th ICLP, 1990, pp 511-526

    Google Scholar 

  11. 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

    Google Scholar 

  12. B. Legeard, M. Rueher: An approach for prototyping in Prolog (in french), TSI Dunod, Vol. 8, No. 5, 1989, pp 423–438

    Google Scholar 

  13. P. Mello, A. Natali: Objects as communicating Prolog units, Proc. of the ECOOP’87, pp 233-243

    Google Scholar 

  14. B. Meyer: Object Oriented Software Construction, Prentice Hall, 1988, 534p

    Google Scholar 

  15. P. Mishra: Towards a theory of types in Prolog, Proc. of the IEEE Int. Symp. of LP, 1984, pp 289-298

    Google Scholar 

  16. A. Mycroft, R.A. O’Keefe: A polymorphic type system for Prolog, Artificial Intelligence (23), 1984, pp 295–307

    Article  MathSciNet  MATH  Google Scholar 

  17. M. Rueher: Contribution à Vétude du prototypage exploratoire: vers une programmation multistyle, Mémoire d’habilitation, Université de Nice Sophia Antipolis, 1991, 135p

    Google Scholar 

  18. M. Rueher, C. Michel: Using objects evolution for software processes representation, Proc. Software track HICSS23, IEEE Computer Society Press, 1990, pp 121-130

    Google Scholar 

  19. P. Wegner: The Object Oriented Classification Paradigm, in Research directions in object oriented programming, MIT Press, 1987, pp 481-560

    Google Scholar 

  20. P. Wegner: Concepts and paradigms of Object Oriented Programming, OOPS Messenger, Vol. 1, No. 1, 1990, ACM Press, pp 7–87

    Article  Google Scholar 

  21. J. Zobel: Derivation of polymorphic types for Prolog programs, Proc. of the 4th ICLP, 1987, pp 817-838

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics