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.
Similar content being viewed by others
References
Bal HE, Steiner JG, Tanenbaum AS (1989) Programming languages for distributed computing systems. ACM Comput. Surv., 21: 261–322.
Byrd L (1980) Understanding the control flow of Prolog programs. In Logic Programming Workshop, Debrecen.
Cohen J (1985) Describing Prolog by its interpretation and compilation. Commun. ACM, 28: 1311–1324.
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.
Debray SK (1988) The SB-Prolog System, Version 3.0: A User Manual University of Arizona, Department of Computer Science, Tucson, AZ 85721, USA.
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.
Foster I, Taylor S (1990) Strand: New Concepts in Parallel Programming. Prentice-Hall.
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.
Hailpern B (1986) Multiparadigm research: A survey of nine projects. IEEE Software, 3: 70–77.
Johnson SC (1975) Yacc — yet another compiler-compiler. Computer Science Technical Report 32, Bell Laboratories, Murray Hill, NJ, USA.
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).
Lesk ME (1975) Lex — a lexical analyzer generator. Computer Science Technical Technical Report 32, Bell Laboratories, Murray Hill, NJ, USA.
Meyer B (1990) Lessons from the design of the Eiffel libraries. Commun. ACM, 33: 68–88.
Nelson ML (1991) An object-oriented tower of Babel. OOPS Messenger, 2: 3–11.
Shriver BD (1986) Software paradigms. IEEE Software, 3: 2.
Spinellis D (1993) Implementing Haskell: Language implementation as a tool building exercise. Structured Programming, 14: 37–48.
Stefik MJ, Bobrow DG, Kahn KM (1986) Integrating access-oriented programming into a multiparadigm environment. IEEE Software, 3: 10–18.
Takeuchi I, Okuno H, Ohsato N (1986) A list processing language TAO with multiple programming paradigms. New Generation Computing, 4: 401–444.
Treleaven PC, editor (1990) Parallel Computers: Object-Oriented Functional, Logic. John Wiley & Sons.
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.
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.
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.
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.
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.
Wegner P (1990) Concepts and paradigms of object-oriented programming. OOPS Messenger, 1: 7–87.
Wells M (1989) Multiparadigmatic programming in Modcap. Journal of Object-Oriented Programming, 1: 53–60.
Wirth N (1985) From programming language design to computer construction. Commun. ACM, 28: 159–164.
Wirth N (1985) Programming in Modula-2. Springer Verlag, third edition.
Wittgenstein L (1960) Philophische Untersuchungen. In Schriften, volume I. Suhrkamp Verlag, Frakfurt a.M., Germany. In German.
Zave P (1989) A compositional approach to multiparadigm programming. IEEE Software, 6: 15–25.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Spinellis, D., Drossopoulou, S., Eisenbach, S. (1994). Language and architecture paradigms as object classes: A unified approach towards multiparadigm programming. In: Gutknecht, J. (eds) Programming Languages and System Architectures. Lecture Notes in Computer Science, vol 782. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57840-4_32
Download citation
DOI: https://doi.org/10.1007/3-540-57840-4_32
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57840-6
Online ISBN: 978-3-540-48356-4
eBook Packages: Springer Book Archive