Network


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

Hotspot


Dive into the research topics where Fritz Henglein is active.

Publication


Featured researches published by Fritz Henglein.


programming language design and implementation | 2017

Futhark: purely functional GPU-programming with nested parallelism and in-place array updates

Troels Henriksen; Niels G. W. Serup; Martin Elsman; Fritz Henglein; Cosmin E. Oancea

Futhark is a purely functional data-parallel array language that offers a machine-neutral programming model and an optimising compiler that generates OpenCL code for GPUs. This paper presents the design and implementation of three key features of Futhark that seek a suitable middle ground with imperative approaches. First, in order to express efficient code inside the parallel constructs, we introduce a simple type system for in-place updates that ensures referential transparency and supports equational reasoning. Second, we furnish Futhark with parallel operators capable of expressing efficient strength-reduced code, along with their fusion rules. Third, we present a flattening transformation aimed at enhancing the degree of parallelism that (i) builds on loop interchange and distribution but uses higher-order reasoning rather than array-dependence analysis, and (ii) still allows further locality-of-reference optimisations. Finally, an evaluation on 16 benchmarks demonstrates the impact of the language and compiler features and shows application-level performance competitive with hand-written GPU code.


symposium on principles of programming languages | 2016

Kleenex: compiling nondeterministic transducers to deterministic streaming transducers

Bjørn Bugge Grathwohl; Fritz Henglein; Ulrik Terp Rasmussen; Kristoffer Aalund Søholm; Sebastian Paaske Tørholm

We present and illustrate Kleenex, a language for expressing general nondeterministic finite transducers, and its novel compilation to streaming string transducers with essentially optimal streaming behavior, worst-case linear-time performance and sustained high throughput. Its underlying theory is based on transducer decomposition into oracle and action machines: the oracle machine performs streaming greedy disambiguation of the input; the action machine performs the output actions. In use cases Kleenex achieves consistently high throughput rates around the 1 Gbps range on stock hardware. It performs well, especially in complex use cases, in comparison to both specialized and related tools such as GNUawk, GNUsed, GNUgrep, RE2, Ragel and regular-expression libraries.


fixed points in computer science | 2013

Infinitary Axiomatization of the Equational Theory of Context-Free Languages.

Niels Bjørn Bugge Grathwohl; Fritz Henglein; Dexter Kozen

We give a natural complete infinitary axiomatization of the equational theory of the context-free languages, answering a question of Lei{ss} (1992).


ACM Transactions on Architecture and Code Optimization | 2016

FinPar: A Parallel Financial Benchmark

Christian Andreetta; Vivien Bégot; Jost Berthold; Martin Elsman; Fritz Henglein; Troels Henriksen; Maj-Britt Nordfang; Cosmin E. Oancea

Commodity many-core hardware is now mainstream, but parallel programming models are still lagging behind in efficiently utilizing the application parallelism. There are (at least) two principal reasons for this. First, real-world programs often take the form of a deeply nested composition of parallel operators, but mapping the available parallelism to the hardware requires a set of transformations that are tedious to do by hand and beyond the capability of the common user. Second, the best optimization strategy, such as what to parallelize and what to efficiently sequentialize, is often sensitive to the input dataset and therefore requires multiple code versions that are optimized differently, which also raises maintainability problems.n This article presents three array-based applications from the financial domain that are suitable for gpgpu execution. Common benchmark-design practice has been to provide the same code for the sequential and parallel versions that are optimized for only one class of datasets. In comparison, we document (1) all available parallelism via nested map-reduce functional combinators, in a simple Haskell implementation that closely resembles the original code structure, (2) the invariants and code transformations that govern the main trade-offs of a data-sensitive optimization space, and (3) report target cpu and multiversion gpgpu code together with an evaluation that demonstrates optimization trade-offs and other difficulties. We believe that this work provides useful insight into the language constructs and compiler infrastructure capable of expressing and optimizing such applications, and we report in-progress work in this direction.


