Font Size: a A A

Multiparadigm programming: Novel devices for implementing functional and logic programming constructs in C++

Posted on:2005-11-25Degree:Ph.DType:Dissertation
University:Georgia Institute of TechnologyCandidate:McNamara, BrianFull Text:PDF
GTID:1458390008991336Subject:Computer Science
Abstract/Summary:
Constructs for functional and logic programming can be smoothly integrated into an existing object-oriented language. We demonstrate this in the context of C++ (a statically-typed object-oriented language with effects and parametric polymorphism) via two libraries: FC++ and LC++. FC++ is a library for functional programming in C++; FC++ supports higher-order polymorphic functions, lazy lists, and a small lambda language; it also contains a large library of useful functions, datatypes, combinators, and monads. LC++ is a library for logic programming in C++; LC++ provides the same general functionality as Prolog, including the ability to return query results lazily (one at a time). Both libraries are embedded in C++ so that they share C++'s static type system, and the library interfaces provide straightforward ways for code from within one paradigm to "call out" to another.; Our work describes the techniques used to implement these libraries in C++ and shows that the resulting multiparadigm language has useful applications in real-world domains. We also describe how many of the implementation techniques can be generalized from C++ and applied to other programming languages to yield similar results.
Keywords/Search Tags:Programming, Functional, Language
Related items