4 research outputs found

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

    Get PDF
    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.Ph.D.Committee Chair: Yannis Smaragdakis; Committee Member: Mary Jean Harrold; Committee Member: Olin Shivers; Committee Member: Philip Wadler; Committee Member: Spencer Rugabe

    Construção de um software de elementos finitos usando programação generica/generativa : considerações sobre C++, performance e generalidade

    Get PDF
    Orientador: João Frederico C. A. MeyerTese (doutorado) - Universidade Estadual de Campinas, Instituto de Matematica, Estatistica e Computação CientificaResumo: Este trabalho descreve a construção de uma biblioteca computacional (chamada Osiris) que implementa as funcionalidades necessárias para a execução de simulações baseadas no método dos elementos finitos. Os objetivos de Osiris são a flexibilidade, o desempenho e a extensibilidade. Estes quesitos são satisfeitos não apenas pela escolha da orientação por objetos (C++), mas também pelo uso e extensão do estado da arte em Programação Genérica e Programação Generativa. Váarios exemplos numéericos são apresentados, alguns de interesse em BiomatemáticaAbstract: This work describes the creation of a computational library (named Osiris) that implements the basic functionalities needed in usual Finite Element simulations. Osiris' objectives are flexibility, performance and extensibility. These requirements are fulfilled not only by the choice of an object oriented language (C++), but also by the use and extension of the state-of-the-art in Generic Programming and Generative Programming. Several numerical examples are discussed, some of interest from a Biomathematics point of viewDoutoradoMatematica AplicadaDoutor em Matemática Aplicad

    Generic Programming Redesign of Patterns

    No full text
    this paper ; -- parametric methods, which leads to a form of ad-hoc polymorphism (overloading
    corecore