WFLP 2017

25th International Workshop on Functional and Logic Programming
31st Workshop on (Constraint) Logic Programming

When

19th to 22nd September 2017

Where

Würzburg, Germany
Julius-Maximilians-Universität Würzburg

Background Image: Universität Würzburg

WFLP 2017
Part of Declare'17

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.

Previous WFLP editions:

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).

Previous WLP editions:

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), ...

Topics

The topics of interest include (but are not limited to):

  • Functional programming
  • Logic programming
  • Constraint programming
  • Deductive databases, data mining
  • Extensions of declarative languages, objects
  • Multi-paradigm declarative programming
  • Foundations, semantics, nonmonotonic reasoning, dynamics
  • Parallelism, concurrency
  • Program analysis, abstract interpretation
  • Program transformation, partial evaluation, meta-programming
  • Specification, verification, declarative debugging
  • Knowledge representation, machine learning
  • Interaction of declarative programming with other formalisms (e.g., agents, XML, Java)
  • Implementation of declarative languages
  • Advanced programming environments and tools
  • Software technique for declarative programming
  • Applications

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.

Accepted Papers

An Operational Semantics for Constraint-logic Object-Oriented Programming

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.

Concolic Testing of Functional Logic Programs

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.

Declarative XML Schema Validation with SWI-Prolog

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.

plspec - A Specification Language for Prolog Data

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.

How I Teach Functional Programming (experience report)

Johannes Waldmann

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.
https://www.imn.htwk-leipzig.de/~waldmann/etc/teach-fp/

CalcuList: a functional language extended with imperative features

Domenico Sacca' and Angelo Furfaro

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).

Closed Types for Logic Programming

João Barbosa, Mário Florido and Vítor Santos Costa

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.

CPM: A Declarative Package Manager with Semantic Versioning

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.

Controlling Lego EV3 robots with Prolog

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.

The Proportional Constraint and Its Pruning

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.

Dates

Submission of Papers

8th July 2017 (abstracts: 5th July)

Notification of Acceptance

24th July 2017

Camera-ready Papers

15th August 2017

Conference & Workshop

19th to 22nd September 2017

Submission Guidelines

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
  • system descriptions

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.

Proceedings

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).

Organisation

Conference Chair

Michael Hanus (University of Kiel, Germany)

Program Committee (WFLP)

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)

Local Organisation

Dietmar Seipel (University of Würzburg, Germany)
Falco Nogatz (University of Würzburg, Germany)

Location and Venue

Universität Würzburg – Franconia – Bavaria – Germany

Würzburg is located about equidistant from Frankfurt and Nuremberg in the center of Germany. The city of 125.000 inhabitants is best known for the Residence Palace and Franconian Wine.

Venue

Zentrales Hörsaal- & Seminargebäude Z6

Am Hubland

97074 Würzburg

Accommodation

Hotel Poppular

Textorstraße 17

+49 931 322770

Website

Hotel Zur Stadt Mainz

Semmelstraße 395

+49 931 53155

Website

Hotel Würzburger Hof

Barbarossaplatz 2

+49 931 53814

Website
Additional details

We have collected the information for guests on a separate page.

Keep me informed

Follow us on Twitter