Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Sandro Stucki is active.

Publication


Featured researches published by Sandro Stucki.


A List of Successes That Can Change the World: Essays Dedicated to Philip Wadler on the Occasion of His 60th Birthday | 2016

The Essence of Dependent Object Types

Nada Amin; Karl Samuel Grütter; Tiark Rompf; Sandro Stucki

Focusing on path-dependent types, the paper develops foundations for Scala from first principles. Starting from a simple calculus D\(_{<:}\) of dependent functions, it adds records, intersections and recursion to arrive at DOT, a calculus for dependent object types. The paper shows an encoding of System F with subtyping in D\(_{<:}\) and demonstrates the expressiveness of DOT by modeling a range of Scala constructs in it.


Sigplan Notices | 2015

Yin-yang: concealing the deep embedding of DSLs

Vojin Jovanovic; Amir Shaikhha; Sandro Stucki; Vladimir Nikolaev; Christoph Koch

Deeply embedded domain-specific languages (EDSLs) intrinsically compromise programmer experience for improved program performance. Shallow EDSLs complement them by trading program performance for good programmer experience. We present Yin-Yang, a framework for DSL embedding that uses Scala macros to reliably translate shallow EDSL programs to the corresponding deep EDSL programs. The translation allows program prototyping and development in the user friendly shallow embedding, while the corresponding deep embedding is used where performance is important. The reliability of the translation completely conceals the deep em- bedding from the user. For the DSL author, Yin-Yang automatically generates the deep DSL embeddings from their shallow counterparts by reusing the core translation. This obviates the need for code duplication and leads to reliability by construction.


conference on object-oriented programming systems, languages, and applications | 2014

Staged parser combinators for efficient data processing

Manohar Jonnalagedda; Thierry Coppey; Sandro Stucki; Tiark Rompf

Parsers are ubiquitous in computing, and many applications depend on their performance for decoding data efficiently. Parser combinators are an intuitive tool for writing parsers: tight integration with the host language enables grammar specifications to be interleaved with processing of parse results. Unfortunately, parser combinators are typically slow due to the high overhead of the host language abstraction mechanisms that enable composition. We present a technique for eliminating such overhead. We use staging, a form of runtime code generation, to dissociate input parsing from parser composition, and eliminate intermediate data structures and computations associated with parser composition at staging time. A key challenge is to maintain support for input dependent grammars, which have no clear stage distinction. Our approach applies to top-down recursive-descent parsers as well as bottom-up non-deterministic parsers with key applications in dynamic programming on sequences, where we auto-generate code for parallel hardware. We achieve performance comparable to specialized, hand-written parsers.


international conference on graph transformation | 2014

Reversible Sesqui-Pushout Rewriting

Vincent Danos; Tobias Heindel; Ricardo Honorato-Zimmer; Sandro Stucki

The paper proposes a variant of sesqui-pushout rewriting (SqPO) that allows one to develop the theory of nested application conditions (NACs) for arbitrary rule spans; this is a considerable generalisation compared with existing results for NACs, which only hold for linear rules (w.r.t. a suitable class of monos). Besides this main contribution, namely an adapted shifting construction for NACs, the paper presents a uniform commutativity result for a revised notion of independence that applies to arbitrary rules; these theorems hold in any category with (enough) stable pushouts and a class of monos rendering it weak adhesive HLR. To illustrate results and concepts, we use simple graphs, i.e. the category of binary endorelations and relation preserving functions, as it is a paradigmatic example of a category with stable pushouts; moreover, using regular monos to give semantics to NACs, we can shift NACs over arbitrary rule spans.


international conference on formal engineering methods | 2014

Approximations for Stochastic Graph Rewriting

Vincent Danos; Tobias Heindel; Ricardo Honorato-Zimmer; Sandro Stucki

In this note we present a method to compute approximate descriptions of a class of stochastic systems. For the method to apply, the system must be presented as a Markov chain on a state space consisting in graphs or graph-like objects, and jumps must be described by transformations which follow a finite set of local rules.


symposium on scala | 2015

Fold-based fusion as a library: a generative programming pearl

Manohar Jonnalagedda; Sandro Stucki

Fusion is a program optimisation technique commonly implemented using special-purpose compiler support. In this paper, we present an alternative approach, implementing fold-based fusion as a standalone library. We use staging to compose operations on folds; the operations are partially evaluated away, yielding code that does not construct unnecessary intermediate data structures. The technique extends to partitioning and grouping of collections.


