1,377 research outputs found
Side-Effect Localization for Lazy, Purely Functional Languages via Aspects
Many side-effecting programming activities, such as profiling and tracing,
can be formulated as crosscutting concerns and be framed as side-effecting aspects in the aspect-oriented programming paradigm. The benefit gained from this separation of concerns is particularly evident in purely functional programming, as adding such aspects using techniques such as monadification will generally lead to crosscutting changes. This paper presents an approach to provide side-effecting aspects for lazy purely functional languages in a user transparent fashion. We propose a simple yet direct state manipulation construct for developing side-effecting aspects and devise a
systematic monadification scheme to translate the woven code to monadic style purely functional code. Furthermore, we present a static and dynamic semantics of the aspect programs and reason about the correctness of our monadification scheme with respect to them
Programmiersprachen und Rechenkonzepte
Seit 1984 veranstaltet die GI--Fachgruppe "Programmiersprachen und Rechenkonzepte" regelmäßig im Frühjahr einen Workshop im Physikzentrum Bad Honnef. Das Treffen dient in erster Linie dem gegenseitigen Kennenlernen, dem Erfahrungsaustausch, der Diskussion und der Vertiefung gegenseitiger Kontakte
Recommended from our members
Towards an aspect weaving BPEL engine
This position paper proposes the use of dynamic aspects and
the visitor design pattern to obtain a highly configurable and
extensible BPEL engine. Using these two techniques, the
core of this infrastructural software can be customised to
meet new requirements and add features such as debugging,
execution monitoring, or changing to another Web Service
selection policy. Additionally, it can easily be extended to
cope with customer-specific BPEL extensions. We propose
the use of dynamic aspects not only on the engine itself
but also on the workflow in order to tackle the problems of
Web Service hot deployment and hot fixes to long running
processes. In this way, composing aWeb Service "on-the-fly"
means weaving its choreography interface into the workflow
CoqTL: A Coq DSL for Rule-Based Model Transformation
International audienc
The Quantum Monadology
The modern theory of functional programming languages uses monads for
encoding computational side-effects and side-contexts, beyond bare-bone program
logic. Even though quantum computing is intrinsically side-effectful (as in
quantum measurement) and context-dependent (as on mixed ancillary states),
little of this monadic paradigm has previously been brought to bear on quantum
programming languages.
Here we systematically analyze the (co)monads on categories of parameterized
module spectra which are induced by Grothendieck's "motivic yoga of operations"
-- for the present purpose specialized to HC-modules and further to set-indexed
complex vector spaces. Interpreting an indexed vector space as a collection of
alternative possible quantum state spaces parameterized by quantum measurement
results, as familiar from Proto-Quipper-semantics, we find that these
(co)monads provide a comprehensive natural language for functional quantum
programming with classical control and with "dynamic lifting" of quantum
measurement results back into classical contexts.
We close by indicating a domain-specific quantum programming language (QS)
expressing these monadic quantum effects in transparent do-notation, embeddable
into the recently constructed Linear Homotopy Type Theory (LHoTT) which
interprets into parameterized module spectra. Once embedded into LHoTT, this
should make for formally verifiable universal quantum programming with linear
quantum types, classical control, dynamic lifting, and notably also with
topological effects.Comment: 120 pages, various figure
Certifying a Rule-Based Model Transformation Engine for Proof Preservation
International audienceExecutable engines for relational model-transformation languages evolve continuously because of language extension, performance improvement and bug fixes. While new versions generally change the engine semantics, end-users expect to get backward-compatibility guarantees, so that existing transformations do not need to be adapted at every engine update.The CoqTL model-transformation language allows users to define model transformations, theorems on their behavior and machine-checked proofs of these theorems in Coq. Backward-compatibility for CoqTL involves also the preservation of these proofs. However, proof preservation is challenging, as proofs are easily broken even by small refactorings of the code they verify.In this paper we present the solution we designed for the evolution of CoqTL, and by extension, of rule-based transformation engines. We provide a deep specification of the transformation engine, including a set of theorems that must hold against the engine implementation. Then, at each milestone in the engine development, we certify the new version of the engine against this specification, by providing proofs of the impacted theorems. The certification formally guarantees end-users that all the proofs they write using the provided theorems will be preserved through engine updates. We illustrate the structure of the deep specification theorems, we produce a machine-checked certification of three versions of CoqTL against it, and we show examples of user theorems that leverage this specification and are thus preserved through the updates
Dagstuhl News January - December 2011
"Dagstuhl News" is a publication edited especially for the members of the Foundation "Informatikzentrum Schloss Dagstuhl" to thank them for their support. The News give a summary of the scientific work being done in Dagstuhl. Each Dagstuhl Seminar is presented by a small abstract describing the contents and scientific highlights of the seminar as well as the perspectives or challenges of the research topic
Applying Formal Methods to Networking: Theory, Techniques and Applications
Despite its great importance, modern network infrastructure is remarkable for
the lack of rigor in its engineering. The Internet which began as a research
experiment was never designed to handle the users and applications it hosts
today. The lack of formalization of the Internet architecture meant limited
abstractions and modularity, especially for the control and management planes,
thus requiring for every new need a new protocol built from scratch. This led
to an unwieldy ossified Internet architecture resistant to any attempts at
formal verification, and an Internet culture where expediency and pragmatism
are favored over formal correctness. Fortunately, recent work in the space of
clean slate Internet design---especially, the software defined networking (SDN)
paradigm---offers the Internet community another chance to develop the right
kind of architecture and abstractions. This has also led to a great resurgence
in interest of applying formal methods to specification, verification, and
synthesis of networking protocols and applications. In this paper, we present a
self-contained tutorial of the formidable amount of work that has been done in
formal methods, and present a survey of its applications to networking.Comment: 30 pages, submitted to IEEE Communications Surveys and Tutorial
A Programming System for End-user Functional Programming
This research involves the construction of a programming system, HASKEU,
to support end-user programming in a purely functional programming language.
An end-user programmer is someone who may program a computer
to get their job done, but has no interest in becoming a computer programmer.
A purely functional programming language is one that does not require
the expression of statement sequencing or variable updating. The end-user is
offered two views of their functional program. The primary view is a visual
one, in which the program is presented as a collection of boxes (representing
processes) and lines (representing data
flow). The secondary view is a textual
one, in which the program is presented as a collection of written function definitions. It is expected that the end-user programmer will begin with the visual
view, perhaps later moving on to the textual view. The task of the programming
system is to ensure that the visual and textual views are kept consistent
as the program is constructed. The foundation of the programming system
is a implementation of the Model-View-Controller (MVC) design pattern as a
reactive program using the elegant Functional Reactive Programming (FRP)
framework. Human-Computer Interaction (HCI) principles and methods are
considered in all design decisions. A usabilty study was made to find out the
effectiveness of the new system
Mining Fix Patterns for FindBugs Violations
In this paper, we first collect and track a large number of fixed and unfixed
violations across revisions of software.
The empirical analyses reveal that there are discrepancies in the
distributions of violations that are detected and those that are fixed, in
terms of occurrences, spread and categories, which can provide insights into
prioritizing violations.
To automatically identify patterns in violations and their fixes, we propose
an approach that utilizes convolutional neural networks to learn features and
clustering to regroup similar instances. We then evaluate the usefulness of the
identified fix patterns by applying them to unfixed violations.
The results show that developers will accept and merge a majority (69/116) of
fixes generated from the inferred fix patterns. It is also noteworthy that the
yielded patterns are applicable to four real bugs in the Defects4J major
benchmark for software testing and automated repair.Comment: Accepted for IEEE Transactions on Software Engineerin
- …