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...
Main Author: | |
---|---|
Format: | Others |
Language: | en_US |
Published: |
Georgia Institute of Technology
2005
|
Subjects: | |
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 |