Activities of the Pisa Logic Programming Group
This document describes briefly the activities of the group. You might
be interested in
past activities,
current activities, or
other activities.
The group has been active in the Logic Programming field since the early
80's. The main research areas in the past were:
Integration of logic and functional programming
The main result was the definition of the language K-LEAF, which
-
combines Horn Clauses with equational theories,
-
is provided with a lazy operational semantics and a
fixpoint semantics in the logic programming style,
-
has a parallel implementation.
Logic programming environments
The EPSILON system is an environment oriented to the development of
knowledge-based applications, whose main features are:
-
a multiple theories extension to Prolog,
-
the integration to a relational data base system,
-
the systematic use of metaprogramming (and of partial evaluation of
metaprograms) as the technique to define new language constructs
(taxonomic reasoning and inheritance, integrity constraints, etc.) and tools.
Semantics
Several problems related to the semantics of logic programs have been
considered, including
-
perpetual logic processes,
-
synchronization in concurrent and concurrent constraint languages,
-
partial computations,
-
constructive negation,
-
denotations modeling observable behaviors (for example, the s-semantics,
which models computed answers in positive logic programs),
-
semantics of extensions obtained as instances of constraint logic programs
(for example, equational programming and logic programming on sets),
-
semantics of metaprograms.
The current activity is mainly oriented to semantics and semantics-based
program analysis and verification, with very strong links among the two
areas. In addition, we have an activity on logic programming languages
based on linear logic.
Semantics
The main goal is to develop semantic constructions useful for
semantics-based program manipulation. We are currently defining an
algebraic semantic framework for positive logic programs, where we can
reason about observables, AND-compositionality and OR-compositionality.
The framework allows us to automatically obtain various (equivalent)
semantic coonstructions from the specification of the observable we
want to model. Observables can be used to model abstract interpretation. The
framework is also being extended to handle the control strategy of Prolog.
Semantics-based program analysis
There are several ongoing activities, including
-
bottom-up analysis of CLP programs on numeric domains,
-
analysis of concurrent constraint programs,
-
abstract debugging of positive logic programs,
-
analysis of pure Prolog programs
-
termination analysis using abstract interpretation techniques.
Linear logic programming
We are studying
-
a small fragment of linear logic, which is expressive enough to specify
concurrent systems, and which has a (declarative) semantics in the
logic programming style,
-
how to handle a (non-commutative) sequencing operator, within concurrent
languages based on linear logic.
Pisa is a node in the
Computational Logic
Network of Excellence and is currently in charge of the coordination of
the ``Programming Languages'' area.
Roberto Bagnara
(bagnara@di.unipi.it)