Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Sebastian Fischer 0001

dblp:74/3745-1 · DBLP profile ↗
← Back
15ranked-venue papers
8as first author
0since 2021 · last 2015
0000-0001-8687-9156ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 11 · 6 first-authorTheory of computation · 7 · 3 first-authorApplied, interdisciplinary, general and emerging computing · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Compilers and program optimization · 100%
Databases, data mining, and information retrieval
1 paper
Data models and query languages · 100%

Topics — the 2 heaviest of 3, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Compilers and program optimization › program transformation › bidirectional transformation
bidirectional programming
0.422015
The essence of bidirectional programming · Sci. China Inf. Sci. 2015
Validity Checking of Putback Transformations in Bidirectional Programming · FM 2014
Compilers and program optimization
program transformation
0.112015
The essence of bidirectional programming · Sci. China Inf. Sci. 2015
YearPublicationVenuePosition
2015 A Clear Picture of Lens Laws - Functional Pearl
Sebastian Fischer 0001, Zhenjiang Hu 0002, Hugo Pacheco 0001
MPC1
2015 The essence of bidirectional programming
Sebastian Fischer 0001, Zhenjiang Hu 0002, Hugo Pacheco 0001
Sci. China Inf. Sci.1
2014 Validity Checking of Putback Transformations in Bidirectional Programming
Zhenjiang Hu 0002, Hugo Pacheco 0001, Sebastian Fischer 0001
FM3
2014 Monadic combinators for "Putback" style bidirectional programming
abstract
Bidirectional transformations, in particular lenses, are programs with a forward get transformation and a backward putback transformation that keep source and view data types synchronized. Several bidirectional programming languages exist to aid programmers in writing a (sort of) forward transformation, and deriving a backward transformation for free. However, the maintainability offered by such languages comes at the cost of expressiveness and (more importantly) predictability because the ambiguity of synchronization "handled by the putback transformation" is solved by default strategies over which programmers have little control. In this paper, we argue that controlling such ambiguity is essential for bidirectional transformations and propose a novel language in which programmers write a (sort of) putback transformation, and get the unique get transformation for free. Like traditional bidirectional languages, our put-oriented language allows reasoning about the correctness of defined transformations from the properties of their building blocks. But it allows programmers to describe the behavior of a bidirectional transformation much more precisely, while retaining the maintainability of writing a single program. We demonstrate the practical power of the new approach through a series of examples, ranging from simple ones that illustrate traditional lenses to complex ones for which our putback-based approach is central to specifying nontrivial update strategies.
Hugo Pacheco 0001, Zhenjiang Hu 0002, Sebastian Fischer 0001
PEPM3
2012 Simple Rectangle-Based Functional Programs for Computing Reflexive-Transitive Closures
Rudolf Berghammer, Sebastian Fischer 0001
RAMiCS2
2012 Generate, Test, and Aggregate - A Calculation-based Framework for Systematic Parallel Programming with MapReduce
Kento Emoto, Sebastian Fischer 0001, Zhenjiang Hu 0002
ESOP2
2012 Filter-embedding semiring fusion for programming with MapReduce
abstract
Abstract We show that MapReduce, the de facto standard for large scale data-intensive parallel programming, can be equipped with a programming theory in calculational form. By integrating the generate-and-test programming paradigm and semirings for aggregation of results, we propose a novel parallel programming framework for MapReduce. The framework consists of two important calculation theorems: the shortcut fusion theorem of semiring homomorphisms bridges the gap between specifications and efficient implementations, and the filter-embedding theorem helps to develop parallel programs in a systematic and incremental way.
Kento Emoto, Sebastian Fischer 0001, Zhenjiang Hu 0002
Formal Aspects Comput.2
2011 Purely functional lazy nondeterministic programming
abstract
Abstract Functional logic programming and probabilistic programming have demonstrated the broad benefits of combining laziness (nonstrict evaluation with sharing of the results) with nondeterminism. Yet these benefits are seldom enjoyed in functional programming because the existing features for nonstrictness, sharing, and nondeterminism in functional languages are tricky to combine. We present a practical way to write purely functional lazy nondeterministic programs that are efficient and perspicuous. We achieve this goal by embedding the programs into existing languages (such as Haskell, SML, and OCaml) with high-quality implementations, by making choices lazily and representing data with nondeterministic components, by working with custom monadic data types and search strategies, and by providing equational laws for the programmer to reason about their code.
Sebastian Fischer 0001, Oleg Kiselyov, Chung-chieh Shan
J. Funct. Program.1
2010 A play on regular expressions: functional pearl
abstract
Cody, Hazel, and Theo, two experienced Haskell programmers and an expert in automata theory, develop an elegant Haskell program for matching regular expressions: (i) the program is purely functional; (ii) it is overloaded over arbitrary semirings, which not only allows to solve the ordinary matching problem but also supports other applications like computing leftmost longest matchings or the number of matchings, all with a single algorithm; (iii) it is more powerful than other matchers, as it can be used for parsing every context-free language by taking advantage of laziness.
Sebastian Fischer 0001, Frank Huch, Thomas Wilke
ICFP1
2009 Purely functional lazy non-deterministic programming
abstract
Functional logic programming and probabilistic programming have demonstrated the broad benefits of combining laziness (non-strict evaluation with sharing of the results) with non-determinism. Yet these benefits are seldom enjoyed in functional programming, because the existing features for non-strictness, sharing, and non-determinism in functional languages are tricky to combine.
Sebastian Fischer 0001, Oleg Kiselyov, Chung-chieh Shan
ICFP1
2008 Data-flow testing of declarative programs
Sebastian Fischer 0001, Herbert Kuchen
ICFP1
2007 Lazy call-by-value evaluation
abstract
Designing debugging tools for lazy functional programming languages is a complex task which is often solved by expensive tracing of lazy computations. We present a new approach in which the information collected as a trace is reduced considerably (kilobytes instead of megabytes). The idea is to collect a kind of step information for a call-by-value interpreter, which can then efficiently reconstruct the computation for debugging/viewing tools, like declarative debugging. We show the correctness of the approach, discuss a proof-of-concept implementation with a declarative debugger as back end and present some benchmarks comparing our new approach with the Haskell debugger Hat.
Bernd Brassel, Michael Hanus, Sebastian Fischer 0001, Frank Huch, Germán Vidal
ICFP3
2007 Preserving Sharing in the Partial Evaluation of Lazy Functional Programs
Sebastian Fischer 0001, Josep Silva, Salvador Tamarit, Germán Vidal
LOPSTR1
2007 Systematic generation of glass-box test cases for functional logic programs
abstract
We employ the narrowing-based execution mechanism of the functional logic programming language Curry in order to automatically generate a system of test cases for glass-box testing of Curry programs. The test cases for a given function are computed by narrowing a call to that function with initially uninstantiated arguments. The generated test cases are produced w.r.t. a selected code-coverage criterion such as control-flow coverage. Besides an adaption of the notion of control-flow coverage to functional (logic) programming, we present a novel coverage criterion for this programming paradigm. A particular difficulty of the adaption is the handling of laziness.
Sebastian Fischer 0001, Herbert Kuchen
PPDP1
2006 A Program Transformation for Tracing Functional Logic Computations
Bernd Brassel, Sebastian Fischer 0001, Frank Huch
LOPSTR2