international conference on functional programming | 2018

Relational Algebra by Way of Adjunctions

Jeremy Gibbons; Fritz Henglein; Ralf Hinze; Nicolas Wu

Bulk types such as sets, bags, and lists are monads, and therefore support a notation for database queries based on comprehensions. This fact is the basis of much work on database query languages. The monadic structure easily explains most of standard relational algebra---specifically, selections and projections---allowing for an elegant mathematical foundation for those aspects of database query language design. Most, but not all: monads do not immediately offer an explanation of relational join or grouping, and hence important foundations for those crucial aspects of relational algebra are missing. The best they can offer is cartesian product followed by selection. Adjunctions come to the rescue: like any monad, bulk types also arise from certain adjunctions; we show that by paying due attention to other important adjunctions, we can elegantly explain the rest of standard relational algebra. In particular, graded monads provide a mathematical foundation for indexing and grouping, which leads directly to an efficient implementation, even of joins.


Fundamenta Informaticae | 2017

Infinitary Axiomatization of the Equational Theory of Context-Free Languages

Niels Bjørn Bugge Grathwohl; Fritz Henglein; Dexter Kozen

We give a natural complete infinitary axiomatization of the equational theory of the context-free languages, answering a question of Leis (1992).


partial evaluation and semantic-based program manipulation | 2017

PEG parsing in less space using progressive tabling and dynamic analysis

Fritz Henglein; Ulrik Terp Rasmussen

Tabular top-down parsing and its lazy variant, Packrat, are linear-time execution models for the TDPL family of recursive descent parsers with limited backtracking. Exponential work due to backtracking is avoided by tabulating the result of each (nonterminal, offset)-pair at the expense of always using space proportional to the product of the input length and grammar size. Current methods for limiting the space usage rely either on manual annotations or on static analyses that are sensitive to the syntactic structure of the grammar. We present progressive tabular parsing (PTP), a new execution model which progressively computes parse tables for longer prefixes of the input and simultaneously generates a leftmost expansion of the parts of the parse tree that can be resolved. Table columns can be discarded on-the-fly as the expansion progresses through the input string, providing best-case constant and worst-case linear memory use. Furthermore, semantic actions are scheduled before the parser has seen the end of the input. The scheduling is conservative in the sense that no action has to be undone in the case of backtracking. The time complexity is O(dmn) where m is the size of the parser specification, n is the size of the input string, and d is either a configured constant or the maximum parser stack depth. For common data exchange formats such as JSON, we demonstrate practically constant space usage.


ACM SIGLOG News | 2016

2016 POPL impressions

Fritz Henglein

The 43rd ACM Symposium on Principles of Programming Languages, POPL, took place in St. Petersburg, Florida, January 20th--22nd. POPL is the longest-running annual conference series in programming languages. It is one of SIGPLANs four flagship conferences and has throughout its history consistently been one of the most highly regarded programming language research conferences. Like its sibling conference, Programming Language Design and Implementation (PLDI), POPL covers both theoretical and experimental topics, but traditionally leans more to the left where the PLDI leans more to the right on the theory-practice spectrum. (Another difference is that POPL does not declare itself to be the premier forum, just a forum for programming language research.)


Essays Dedicated to Hanne Riis Nielson and Flemming Nielson on the Occasion of Their 60th Birthdays on Semantics, Logics, and Calculi - Volume 9560 | 2015

Modal Intersection Types, Two-Level Languages, and Staged Synthesis

Fritz Henglein; Jakob Rehof

A typed


Social Science Research Network | 2017

Automated Execution of Financial Contracts on Blockchains

Benjamin Egelund-M ller; Martin Elsman; Fritz Henglein; Omri Ross

Collaboration


Dive into the Fritz Henglein's collaboration.

Top Co-Authors

Avatar

Martin Elsman

University of Copenhagen

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Jost Berthold

University of Copenhagen

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge