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

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...

Full description

Bibliographic Details
Main Author: McNamara, Brian
Format: Others
Language:en_US
Published: Georgia Institute of Technology 2005
Subjects:
C++
Online Access:http://hdl.handle.net/1853/5073
id ndltd-GATECH-oai-smartech.gatech.edu-1853-5073
record_format oai_dc
spelling ndltd-GATECH-oai-smartech.gatech.edu-1853-50732013-01-07T20:11:02ZMultiparadigm programming: Novel devices for implementing functional and logic programming constructs in C++McNamara, BrianDomain-specific embedded languageC++Logic programmingMultiparadigm programmingFunctional programmingObject-oriented programmingFunctional programming languagesMultiparadigm programming (Computer science)Logic programming languagesC++ (Computer program language)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.Georgia Institute of Technology2005-03-02T22:36:05Z2005-03-02T22:36:05Z2004-07-12Dissertation720843 bytesapplication/pdfhttp://hdl.handle.net/1853/5073en_US
collection NDLTD
language en_US
format Others
sources NDLTD
topic Domain-specific embedded language
C++
Logic programming
Multiparadigm programming
Functional programming
Object-oriented programming
Functional programming languages
Multiparadigm programming (Computer science)
Logic programming languages
C++ (Computer program language)
spellingShingle Domain-specific embedded language
C++
Logic programming
Multiparadigm programming
Functional programming
Object-oriented programming
Functional programming languages
Multiparadigm programming (Computer science)
Logic programming languages
C++ (Computer program language)
McNamara, Brian
Multiparadigm programming: Novel devices for implementing functional and logic programming constructs in C++
description 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.
author McNamara, Brian
author_facet McNamara, Brian
author_sort McNamara, Brian
title Multiparadigm programming: Novel devices for implementing functional and logic programming constructs in C++
title_short Multiparadigm programming: Novel devices for implementing functional and logic programming constructs in C++
title_full Multiparadigm programming: Novel devices for implementing functional and logic programming constructs in C++
title_fullStr Multiparadigm programming: Novel devices for implementing functional and logic programming constructs in C++
title_full_unstemmed Multiparadigm programming: Novel devices for implementing functional and logic programming constructs in C++
title_sort multiparadigm programming: novel devices for implementing functional and logic programming constructs in c++
publisher Georgia Institute of Technology
publishDate 2005
url http://hdl.handle.net/1853/5073
work_keys_str_mv AT mcnamarabrian multiparadigmprogrammingnoveldevicesforimplementingfunctionalandlogicprogrammingconstructsinc
_version_ 1716473919400050688