[ceur2016]
Baltasar Trancón y Widemann and Markus Lepper
Higher-Order Causal Stream Functions in Sig from First Principles
in: Software Engineering (Workshops), CEUR Workshops, Vol.1559, pg.25-39,
?, 2016
ISSN = "1613-0073",
http://ceur-ws.org/Vol-1559/paper03.pdf
[abstract]
The Sig programming language is a total functional,
clocked synchronous data-flow language. Its core has been designed
to admit concise coalgebraic semantics. Universal coalgebra is an
expressive theoretical framework for behavioral semantics, but
traditionally phrased in abstract categorical language, and
generally considered inaccessible. In the present paper, we
rephrase the coalgebraic concepts relevant for the Sig
language semantics in basic mathematical notation. We demonstrate
how the language features characteristic of its paradigms, namely
sequential and parallel composition for applicative style,
delay for data flow, and apply for higher-order
functional programming, are shaped naturally by the semantic
structure. Thus the present paper serves two purposes, as a gentle,
self-contained and applied introduction to coalgebraic semantics,
and as an explication of the Sig core language
denotational and operational design. |
|
[cmcs2014]
Trancón y Widemann, Baltasar and Lepper, Markus
Foundations of Total Functional Data-Flow Programming, coniductively
in: Proceedings of the 12th International Workshop on
Coalgebraic Methods in Computer Science, CMCS, 2014, Grenoble, France, 5. April 2014.,
Earth, 2014
http://www.coalg.org/cmcs14/Trancon_y_Widemann.pdf
[abstract]
The field of declarative data stream programming (discrete time,
clocked synchronous, modular, data-centric) is divided between the
data-flow graph paradigm favored by domain experts, and the
functional reactive paradigm favored by academics. In the
summarized paper, we describe the foundations of a framework for
unifying functional and data-flow styles that differs from FRP
proper in significant ways: It draws on semantic objects from plain
set theory to match the expectations of domain experts, and the two
paradigms are reduced symmetrically to a low-level middle ground,
with strongly compositional semantics. The design of the framework
is derived from mathematical first principles, in particular
coalgebraic coinduction and a standard relational model of stateful
computation. Abstract syntax and semantics are given and constitute
the full core of a novel stream programming language. |
|
[farm2014]
Trancón y Widemann, Baltasar and Lepper, Markus
Sound and Soundness: Practical Total Functional Data-flow Programming
in: Proceedings of the 2Nd ACM SIGPLAN International Workshop
on Functional Art, Music, Modeling & Design, FARM '14, pg.35--36,
ACM, New York, NY, USA, 2014
doi:10.1145/2633638.2633644
ISBN 978-1-4503-3039-8
http://doi.acm.org/10.1145/2633638.2633644
[abstract]
The field of declarative data-stream programming (discrete time,
clocked synchronous, compositional, data-centric) is divided between
the visual data-flow graph paradigm favored by domain experts, the
functional reactive paradigm favored by academics, and the
synchronous paradigm favored by developers of low-level systems.
Each approach has its particular theoretical and practical merits
and target audience. The programming language Sig has been
designed to unify the underlying paradigms in a novel way. The
natural expressivity of visual approaches is combined with the
support for concise pattern-based symbolic computation of functional
programming, and the rigorous, elementary semantical foundation of
synchronous approaches. Here we demonstrate the current state of
implementation of the Sig system by means of example programs
that realize typical components of digital sound synthesis. |
|
[farm2015]
Baltasar Trancón y Widemann and Markus Lepper
The Shepard Tone and Higher-Order Multi-Rate Synchronous Data-Flow Programming in Sig
in: Proceedings 3rd ACM SIGPLAN International Workshop on Functional Art, Music,
Modeling & Design, FARM 2015, pg.6--14,
ACM, New York, 2015
ISBN 978-1-4503-3806-6
doi:10.1145/2808083.2808086
[abstract]
The total functional real-time data-flow programming language Sig
features a core layer with elegant denotational semantics, in terms
of Mealy stream transducers and coiterative causal stream functions,
that is convenient for domain experts in the primary application
domains, such as scientific modeling and digital music and event
arts. The core suffices for the implementation of many basic signal
processing components. For the expression of more sophisticated
computations, a second layer of Sig provides additional features,
namely higher-order functional programming and multi-rate
synchronicity, reducible by transformational semantics to the core
layer. Here we describe the design of the upper layer of Sig and
demonstrate its usage with the Shepard Tone, a well-known sound
synthesis problem and model of psycho-acoustically paradoxical
perception of relative musical pitch. |
|
[keod2013]
Lepper, Markus and Trancón y Widemann, Baltasar
tscore: Makes Computers and Humans Talk About Time
in: Proc. KEOD 2013, 5th Intl. Conf. on Knowledge Engineering
and Ontology Development, pg.176-183,
Joaquim Filipe and Jan Dietz(edts.)
scitepress, Portugal, 2013
ISBN 978-989-8565-81-5
http://markuslepper.eu/papers/tscore2013.pdf
This text has been presented on the
KEOD 2013 conference, here are
the slides.
[abstract]
Textual denotation of temporal data is a challenge.
In different domains very different notation systems
have been developed for pen and paper during history,
reflecting domain specific theory and practice.
They work with symbolic representation of activities
and combined expressional and spatial representation of time.
In contrast, existing computer-readable formats are
either simple lists or complicated expression languages.
The formalism and software presented here, called
tscore, try to bridge the gap between these two worlds
by studying the most advanced example of the former,
the Conventional Western Notation of music.
By abstracting its basic principles, a generic notation framework
is defined, suited for reading and writing by both humans and computers.
The syntactic framework of the front-end representation
and a mathematical formulation of the underlying semantics
are given, which both are parameterisable
and allow to plug in application specific parsers and data models.
The current state of library implementation is shortly sketched,
together with a practical example of moderately complex music notation. |
|
[masses2016]
Baltasar Trancón y Widemann and Markus Lepper
Coinductive Program Synthesis for the Masses
in: Proc. Coalgebraic Methods in Computer Science (CMCS 2016),
?, 2016
http://bandm.eu/metatools/docs/papers/cmcs2016short.pdf
|
[metricsplit]
Markus Lepper and Baltasar Trancón y Widemann
metricSplit: An Automated Notation of Rhythm Aligned with Metric Structure
in: Journal of Mathematics and Music, Taylor & Francis, London, 2019
doi:10.1080/17459737.2019.1600753
|
[msfp2014]
Trancón y Widemann, Baltasar and Lepper, Markus
Foundations of Total Functional Data-Flow Programming
in: =
Proceedings 5th Workshop on Mathematically Structured Functional Programming,
MSFP 2014, Grenoble, France, 12 April 2014., pg.143--167,
Earth, 2014
doi:10.4204/EPTCS.153.10
http://dx.doi.org/10.4204/EPTCS.153.10
[abstract]
The field of declarative stream programming (discrete time, clocked
synchronous, modular, data-centric) is divided between the data-flow
graph paradigm favored by domain experts, and the functional
reactive paradigm favored by academics. In this paper, we describe
the foundations of a framework for unifying functional and data-flow
styles that differs from FRP proper in significant ways: It is based
on set theory to match the expectations of domain experts, and the
two paradigms are reduced symmetrically to a low-level middle
ground, with strongly compositional semantics. The design of the
framework is derived from mathematical first principles, in
particular coalgebraic coinduction and a standard relational model
of stateful computation. The abstract syntax and semantics
introduced here constitute the full core of a novel stream
programming language. |
|
[msplitTR]
Markus Lepper and Baltasar Trancón y Widemann
Metricsplit - Automated Notation of Rhythms, Adequate to a Metric Structure
-- TECHNICAL REPORT
Technische Universität Ilmenau, Ilmenau, March 2017
https://www.db-thueringen.de/receive/dbt_mods_00032133
|
[paisleyControl]
Baltasar Trancón y Widemann and Markus Lepper
A Practical Study of Control in Objected-Oriented--Functional--Logic Programming with Paisley
in: Proc. Functional--Logic Programming (WFLP 2016), Vol.234,
EPTCS, world, 2016
http://eptcs.web.cse.unsw.edu.au/content.cgi?WFLP2016
[abstract]
Paisley is an extensible lightweight embedded domain-specific
language for nondeterministic pattern matching in Java. Using
simple APIs and programming idioms, it brings the power of
functional--logic processing of arbitrary data objects to the Java
platform, without constraining the underlying object-oriented
semantics. Here we present an extension to the Paisley framework
that adds pattern-based control flow. It exploits recent additions
to the Java language, namely functional interfaces and lambda
expressions, for an explicit and transparent continuation-passing
style approach to control. We evaluate the practical impact of the
novel features on a real-world case study that reengineers a
third-party open-source project to use Paisley in place of
conventional object-oriented data query idioms. We find the
approach viable for incremental refactoring of legacy code,
with significant qualitative improvements regarding separation of
concerns, clarity and intentionality, thus making for easier code
understanding, testing and debugging. |
|
[pppj2015]
Baltasar Trancón y Widemann and Markus Lepper
On-Line Synchronous Total Purely Functional Data-Flow
Programming on the Java Virtual Machine with Sig
in: Proceedings 12th International Conference on Principles and Practice
of Program, pg.37--50,
ACM, New York, 2015
doi:10.1145/2807426.2807430
ISBN 978-1-4503-3712-0
[abstract]
Sig is the prototype of a purely declarative programming
language and system for the processing of discrete, clocked
synchronous, potentially real-time data streams. It aspires to
combine good static safety, scalability and platform independence,
with semantics that are precise, concise and suitable for domain
experts. Its semantical and operational core has been formalized.
Here we discuss the general strategy for making Sig
programs executable, and describe the current state of a prototype
compiler. The compiler is implemented in Java and targets the JVM.
By careful cooperation with the JVM just-in-time compiler, it
provides immediate executability in a simple and quickly extensible
runtime environment, with code performance suitable for moderate
real-time applications such as interactive audio synthesis. |
|
[sigadlib2018]
Baltasar Trancón y Widemann and Markus Lepper
Sig adLib
--- Mostly Compositional Clocked Synchronous Data-Flow Programming in Java
in: Tagungsband des 35ten Jahrestreffens der
GI-Fachgruppe “Programmiersprachen und Rechenkonzepte”, IFI Reports, Vol.482, pg.31-48,
University of Oslo, Oslo, 2018
ISBN 978-82-7368-447-9
ISSN 0806-3036
http://urn.nb.no/URN:NBN:no-65294
[abstract]
We present Sig adLib, a lightweight embedded domain-specific
declarative language for clocked synchronous data-flow programming on
the Java host platform. The design demonstrates how to reduce data-flow
programs, which are known to have non-compositional properties, to a
pair of separate, compositional aspects that specify data and control flow,
respectively. Sig adLib can be used direcly as a conservative extension
of Java, as a target for domain-specific meta-programming, and as a
backend for its companion stand-alone language Sig. |
|
[tfp2015]
Baltasar Trancón y Widemann and Markus Lepper
Laminar Data Flow: On the Role of Slicing in Functional Data-Flow Programming
in: Proceedings Trends in Functional Programming (TFP 2015), LNCS, Vol.9547,
Springer, Berlin, Heidelberg, New York, 2015
doi:10.1007/978-3-319-39110-6_5
ISBN 978-3-319-39109-0
[abstract]
We use the concept of laminar flow, as opposed to turbulent flow,
as a metaphor for the decomposition of well-behaved purely
functional data-flow programs into largely independent parts,
necessitated by aspects with different execution constraints. In
the context of the total functional data-flow language
Sig, we identify three distinct but methodologically related
implementation challenges, namely multi-rate scheduling,
declarative initialization, and conditional execution, and
demonstrate how they can be solved orthogonally, by decomposition
using the standard program transformation technique, slicing. |
|
[tl_kps]
Trancón y Widemann, Baltasar and Lepper, Markus
tSig : Towards Semantics for a Functional Synchronous Signal Language
in: Tagungsband 16. Kolloquium Programmiersprachen
und Grundlagen der Programmierung, Arbeitsberichte des Instituts für Wirtschaftsinformatik, Nr.132, pg.163-168,
Herbert Kuchen and Tim Majchrzak and Markus Müller-Olm(edts.)
Westfälische Wilhelms-Universität Münster, Münster, 2011
ISSN 1438-3985
Dies war ein Vortrag von bt auf dem
16. Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS'11),
und ist enthalten im
Tagungsband, S. 163ff[Zusammenfassung]
Programmierwerkzeuge zur Konstruktion signalerzeugender Systeme
basieren traditionellerweise auf graphischen Datenflussnotationen,
bei denen Signale durch Kanten und Generatoren durch Knoten
dargestellt werden. Einerseits kommt diese Darstellung der
interaktiven und "`spielerischen"' Benutzung durch Informatik-Laien
entgegen. Andererseits fehlen im Vergleich zu funktionalen
Programmiersprachen, dem anderen Paradigma der Wahl für komplexe
Datenerzeugung, zahlreiche ausdrucksmächtige und produktive
Sprachmittel, insbesondere (1) Coprodukte als Grundlage von
Aufzählungs-, Vereinigungs- und algebraischen Typen sowie
Ausnahmebehandlung, (2) Abstraktionen erster Klasse, (3) Pattern
Matching als Mittel der Fallunterscheidung und Datenextraktion, (4)
geschachtelte Ausdrücke als kompakte Notation baumförmigen
Datenflusses. In der Folge bleiben softwaretechnische Belange wie
Modularisierung, Wiederverwendung, Wartung und Vermeidung trivialer
Fehler weitgehend unberücksichtigt; das gilt auch bei kommerzieller
Software für den "professionellen" Sektor.
Die Sprache tSig ist ein Entwurf, der die beiden Welten
der funktionalen und Datenfluss-Programmierung vereinen
soll. Syntaktisch stehen dazu zwei Ebenen zur Verfügung, die
kompositional nach Bedarf ineinander eingesetzt und transformiert
werden können: einerseits funktionale Notation mit Termen,
Funktionsabstraktion und Pattern Matching, andererseits eine
algebraische Notation von Datenflussgraphen, vergleichbar der
A-Normalform von Funktionenkalkülen.
Im Vortrag sollen die Grundlagen einer Semantik vorgestellt werden,
die es erlaubt, einerseits totale Funktionen mit partiellen
Berechnungszweigen, andererseits zeitlose funktionale Abhängigkeit
mit zustandsbehafteten Komponenten in Einklang zu
bringen. Langfristiges Ziel ist die ingenieursmäßige Programmierung
komplexer Signale in den Anwendungsbereichen Elektronische Musik und
Simulation von Umweltphänomenen.
|
|
[translets2016]
Markus Lepper and Baltasar Trancón y Widemann
Translets —--
Parsing Diagnosis in Small DSLs, with Permutation Combinator
and Epsilon Productions
in: Tagungsband des 35ten Jahrestreffens der
GI-Fachgruppe “Programmiersprachen und Rechenkonzepte”, IFI Reports, Vol.482, pg.114-129,
University of Oslo, Oslo, 2018
ISBN 978-82-7368-447-9
ISSN 0806-3036
http://urn.nb.no/URN:NBN:no-65294
[abstract]
Translets is a light-weight embedded domain-specific language
for easy implementation of small text parsers, which serve as the front-
ends of light-weight non-embedded domain-specific languages. In many
situations these are required for the processing of readable and conve-
nient denotations of values from complex, domain-specific data types.
Translets is a parser combinator library to enable also domain experts,
who are neither computing scientists nor language experts, to design
small, ad-hoc languages for their realm. This is supported by these de-
sign criteria:
(1) Both sides, the syntax of the input and the data type of the generated
parser’s output, are defined together and in strict correspondence, thus
explaining each other;
(2) parsing handles non-determinism and hides most technical details
from the user;
(3) the resulting data is immediately accessible after parsing, without
further transformation steps or analysis.
(4) extensive error messages are generated in case of parsing failure, and
detailed diagnostic information can be retrieved also in case of success.
The synthesis of sensible error messages is a challenge esp. in combina-
tion with permutation parsers and epsilon productions and is the main
contribution in this article. Translets have been successfully employed in
widely varying contexts, from graphic animation scripts to conventional
music notation. |
|