25th International Workshop on Functional and Logic Programming
31st Workshop on (Constraint) Logic Programming
19th to 22nd September 2017
WFLP 2017 is the combination of two workshops of a successful series of annual workshops on declarative programming. The international workshops on functional and logic programming aim at bringing together researchers interested in functional programming, logic programming, as well as their integration. The workshops on (constraint) logic programming serve as the scientific forum of the annual meeting of the Society of Logic Programming (GLP e.V.) and bring together researchers interested in logic programming, constraint programming, and related areas like databases, artificial intelligence, and operations research.
In this year both workshops will be jointly organized and collocated with the 21st International Conference on Applications of Declarative Programming and Knowledge Management (INAP 2017) and the Summer School on Advanced Concepts for Databases and Logic Programming under the umbrella of the Declare 2017 - Conference on Declarative Programming in order to promote the cross-fertilizing exchange of ideas and experiences among researchers and students from the different communities interested in the foundations, applications, and combinations of high-level, declarative programming languages and related areas. The technical program of the workshop will include invited talks, presentations of refereed papers and demo presentations.
WFLP 2016 (Leipzig, Germany), WFLP 2014 (Wittenberg, Germany), WFLP 2013 (Kiel, Germany), WFLP 2012 (Nagoya, Japan), WFLP 2011 (Odense, Denmark), WFLP 2010 (Madrid, Spain), WFLP 2009 (Brasilia, Brazil), WFLP 2008 (Siena, Italy), WFLP 2007 (Paris, France), WFLP 2006 (Madrid, Spain), WCFLP 2005 (Tallinn, Estonia), WFLP 2004 (Aachen, Germany), WFLP 2003 (Valencia, Spain), WFLP 2002 (Grado, Italy), WFLP 2001 (Kiel, Germany), WFLP 2000 (Benicassim, Spain), WFLP'99 (Grenoble, France), WFLP'98 (Bad Honnef, Germany), WFLP'97 (Schwarzenberg, Germany), WFLP'96 (Marburg, Germany), WFLP'95 (Schwarzenberg, Germany), WFLP'94 (Schwarzenberg, Germany), WFLP'93 (Rattenberg, Germany), and WFLP'92 (Karlsruhe, Germany).
WLP 2016 (Leipzig, Germany), WLP 2015 (Dresden, Germany), WLP 2014 (Wittenberg, Germany), WLP 2013 (Kiel, Germany), WLP 2012 (Bonn, Germany), WLP 2011 (Vienna, Austria), WLP 2010 (Cairo, Egypt), WLP 2009 (Potsdam, Germany), WLP 2008 (Dresden, Germany), WLP 2007 (Würzburg, Germany), WLP 2006 (Vienna, Austria), WLP 2005 (Ulm, Germany), WLP 2004 (Potsdam, Germany), WLP 2002 (Dresden, Germany), WLP 2001 (Kiel, Germany), WLP 2000 (Berlin, Germany), WLP'99 (Würzburg, Germany), WLP'98 (Vienna, Austria), WLP'97 (Munich, Germany), WLP'95 (Vienna, Austria), ...
The topics of interest include (but are not limited to):
The primary focus is on new and original research results but submissions describing innovative products, prototypes under development, application systems, or interesting experiments (e.g., benchmarks) are also encouraged.
Jan C. Dageförde and Herbert Kuchen
Object-oriented (OO) languages such as Java are the dominating programming languages nowadays, among other reasons due to their ability to encapsulate data and operations working on them, as well as due to their support of inheritance. However, in contrast to constraint-logic languages, they are not particularly suited for solving search problems. During development of enterprise software, which occasionally requires some search, one option is to produce components in different languages and let them communicate. However, this can be clumsy.
As a remedy, we have developed the constraint-logic OO language Muli, which augments Java with logic variables and encapsulated search. Its implementation is based on a symbolic Java virtual machine that supports constraint solving and backtracking. In the present paper, we focus on the non-deterministic operational semantics of a core language.
Jan Rasmus Tikovsky
In the last years, concolic testing, a technique combining concrete and symbolic execution for the automated generation of test cases, has gained increasing popularity. Concolic testing tools are initialized with expressions on concrete input data.
But instead of just evaluating them, they additionally collect symbolic information along specific execution paths. This information can be used to systematically compute alternative inputs exploring yet unvisited paths. In this way, test cases can be generated covering all branches of a given program.
The first concolic testing tools have been developed for imperative languages analyzing code at a very low level. Recently, there have been also some approaches investigating the concolic evaluation of declarative languages. In this work, we discuss the application of concolic testing to the functional logic language Curry. More precisely, we present ccti, a concolic interpreter which is adapted for the automated generation of test cases for both purely functional and non-deterministic programs.
Falco Nogatz, Jona Kalkus and Dietmar Seipel
XML Schema is a well-established mechanism to define the structure and constraining the content of an XML document. While this approach taken by itself is very declarative, currently available tools for XML validation are not. In this paper we introduce an implementation of an XSD validator in SWI-Prolog, made publicly available as the package library(xsd). Our approach is based on flattening the XSD and XML documents into Prolog facts. The top-down validation makes great use of Prolog's backtracking and unification capabilities. To ensure its correctness, we have developed a test framework based on the Test Anything Protocol and SWI-Prolog's quasi-quotations.
Philipp Koerner and Sebastian Krings
An unavoidable cause for complexity of programs in any language is sheer code volume. This issue makes it hard for programmers to identify the intended data structures for a correct call to a function or predicate, especially in dynamic languages like Prolog. As a result, Covington et al. proposed that Prolog developers should implement their own runtime type checking system.
In this paper, we present a re-usable Prolog library named plspec. It offers a simple and easily extendible DSL used to specify data that is intended for documentation purposes. Ad- ditionally, an elegant insertion of multiple kinds of runtime checks was made possible by using Prolog language features such as co-routining and term expansion. Furthermore, we will discuss performance impacts and possible future usage of these annotations.
I teach a required course "advanced programming techniques" that contains an introduction to Functional Programming (using Haskell) as well as on overview of techniques from functional programming in other paradigms (like object orientation) and languages (like C#, Java).
I will present the outline of the course and my reasoning behind it, as well as the supporting online exercises in the Leipzig autotool system.
A recent trend in programming languages is a renewed interest towards functional programming, particularly in combining it with other paradigms, mainly imperative programming. For instance, functional features have been added to existing imperative languages, e.g., lambda expressions in Java, and new languages, supporting both paradigms, have been introduced as well.
CalcuList (Calculator with List manipulation), is an "educational" functional programming language, extended with some side effect features which are enabled under explicit request by the programmer. In addition to lists, the language natively supports JSON objects.
The language has a Python-like syntax and it is equipped with a REPL (Read- Evaluate-Print-Loop) shell to establish interactive computation sessions with the user. During a session, a user may define a number of global variables and functions and run suitable computations on them as queries, that are computed and displayed on the fly.
Unlike Python, CalcuList expressions and functions are first compiled and then executed each time a query is issued. CalcuList can be thought of as an "interactive compiler" rather than an interpreter and both static and dynamic type-checking are performed. The object code produced by a compilation is a program that will be eventually executed by the CalcuList Virtual Machine (CLVM).
Type systems are a powerful tool in modern programming languages. Static descriptive type inference algorithms for logic programs, which do not rely on a priori type declarations, usually abstract the program success set. This makes types over generous in several cases, due to the unconstrained use of logic variables which may cause the acceptance of more terms than intended in a successful computation. We argue that in a fully typed logic programming language we should have type constraints over all variables. In this paper we propose that all uses of logic variables in a program should be type constrained, where by constraints we mean that either the type of the variable is strictly smaller than the set of all possible terms, or that there is an equality constraint between different types. The types in which all variables are constrained are named closed types. Here we define the notion of closed types and a closure operation which transforms general regular types into closed types.
Michael Hanus and Jonas Oberschweiber
We present CPM, a package manager for the declarative multi-paradigm language Curry. Although CPM inherits many ideas from package managers for other programming languages, a distinguishing feature of CPM is its support for semantic versioning, a convenient principle to associate meaningful version numbers to different software releases. Although the correct use of version numbers is important in software package systems where packages depend on other packages with specific releases, it is often used as an informal agreement but usually not checked by package managers. CPM is different in this aspect: it provides support for checking the semantic requirements implied by the semantic versioning scheme. Since these semantic requirements are undecidable in general, CPM uses the property-based testing tool CurryCheck to check the semantic equivalence of two different versions of a software package. Thus, CPM provides a good compromise between usability and reliability of semantic versioning.
Sibylle Schwarz and Mario Wenzel
We present a method to control Lego EV3 robots by Prolog programs. The connection between the robot and SWI-Prolog is established via ev3dev. The sensors and actors of the robot can be operated from Prolog programs using our collection of predefined predicates.
We demonstrate our approach by some examples from our introductory robotics courses.
Motivated by the necessity to model the energy loss of energy storage devices a Proportional Constraint is introduced in finite-domain Constraint Programming for integer domains. Therefore rounding is used within its definition. For practical application in finite-domain Constraint Programming pruning rules are presented and their correctness is proven. Further it is shown by examples that the number of iterations necessary to reach a fixed-point while pruning depends on the considered constraint instances. However, fixed-point iteration always results in a rather strong notion of bounds consistency.
Submission of Papers
8th July 2017 (abstracts: 5th July)
Notification of Acceptance
24th July 2017
15th August 2017
Conference & Workshop
19th to 22nd September 2017
Papers must describe original work, be written and presented in English, and must not substantially overlap with papers that have been published or that are simultaneously submitted to a journal, conference, or workshop with refereed proceedings. Work that already appeared in unpublished or informally published workshop proceedings may be submitted (please contact the PC chair in case of questions).
Papers can be submitted in the following categories:
Technical papers should consist of up to 15 pages, system descriptions should be no longer than 8 pages (including references). Formatting should follow the LNCS guidelines which are available here, along with formatting templates and style files.
Authors should submit an electronic copy of the full paper in PDF. Papers should be submitted via the submission website for WFLP 2017.
Submitted papers will be judged on the basis of significance, relevance, correctness, originality, and clarity. They should include a clear identification of what has been accomplished and why it is significant.
All accepted papers will be published in a technical report. As for previous joint INAP/WLP/WFLP events, selected papers will be published as a volume in the Springer Lecture Notes in Artificial Intelligence (LNAI) series.
Proceedings of previous events appeared as Springer LNCS volumes 8439 (WFLP 2013), 6816 (WFLP 2011), 6559 (WFLP 2010), 5979 (WFLP 2009), 5437 (WLP 2007), and 3392 (WLP 2004).
Michael Hanus (University of Kiel, Germany)
Slim Abdennadher (German University in Cairo, Egypt)
Sergio Antoy (Portland State University, USA)
Olaf Chitil (University of Kent, UK)
Jürgen Dix (Clausthal University of Technology, Germany)
Moreno Falaschi (Università di Siena, Italy)
Sebastiaan Joosten (University of Innsbruck, Austria)
Oleg Kiselyov (Tohoku University, Japan)
Herbert Kuchen (University of Münster, Germany)
Sibylle Schwarz (HTWK Leipzig, Germany)
Dietmar Seipel (University of Würzburg, Germany)
Tom Schrijvers (KU Leuven, Belgium)
Martin Sulzmann (Karlsruhe University of Applied Sciences, Germany)
Hans Tompits (Vienna University of Technology, Austria)
German Vidal (Universitat Politècnica de València, Spain)
Janis Voigtländer (University of Duisburg-Essen, Germany)
Johannes Waldmann (HTWK Leipzig, Germany)
Universität Würzburg – Franconia – Bavaria – Germany
Zentrales Hörsaal- & Seminargebäude Z6
+49 931 322770Website
Hotel Zur Stadt Mainz
+49 931 53155Website
Hotel Würzburger Hof
+49 931 53814Website
We have collected the information for guests on a separate page.
Part of Declare'17