OVERVIEW
The last years have witnessed continuous progress in the technology available both for academic and commercial computing environments. Examples include more processor performance, increased memory capacity and bandwidth, faster networking technology, operating system support for cluster computing and the generalized use of mutiprocessor systems, including in particular multicore microprocessors. These improvements, combined with recent advances in compilation and implementation technologies, are causing high-level languages to be regarded as good candidates for programming complex, real world applications. Techniques aiming at achieving flexibility in the language design make powerful extensions easier to implement; on the other hand, implementations which reach good performance in terms of speed and memory consumption make declarative languages and systems amenable to develop non-trivial applications.
Logic Programming and Constraint Programming, in particular, seem to offer one of the best options, as they couple a high level of abstraction and a declarative nature with an extreme flexibility in the design of their implementations and extensions and of their execution model. This adaptability is key to, for example, the implicit exploitation of alternative execution strategies tailored for different applications (e.g., for domain-specific languages) without unnecessarily jeopardizing efficiency.
The workshop aims at discussing and exchanging experience on the design, implementation, and optimization of logic and constraint (logic) programming systems, or systems intimately related to logic as a means to express computations. Preference will be given to the analysis and description of implemented (or under implementation) systems and their associated techniques, problems found in their development or design, and steps taken towards the solutions.
WORKSHOP TOPICS
The workshop topics include, but are not limited to:
-
- Implementation of standard/alternative sequential models (generalization and modification of the WAM, translation to lower-level and/or general-purpose languages, etc.);
-
- Implementation of parallel/concurrent models;
-
- Interaction between high-level optimizations/transformations and lower-level issues;
-
- Compile-time analysis and its application to code generation;
-
- Balance between compile-time effort and run-time machinery;
-
- Memory management, indexing, and garbage collection issues;
-
- Profiling tools and performance evaluation;
-
- Implementation techniques for declarative programming paradigms with basis on, or extending, logic and constraint programming, such as non-monotonic reasoning, inductive logic programming, natural language processing systems, etc;
-
- Software design with and for (C)LP systems: components, patterns, etc.;
-
- Design and implementation of programming environments;
-
- Experiences from using systems in real-life applications.