New visualization and debugging technology for one-way dataflow constraints

NP-hard) and in software engineering, since their software solutions are often complex to write and maintain. Constraint programming [VHS96] is a class of programming languages especially designed to simplify the development and maintenance of combinatorial optimization applications (although they have other applications as well). They often reduce development time dramatically, while preserving most of the efficiency of similar algorithms written in a lower-level language. At the core of these languages are efficient and in-cremental constraint-solving algorithms based on artificial intelligence , operations research, and theoretical computer science techniques. Around this constraint component operates a programming layer that generally support nondeterministic search and data-driven constructs. The combination of these two components makes it possible to automate many of the tedious and intricate aspects of these applications, while leaving enough flexibility to tackle large industrial applications. Constraint programming systems have in fact been very successful in industry and are now widely used around the world in major industries, e.g., airline, car-manufacturing, logistics, and supply-chain management. Our research on constraint programming in the last five years first produced innovative constraint programming systems such as cc(FD) [VttSD95], NEWTON [VHMB98], and ATHENA IRVH001. They introduced novel algorithms (e.g., [VHMK97]) and new abstractions (e.g., higher-order constraints and constructive disjunction) that are now in use in many other academic or commercial systems. Our recent research aims at making combinatorial optimization accessible, not only to computer scientists, but also to domain experts, i.e., scientists or engineers who are gifted in modeling their application domain but who may have limited knowledge of, or limited opportunity to learn, advanced computer science technology. This motivation led us to the design and implementation of the modeling languages NUMEI~ICA [VttMD97], LOCALIZER [MVtI99], and OPL [VH99]. These languages are domain-specific languages taylored to a class of applications and/or techniques and providing modelers with high-level set, algebraic, constraint, and search notations and abstractions. They further reduce the distance between the specification and its implementation (i.e., the model), facilitates more extensive experimentation that are often needed in these applications , and simplify maintenance and reuse. Once again, experimental results have shown that these languages can produce dramatic reduction in development time in their application areas, while inducing a reasonable overhead in efficiency for many applications. Some of these modeling languages are now also in commercial use and they helped identifying new research directions at the intersection of artificial intelligence, operations research, programming languages, software engineering, and …

[1]  William D. Clinger,et al.  Generational garbage collection and the radioactive decay model , 1997, PLDI '97.

[2]  David C. Cann,et al.  Retire Fortran? A debate rekindled , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[3]  William D. Clinger,et al.  Implementation Strategies for First-Class Continuations , 1999, High. Order Symb. Comput..

[4]  William D. Clinger Proper tail recursion and space efficiency , 1998, PLDI.