288 research outputs found
12th International Workshop on Termination (WST 2012) : WST 2012, February 19â23, 2012, Obergurgl, Austria / ed. by Georg Moser
This volume contains the proceedings of the 12th International Workshop on Termination (WST 2012), to be held February 19â23, 2012 in Obergurgl, Austria. The goal of the Workshop on Termination is to be a venue for presentation and discussion of all topics in and around termination. In this way, the workshop tries to bridge the gaps between different communities interested and active in research in and around termination. The 12th International Workshop on Termination in Obergurgl continues the successful workshops held in St. Andrews (1993), La Bresse (1995), Ede (1997), Dagstuhl (1999), Utrecht (2001), Valencia (2003), Aachen (2004), Seattle (2006), Paris (2007), Leipzig (2009), and Edinburgh (2010). The 12th International Workshop on Termination did welcome contributions on all aspects of termination and complexity analysis. Contributions from the imperative, constraint, functional, and logic programming communities, and papers investigating applications of complexity or termination (for example in program transformation or theorem proving) were particularly welcome. We did receive 18 submissions which all were accepted. Each paper was assigned two reviewers. In addition to these 18 contributed talks, WST 2012, hosts three invited talks by Alexander Krauss, Martin Hofmann, and Fausto Spoto
Partial evaluation in an optimizing prolog compiler
Specialization of programs and meta-programs written in high-level languages has been an active area of research for some time. Specialization contributes to improvement in program performance. We begin with a hypothesis that partial evaluation provides a framework for several traditional back-end optimizations. The present work proposes a new compiler back-end optimization technique based on specialization of low-level RISC-like machine code. Partial evaluation is used to specialize the low-level code. Berkeley Abstract Machine (BAM) code generated during compilation of Prolog is used as the candidate low-level language to test the hypothesis. A partial evaluator of BAM code was designed and implemented to demonstrate the proposed optimization technique and to study its design issues. The major contributions of the present work are as follows: It demonstrates a new low-level compiler back-end optimization technique. This technique provides a framework for several conventional optimizations apart from providing opportunity for machine-specific optimizations. It presents a study of various issues and solutions to several problems encountered during design and implementation of a low-level language partial evaluator that is designed to be a back-end phase in a real-world Prolog compiler. We also present an implementation-independent denotational semantics of BAM code--a low-level language. This provides a vehicle for showing the correctness of instruction transformations. We believe this work to provide the first concrete step towards usage of partial evaluation on low-level code as a compiler back-end optimization technique in real-world compilers
Simulation and statistical model-checking of logic-based multi-agent system models
This thesis presents SALMA (Simulation and Analysis of Logic-Based Multi-
Agent Models), a new approach for simulation and statistical model checking
of multi-agent system models.
Statistical model checking is a relatively new branch of model-based approximative
verification methods that help to overcome the well-known scalability
problems of exact model checking. In contrast to existing solutions,
SALMA specifies the mechanisms of the simulated system by means of logical
axioms based upon the well-established situation calculus. Leveraging
the resulting first-order logic structure of the system model, the simulation
is coupled with a statistical model-checker that uses a first-order variant of
time-bounded linear temporal logic (LTL) for describing properties. This is
combined with a procedural and process-based language for describing agent
behavior. Together, these parts create a very expressive framework for modeling
and verification that allows direct fine-grained reasoning about the agentsâ
interaction with each other and with their (physical) environment.
SALMA extends the classical situation calculus and linear temporal logic
(LTL) with means to address the specific requirements of multi-agent simulation
models. In particular, cyber-physical domains are considered where
the agents interact with their physical environment. Among other things,
the thesis describes a generic situation calculus axiomatization that encompasses
sensing and information transfer in multi agent systems, for instance
sensor measurements or inter-agent messages. The proposed model explicitly
accounts for real-time constraints and stochastic effects that are inevitable in
cyber-physical systems.
In order to make SALMAâs statistical model checking facilities usable also
for more complex problems, a mechanism for the efficient on-the-fly evaluation
of first-order LTL properties was developed. In particular, the presented algorithm
uses an interval-based representation of the formula evaluation state
together with several other optimization techniques to avoid unnecessary computation.
Altogether, the goal of this thesis was to create an approach for simulation
and statistical model checking of multi-agent systems that builds upon
well-proven logical and statistical foundations, but at the same time takes a
pragmatic software engineering perspective that considers factors like usability,
scalability, and extensibility. In fact, experience gained during several small
to mid-sized experiments that are presented in this thesis suggest that the
SALMA approach seems to be able to live up to these expectations.In dieser Dissertation wird SALMA (Simulation and Analysis of Logic-Based
Multi-Agent Models) vorgestellt, ein im Rahmen dieser Arbeit entwickelter
Ansatz fuÌr die Simulation und die statistische ModellpruÌfung (Model Checking)
von Multiagentensystemen.
Der Begriff âStatistisches Model Checkingâ beschreibt modellbasierte approximative
Verifikationsmethoden, die insbesondere dazu eingesetzt werden
können, um den unvermeidlichen Skalierbarkeitsproblemen von exakten Methoden
zu entgehen. Im Gegensatz zu bisherigen AnsÀtzen werden in SALMA die
Mechanismen des simulierten Systems mithilfe logischer Axiome beschrieben,
die auf dem etablierten SituationskalkuÌl aufbauen. Die dadurch entstehende
prÀdikatenlogische Struktur des Systemmodells wird ausgenutzt um ein Model
Checking Modul zu integrieren, das seinerseits eine prÀdikatenlogische Variante
der linearen temporalen Logik (LTL) verwendet. In Kombination mit
einer prozeduralen und prozessorientierten Sprache fuÌr die Beschreibung von
Agentenverhalten entsteht eine ausdrucksstarke und flexible Plattform fuÌr die
Modellierung und Verifikation von Multiagentensystemen. Sie ermöglicht eine
direkte und feingranulare Beschreibung der Interaktionen sowohl zwischen
Agenten als auch von Agenten mit ihrer (physischen) Umgebung.
SALMA erweitert den klassischen SituationskalkuÌl und die lineare temporale
Logik (LTL) um Elemente und Konzepte, die auf die spezifischen Anforderungen
bei der Simulation und Modellierung von Multiagentensystemen
ausgelegt sind. Insbesondere werden cyber-physische Systeme (CPS) unterstuÌtzt,
in denen Agenten mit ihrer physischen Umgebung interagieren. Unter
anderem wird eine generische, auf dem SituationskalkuÌl basierende, Axiomatisierung
von Prozessen beschrieben, in denen Informationen innerhalb von
Multiagentensystemen transferiert werden â beispielsweise in Form von Sensor-
Messwerten oder Netzwerkpaketen. Dabei werden ausdruÌcklich die unvermeidbaren
stochastischen Effekte und Echtzeitanforderungen in cyber-physischen
Systemen beruÌcksichtigt.
Um statistisches Model Checking mit SALMA auch fuÌr komplexere Problemstellungen
zu ermöglichen, wurde ein Mechanismus fuÌr die effiziente Auswertung
von prÀdikatenlogischen LTL-Formeln entwickelt. Insbesondere beinhaltet
der vorgestellte Algorithmus eine Intervall-basierte ReprÀsentation des
Auswertungszustands, sowie einige andere OptimierungsansÀtze zur Vermeidung
von unnötigen Berechnungsschritten.
Insgesamt war es das Ziel dieser Dissertation, eine Lösung fuÌr Simulation
und statistisches Model Checking zu schaffen, die einerseits auf fundierten
logischen und statistischen Grundlagen aufbaut, auf der anderen Seite jedoch
auch pragmatischen Gesichtspunkten wie Benutzbarkeit oder Erweiterbarkeit
genuÌgt. TatsĂ€chlich legen erste Ergebnisse und Erfahrungen aus
mehreren kleinen bis mittelgroĂen Experimenten nahe, dass SALMA diesen
Zielen gerecht wird
Enhancing System Realisation in Formal Model Development
Software for mission-critical systems is sometimes analysed using formal specification to increase the chances of the system behaving as intended. When sufficient insights into the system have been obtained from the formal analysis, the formal specification is realised in the form of a software implementation. One way to realise the system's software is by automatically generating it from the formal specification -- a technique referred to as code generation. However, in general it is difficult to make guarantees about the correctness of the generated code -- especially while requiring automation of the steps involved in realising the formal specification. This PhD dissertation investigates ways to improve the automation of the steps involved in realising and validating a system based on a formal specification. The approach aims to develop properly designed software tools which support the integration of formal methods tools into the software development life cycle, and which leverage the formal specification in the subsequent validation of the system. The tools developed use a new code generation infrastructure that has been built as part of this PhD project and implemented in the Overture tool -- a formal methods tool that supports the Vienna Development Method. The development of the code generation infrastructure has involved the re-design of the software architecture of Overture. The new architecture brings forth the reuse and extensibility features of Overture to take into account the needs and requirements of software extensions targeting Overture. The tools developed in this PhD project have successfully supported three case studies from externally funded projects. The feedback received from the case study work has further helped improve the code generation infrastructure and the tools built using it
The use of proof plans in tactic synthesis
We undertake a programme of tactic synthesis. We first formalize the notion of
a tactic as a rewrite rule, then give a correctness criterion for this by means of a
reflection mechanism in the constructive type theory OYSTER. We further formalize
the notion of a tactic specification, given as a synthesis goal and a decidability
goal. We use a proof planner. CIAM. to guide the search for inductive proofs
of these, and are able to successfully synthesize several tactics in this fashion.
This involves two extensions to existing methods: context-sensitive rewriting and
higher-order wave rules. Further, we show that from a proof of the decidability
goal one may compile to a Prolog program a pseudo- tactic which may be run to
efficiently simulate the input/output behaviour of the synthetic tacti
Milepost GCC: Machine Learning Enabled Self-tuning Compiler
International audienceTuning compiler optimizations for rapidly evolving hardwaremakes porting and extending an optimizing compiler for each new platform extremely challenging. Iterative optimization is a popular approach to adapting programs to a new architecture automatically using feedback-directed compilation. However, the large number of evaluations required for each program has prevented iterative compilation from widespread take-up in production compilers. Machine learning has been proposed to tune optimizations across programs systematically but is currently limited to a few transformations, long training phases and critically lacks publicly released, stable tools. Our approach is to develop a modular, extensible, self-tuning optimization infrastructure to automatically learn the best optimizations across multiple programs and architectures based on the correlation between program features, run-time behavior and optimizations. In this paper we describeMilepostGCC, the first publicly-available open-source machine learning-based compiler. It consists of an Interactive Compilation Interface (ICI) and plugins to extract program features and exchange optimization data with the cTuning.org open public repository. It automatically adapts the internal optimization heuristic at function-level granularity to improve execution time, code size and compilation time of a new program on a given architecture. Part of the MILEPOST technology together with low-level ICI-inspired plugin framework is now included in the mainline GCC.We developed machine learning plugins based on probabilistic and transductive approaches to predict good combinations of optimizations. Our preliminary experimental results show that it is possible to automatically reduce the execution time of individual MiBench programs, some by more than a factor of 2, while also improving compilation time and code size. On average we are able to reduce the execution time of the MiBench benchmark suite by 11% for the ARC reconfigurable processor.We also present a realistic multi-objective optimization scenario for Berkeley DB library using Milepost GCC and improve execution time by approximately 17%, while reducing compilatio
- âŠ