Results 1 
4 of
4
Programming Paradigms for Dummies: What Every Programmer Should Know
"... This chapter gives an introduction to all the main programming paradigms, their underlying concepts, and the relationships between them. We give a broad view to help programmers choose the right concepts they need to solve the problems at hand. We give a taxonomy of almost 30 useful programming para ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
This chapter gives an introduction to all the main programming paradigms, their underlying concepts, and the relationships between them. We give a broad view to help programmers choose the right concepts they need to solve the problems at hand. We give a taxonomy of almost 30 useful programming paradigms and how they are related. Most of them differ only in one or a few concepts, but this can make a world of difference in programming. We explain briefly how programming paradigms influence language design, and we show two sweet spots: dualparadigm languages and a definitive language. We introduce the main concepts of programming languages: records, closures, independence (concurrency), and named state. We explain the main principles of data abstraction and how it lets us organize large programs. Finally, we conclude by focusing on concurrency, which is widely considered the hardest concept to program with. We present four littleknown but important paradigms that greatly simplify concurrent programming with respect to mainstream languages: declarative concurrency (both eager and lazy), functional reactive programming, discrete synchronous programming, and constraint programming. These paradigms have no race conditions and can be used in cases where no other paradigm works. We explain why for multicore processors and we give several examples from computer music, which often uses these paradigms. More is not better (or worse) than less, just different. – The paradigm paradox. 1
The Ultrametric Constraint and its Application to Phylogenetics
"... A phylogenetic tree shows the evolutionary relationships among species. Internal nodes of the tree represent speciation events and leaf nodes correspond to species. A goal of phylogenetics is to combine such trees into larger trees, called supertrees, whilst respecting the relationships in the origi ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
A phylogenetic tree shows the evolutionary relationships among species. Internal nodes of the tree represent speciation events and leaf nodes correspond to species. A goal of phylogenetics is to combine such trees into larger trees, called supertrees, whilst respecting the relationships in the original trees. A rooted tree exhibits an ultrametric property; that is, for any three leaves of the tree it must be that one pair has a deeper most recent common ancestor than the other pairs, or that all three have the same most recent common ancestor. This inspires a constraint programming encoding for rooted trees. We present an efficient constraint that enforces the ultrametric property over a symmetric array of constrained integer variables, with the inevitable property that the lower bounds of any three variables are mutually supportive. We show that this allows an efficient constraintbased solution to the supertree construction problem. We demonstrate that the versatility of constraint programming can be exploited to allow solutions to variants of the supertree construction problem. 1.
Implementation of the Relation Domain for Constraint Programming
"... Abstract. Relations are fundamental structures for knowledge representation. Relational queries are used to extract information from associated relations in databases. We propose to include relations in constraint programming (CP) as decision variables and promoting relational operations to constrai ..."
Abstract
 Add to MetaCart
Abstract. Relations are fundamental structures for knowledge representation. Relational queries are used to extract information from associated relations in databases. We propose to include relations in constraint programming (CP) as decision variables and promoting relational operations to constraints. That leads to new possibilities for modeling and solving CSPs. Performance and applicability are two aspects to take into account before considering the new domain practical. In this paper we address the problem of achieving a practical implementation of the system. That includes compact representation of the data in relations and good performance of the relational operations. This compact representation relies upon representing relations into binary decision diagrams (BDDs) and rewriting operations on relations for this specific representation. Optimized implementations of the operations exist when the BDD representation satisfies particular properties. A solver that maximizes the existence of such properties for a CSP on relations is provided. This ensures the maximum performance from the constraint solver. The implementation of the relation constraint system is publicly available as a Gecode extension[1]. 1
Geometric Constraints for the Phase Problem in XRay Crystallography
"... Xray crystallography is one of the main methods to establish the threedimensional structure of biological macromolecules. In an Xray experiment, one can measure only the magnitudes of the complex Fourier coefficients of the electron density distribution under study, but not their phases. The prob ..."
Abstract
 Add to MetaCart
Xray crystallography is one of the main methods to establish the threedimensional structure of biological macromolecules. In an Xray experiment, one can measure only the magnitudes of the complex Fourier coefficients of the electron density distribution under study, but not their phases. The problem of recovering the lost phases is called the phase problem. Buildingon earlier work byLunin/Urzhumtsev/Bockmayr, we extendtheir constraintbased approach to the phase problem by adding further 01 linear programming constraints. These constraints describe geometric properties of proteins and increase the quality of the solutions. The approach has been implemented using SCIP and CPLEX, first computational results are presented here. 1