On Integration of Programming Paradigms ALAN MYCROFT Computer Laboratory, Cambridge University, Cambridge, U.K. Alan.Mycroft@cl.cam.ac.uk Programming notions can be expressed in many different paradigms using imperative, object-oriented, concurrent, functional, or logic-programming (or other) formulations. Choice of an appropriate paradigm can greatly affect the ease of programming. Initially this choice appears unequivocally helpful to the programmer, but doubts soon arise. What if parts of a system are written in a typed imperative language (e.g., C) and others in an untyped logic programming language (e.g., Prolog)? How can a lazy functional language (e.g., Haskell) invoke procedures that have state? We thus confront the problem of integration of programming paradigms to integrate subsystems expressed in differing paradigms into a coherent whole. The aim of this article is to expound an algebraic view of such integration. Work with related aims but differing starting points can be found in the action semantics approach [Mosses 1992] and the monads view of feature composition (see e.g. Liang and Hudak [1996]). Also relevant is work [Mycroft et al. 1995] on using complexity to compare semantic models. Integrating subprograms written in {1, 2} varying source languages i , i intuitively represents writing in the union of
/lp/association-for-computing-machinery/on-integration-of-programming-paradigms-NyEobGBOO3