Open Access
Programming Paradigms as Object Classes: A Structuring Mechanism for Multiparadigm Programming
Diomidis Spinellis
- 01 Jan 2002
TL;DR: The use of object-oriented design techniques are proposed as a method for encapsulating programming paradigms within multiparadigm applications, and for abstracting common characteristics across paradigsms.
read more
Abstract: The word paradigm, is used in computer science to talk about a family of notations, that share a common way for describing program implementations. Since each paradigm is well suited for solving only a range of problems, ideally a large system should be subdivided into components, each of which should be implemented in the most appropriate paradigm. Multiparadigm programming, allows the programmer to implement a system, in a number of different paradigms. The use of multiparadigm programming techniques, could lower implementation costs, and result in more reliable and efficient applications. The difficulties that arise with multiparadigm programming can be separated into the areas of application development in multiple paradigms, design and implementation of multiparadigm environment, and generators for creating such environments. We propose the use of object-oriented design techniques as a method for encapsulating programming paradigms within multiparadigm applications, and for abstracting common characteristics across paradigms. These techniques can be used to design practical multiparadigm environment generators, and implement multiparadigm programming environments supporting a wide variety of paradigms. In order to demonstrate the validity of our approach, we describe the design and implementation of three prototypes: one in each problem area. The integrator is a multiparadigm application dealing with the numeric and symbolic evaluation of integrals. The symbolic evaluation is based on the backtracking resolution mechanism offered by the logic programming paradigm, and the numeric evaluation, on the infinite streams implemented in the functional paradigm. Additionally, lexical analysis of the input expressions is described using regular expressions, and the expression grammar is described using a BNF syntax. Finally, expression simplification uses a term rewrite system, and graphing of functions is done by directly interacting with Unix tools. Integrator is implemented in the blueprint multiparadigm programming environment, a prototype implementation of the six paradigms based on our object-oriented approach. Many different implementation techniques have been applied in order to demonstrate the wide applicability of our approach. Some of the paradigms are implemented as compilers (using existing implementations where possible), and others are implemented as interpreters. Finally, the implementation of blueprint is based on the MPSS multiparadigm environment generator. This, allows the description of paradigms as object classes using paradigm description files. Additionally, it provides a multiparadigm link editor, and support for incorporating existing compilers into multiparadigm programming environments.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Mathematica--A System for Doing Mathematics by Computer.
TL;DR: For some reasons, this mathematica a system for doing mathematics by computer tends to be the representative book in this website.
2.7K
The C programming language
Brian W. Kernighan,Dennis M. Ritchie +1 more
- 01 Jan 1978
TL;DR: This ebook is the first authorized digital version of Kernighan and Ritchie's 1988 classic, The C Programming Language (2nd Ed.), and is a "must-have" reference for every serious programmer's digital library.
2.2K
•Book
Introduction to logic programming
Jean-Marie Jacquet
- 21 Nov 1993
TL;DR: This introduction to logic programming is based on Haskell, a very simple way of programming that can be applied to any kind of computer programming.
102
Symbolic analysis and atomistic model as a basis for a program comprehension methodology
Erkki Laitila
- 01 Jan 2008
TL;DR: An information flow structure with four stages to help in systematically obtaining new knowledge from the code and the idea of an "atom" in the source code was implemented as a so-called hybrid object, combining object based abstraction and expressiveness of a logic language.
7
References
•Book
The Structure of Scientific Revolutions
Thomas S. Kuhn
- 01 Jan 1962
TL;DR: The Structure of Scientific Revolutions as discussed by the authors is a seminal work in the history of science and philosophy of science, and it has been widely cited as a major source of inspiration for the present generation of scientists.
36.9K
Numerical recipes in C
William H. Press,Saul A. Teukolsky,William T. Vetterling,Brian P. Flannery +3 more
- 01 Jan 1994
TL;DR: The Diskette v 2.06, 3.5''[1.44M] for IBM PC, PS/2 and compatibles [DOS] Reference Record created on 2004-09-07, modified on 2016-08-08.
Communicating sequential processes
TL;DR: It is suggested that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method.
•Book
Compilers: Principles, Techniques, and Tools
Alfred V. Aho,Ravi Sethi,Jeffrey D. Ullman +2 more
- 01 Jan 1986
TL;DR: This book discusses the design of a Code Generator, the role of the Lexical Analyzer, and other topics related to code generation and optimization.
9.7K