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 an imperative 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 execution 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 the compliance to the XSD standard and to support the test-driven development, we have created a test framework based on the Test Anything Protocol and SWI-Prolog’s quasi–quotations.
Philipp Koerner and Sebastian Krings
In general, even though Prolog is a dynamically typed language, predicates may not be called with arbitrarily typed arguments. Assumptions regarding type or mode are often made implicitly, without being directly represented in the source code. This complicates identifying the types or data structures anticipated by predicates. In consequence, 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 extensible DSL used to specify type and structure of input and output arguments. Additionally, 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 course Advanced Programming for 4th semester bachelor students of computer science.
In this note, I will explain my reasons for choosing the topics to teach, as well as their order, and presentation.
In particular, I will show how I include automated exercises, using the Leipzig autotool system.
CalcuList (Calculator with List manipulation), is an educational language for teaching functional programming extended with some imperative and side-effect features, which are enabled under explicit request by the programmer. In addition to strings and lists, the language natively supports JSON objects. The language has a Python-like syntax and interactive computation sessions with the user are established through a REPL (Read-Evaluate-Print-Loop) shell. 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 to check the rules of 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 the use and formal verification of the semantic versioning rules.
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.
Armin Wolf (Talk by Hans-Joachim Goltz)
Motivated by the necessity to model the energy loss of energy storage devices, a Proportional Constraint is introduced in finite integer domain Constraint Programming. Therefore rounding is used within its definition. For practical applications 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 the strongest notion of bounds consistency. Furthermore, an alternative modeling of the Proportional Constraint is presented. The run-times of the implementations of both alternatives are compared showing that the implementation of the Proportional Constraint on the basis of the presented pruning rules performs always better on sample problem classes.
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