Proceedings of the 4th Workshop on Scala | 2013

What are the Odds?: probabilistic programming in Scala

Sandro Stucki; Nada Amin; Manohar Jonnalagedda; Tiark Rompf

Probabilistic programming is a powerful high-level paradigm for probabilistic modeling and inference. We present Odds, a small domain-specific language (DSL) for probabilistic programming, embedded in Scala. Odds provides first-class support for random variables and probabilistic choice, while reusing Scalas abstraction and modularity facilities for composing probabilistic computations and for executing deterministic program parts. Odds accurately represents possibly dependent random variables using a probability monad that models committed choice. This monadic representation of probabilistic models can be combined with a range of inference procedures. We present engines for exact inference, rejection sampling and importance sampling with look-ahead, but other types of solvers are conceivable as well. We evaluate Odds on several non-trivial probabilistic programs from the literature and we demonstrate how the basic probabilistic primitives can be used to build higher-level abstractions, such as rule-based logic programming facilities, using advanced Scala features.


symposium on principles of programming languages | 2017

Simplicitly: foundations and applications of implicit function types

Olivier Blanvillain; Fengyun Liu; Aggelos Biboudis; Heather Miller; Sandro Stucki

Understanding a program entails understanding its context; dependencies, configurations and even implementations are all forms of contexts. Modern programming languages and theorem provers offer an array of constructs to define contexts, implicitly. Scala offers implicit parameters which are used pervasively, but which cannot be abstracted over. This paper describes a generalization of implicit parameters to implicit function types, a powerful way to abstract over the context in which some piece of code is run. We provide a formalization based on bidirectional type-checking that closely follows the semantics implemented by the Scala compiler. To demonstrate their range of abstraction capabilities, we present several applications that make use of implicit function types. We show how to encode the builder pattern, tagless interpreters, reader and free monads and we assess the performance of the monadic structures presented.


reversible computation | 2015

Moment Semantics for Reversible Rule-Based Systems

Vincent Danos; Tobias Heindel; Ricardo Honorato-Zimmer; Sandro Stucki

We develop a notion of stochastic rewriting over marked graphs – i.e. directed multigraphs with degree constraints. The approach is based on double-pushout (DPO) graph rewriting. Marked graphs are expressive enough to internalize the ‘no-dangling-edge’ condition inherent in DPO rewriting. Our main result is that the linear span of marked graph occurrence-counting functions – or motif functions – form an algebra which is closed under the infinitesimal generator of (the Markov chain associated with) any such rewriting system. This gives a general procedure to derive the moment semantics of any such rewriting system, as a countable (and recursively enumerable) system of differential equations indexed by motif functions. The differential system describes the time evolution of moments (of any order) of these motif functions under the rewriting system. We illustrate the semantics using the example of preferential attachment networks; a well-studied complex system, which meshes well with our notion of marked graph rewriting. We show how in this case our procedure obtains a finite description of all moments of degree counts for a fixed degree.


Electronic Communication of The European Association of Software Science and Technology | 2014

Mean Quantitative Coverability in Stochastic Graph Transformation Systems

Tobias Heindel; Vincent Danos; Ricardo Honorato-Zimmer; Sandro Stucki

Many classical problems for Petri nets, in particular reachability and coverability, have obvious counterparts for graph transformation systems. Similarly, many problems for stochastic Petri nets, seen as a model for chemical reaction networks, are special cases of corresponding problems in graph transformation. For example, the evolution of the counts of chemical species in a test tube over time is a typical phenomenon from chemistry, which can faithfully be modelled and analysed using stochastic Petri nets. The corresponding mean quantitative coverability problem for stochastic graph transformation is simple to describe – yet hard to solve. This extended abstract summarises the fundamental ideas and challenges.

Collaboration


Dive into the Sandro Stucki's collaboration.

Top Co-Authors

Avatar

Manohar Jonnalagedda

École Polytechnique Fédérale de Lausanne

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Nada Amin

École Polytechnique Fédérale de Lausanne

View shared research outputs
Top Co-Authors

Avatar

Aggelos Biboudis

National and Kapodistrian University of Athens

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Amir Shaikhha

École Polytechnique Fédérale de Lausanne

View shared research outputs
Top Co-Authors

Avatar

Christoph Koch

École Polytechnique Fédérale de Lausanne

View shared research outputs
Top Co-Authors

Avatar

Fengyun Liu

École Polytechnique Fédérale de Lausanne

View shared research outputs
Researchain Logo
Decentralizing Knowledge