Language and architecture paradigms as object classes: A unified approach towards multiparadigm programming

  • Diomidis Spinellis
  • Sophia Drossopoulou
  • Susan Eisenbach
Session Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 782)

Abstract

Computer language paradigms offer linguistic abstractions and proof theories for expressing program implementations. Similarly, system architectures offer the hardware abstractions and quantitative theories applicable to the execution of compiled programs. Although the two entities are usually treated independently, object-oriented technology can be used to obtain a unifying framework. Specifically, inheritance can be used to model both programming languages as extensions to the assembly language executed by the target architecture, and system architectures as the root class of those paradigms. We describe how these principles can be used to model, structure and implement real multiparadigm systems in a portable and extendable way.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Bal HE, Steiner JG, Tanenbaum AS (1989) Programming languages for distributed computing systems. ACM Comput. Surv., 21: 261–322.Google Scholar
  2. 2.
    Byrd L (1980) Understanding the control flow of Prolog programs. In Logic Programming Workshop, Debrecen.Google Scholar
  3. 3.
    Cohen J (1985) Describing Prolog by its interpretation and compilation. Commun. ACM, 28: 1311–1324.Google Scholar
  4. 4.
    Cook WR (1992) Interfaces and specifications for the Smalltalk-80 collection classes. ACM SIGPLAN Notices, 27: 1–15. Sevent Annual Conference on Object-Oriented Programming Systems, Languages and Applications, OOPSLA '92 Conference Proceedings, October 18–22, Vancouver, British Columbia, Canada.Google Scholar
  5. 5.
    Debray SK (1988) The SB-Prolog System, Version 3.0: A User Manual University of Arizona, Department of Computer Science, Tucson, AZ 85721, USA.Google Scholar
  6. 6.
    Eckberg DL, Hill, Jr. L (1980) The paradigm concept and sociology: A critical review. In Gutting G, editor, Paradigms and Revolutions, pp 117–136. University of Notre Dame Press, Notre Dame, London.Google Scholar
  7. 7.
    Foster I, Taylor S (1990) Strand: New Concepts in Parallel Programming. Prentice-Hall.Google Scholar
  8. 8.
    Greene JC (1980) The Kuhnian paradigm and the Darwinian revolution in natural history. In Gutting G, editor, Paradigms and Revolutions, pp 297–320. University of Notre Dame Press, Notre Dame, London.Google Scholar
  9. 9.
    Hailpern B (1986) Multiparadigm research: A survey of nine projects. IEEE Software, 3: 70–77.Google Scholar
  10. 10.
    Johnson SC (1975) Yacc — yet another compiler-compiler. Computer Science Technical Report 32, Bell Laboratories, Murray Hill, NJ, USA.Google Scholar
  11. 11.
    Kuhn TS (1970) The Structure of Scientific Revolutions. University of Chicago Press, Chicago and London, 2nd, enlarged edition. International Encyclopedia of Unified Science. 2:(2).Google Scholar
  12. 12.
    Lesk ME (1975) Lex — a lexical analyzer generator. Computer Science Technical Technical Report 32, Bell Laboratories, Murray Hill, NJ, USA.Google Scholar
  13. 13.
    Meyer B (1990) Lessons from the design of the Eiffel libraries. Commun. ACM, 33: 68–88.Google Scholar
  14. 14.
    Nelson ML (1991) An object-oriented tower of Babel. OOPS Messenger, 2: 3–11.Google Scholar
  15. 15.
    Shriver BD (1986) Software paradigms. IEEE Software, 3: 2.Google Scholar
  16. 16.
    Spinellis D (1993) Implementing Haskell: Language implementation as a tool building exercise. Structured Programming, 14: 37–48.Google Scholar
  17. 17.
    Stefik MJ, Bobrow DG, Kahn KM (1986) Integrating access-oriented programming into a multiparadigm environment. IEEE Software, 3: 10–18.Google Scholar
  18. 18.
    Takeuchi I, Okuno H, Ohsato N (1986) A list processing language TAO with multiple programming paradigms. New Generation Computing, 4: 401–444.Google Scholar
  19. 19.
    Treleaven PC, editor (1990) Parallel Computers: Object-Oriented Functional, Logic. John Wiley & Sons.Google Scholar
  20. 20.
    Turner DA (1985) Miranda — a non-strict functional language with polymorphic types. In Jouannaud JP, editor, Proceedings of the Conference on Functional Programming Languages and Computer Architecture, pp 1–16, Nancy, France. Springer-Verlag. Lecture Notes in Computer Science 201.Google Scholar
  21. 21.
    Uustalu T (1992) Combining object-oriented and logic paradigms: A modal logic programming approach. In Madsen OL, editor, ECCOP '92 Europen Conference on Object-Oriented Programming, pp 98–113, Utrecht, The Netherlands. Springer-Verlag. Lecture Notes in Computer Science 615.Google Scholar
  22. 22.
    Warren DHD (1983) An abstract Prolog instruction set. Technical Note 309, SRI International, Artificial Intelligence Center, Computer Science and Technology Division, 333 Ravenswood Ave., Menlo Park, CA, USA.Google Scholar
  23. 23.
    Wegner P (1987) Dimensions of object-based language design. ACM SIGPLAN Notices, 22: 168–182. Special Issue: Object-Oriented Programming Systems, Languages and Applications, OOPSLA '87 Conference Proceedings, October 4–8, Orlando, Florida, USA.Google Scholar
  24. 24.
    Wegner P (1989) Guest editor's introduction to special issue of computing surveys. ACM Comput. Surv., 21: 253–258. Special Issue on Programming Language Paradigms.Google Scholar
  25. 25.
    Wegner P (1990) Concepts and paradigms of object-oriented programming. OOPS Messenger, 1: 7–87.Google Scholar
  26. 26.
    Wells M (1989) Multiparadigmatic programming in Modcap. Journal of Object-Oriented Programming, 1: 53–60.Google Scholar
  27. 27.
    Wirth N (1985) From programming language design to computer construction. Commun. ACM, 28: 159–164.Google Scholar
  28. 28.
    Wirth N (1985) Programming in Modula-2. Springer Verlag, third edition.Google Scholar
  29. 29.
    Wittgenstein L (1960) Philophische Untersuchungen. In Schriften, volume I. Suhrkamp Verlag, Frakfurt a.M., Germany. In German.Google Scholar
  30. 30.
    Zave P (1989) A compositional approach to multiparadigm programming. IEEE Software, 6: 15–25.Google Scholar

Copyright information

© Springer-Verlag 1994

Authors and Affiliations

  • Diomidis Spinellis
    • 1
  • Sophia Drossopoulou
    • 1
  • Susan Eisenbach
    • 1
  1. 1.Department of ComputingImperial College of Science, Technology and MedicineLondonUK

Personalised recommendations