Multiparadigm programming languages (such as Leda) seek to merge elements of several programming paradigms into a single cohesive language that utilizes programming and conceptual aspects from various paradigms (including imperative, object-oriented, functional and logic). While there are relatively few fully multiparadigm languages, most popular languages increasingly incorporate aspects from multiple paradigms. Despite the fact that multiparadigm programming is an increasing reality, there are few methods for multiparadigm design. This paper uses Leda to explore multiparadigm program design via a simple database example. This paper is exploratory in nature, and exposes areas that should be researched further.The preeminent programming paradigm has historically been imperative. As high-level imperative programming languages (such as Fortran, Cobol, and C) gained popularity, design and analysis methods grew to match them. These methods provide a framework for reducing a problem into its composite parts. They also tend to match the underlying imperative paradigm, decomposing problems into two basic parts: 1) data, and 2) functions or procedures that operate on that data.Programming is now moving strongly toward the object-oriented paradigm. Languages such as C++ and Java have emerged as languages of choice within this paradigm. With the rise of these object-oriented languages, corresponding methods have emerged for design and analysis. These methods also provide a framework for reducing a problem intO its composite parts. In the object-oriented world, these parts take the form of class hierarchies with data and methods encapsulated in classes.Functional and logic programming languages have never risen in popularity the way imperative and object-oriented languages have. As a result, there is a dearth of information on how to perform design and analysis of programming problems from a functional or logic programming perspective, and there are few formal methods to aid in appropriate problem decomposition.The multiparadigm language Leda [1] merges elements from these four paradigms into a single cohesive language. Multiparadigm languages have yet to gain widespread popularity, although most popular languages are increasingly incorporating aspects from multiple paradigms.~ As a result, few methods for multiparadigm design currently exist, and none directly address the issues raised specifically by these four paradigms.This paper seeks to explore multiparadigm program design through a simple database example using the multiparadigm language Leda. This paper is exploratory in nature, and seeks to expose areas that should be researched further.
Example: A Simple Relational DatabaseTypically an analysis phase precedes design. During analysis, we try to understand user or customer requirements. During this phase, we discuss objects and dements that are meaningful to the user, and attempt to do so without strongly tainting the. analysis with a particular paradigm. Unfortanatcly, this is easier said then done. If the gap betw...