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

Georgios Karachalias

dblp:167/5903 · DBLP profile ↗
← Back
8ranked-venue papers
4as first author
2since 2021 · last 2023
—ORCID · none

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

Software engineering, systems software and programming languages · 7 · 4 first-author · 1 since 2021Theory of computation · 1 · 1 since 2021

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
Programming languages and type systems · 58% Compilers and program optimization · 42%

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

TopicWeightPapersLastEvidence papers
Programming languages and type systems › computational effects
algebraic effects
0.512021
Efficient compilation of algebraic effect handlers · Proc. ACM Program. Lang. 2021
Compilers and program optimization › compiler construction
compilation pipeline
0.512021
Efficient compilation of algebraic effect handlers · Proc. ACM Program. Lang. 2021
Compilers and program optimization
compiler optimization
0.512021
Efficient compilation of algebraic effect handlers · Proc. ACM Program. Lang. 2021
Programming languages and type systems › computational effects › algebraic effects
effect handlers
0.512021
Efficient compilation of algebraic effect handlers · Proc. ACM Program. Lang. 2021
Compilers and program optimization › program transformation
source-to-source transformation
0.512021
Efficient compilation of algebraic effect handlers · Proc. ACM Program. Lang. 2021
Programming languages and type systems › type systems
intersection types
0.412020
Resolution as intersection subtyping via Modus Ponens · Proc. ACM Program. Lang. 2020
Programming languages and type systems › type systems
subtyping
0.412020
Resolution as intersection subtyping via Modus Ponens · Proc. ACM Program. Lang. 2020
Programming languages and type systems
type systems
0.412020
Resolution as intersection subtyping via Modus Ponens · Proc. ACM Program. Lang. 2020
Compilers and program optimization
runtime representation
0.112021
Efficient compilation of algebraic effect handlers · Proc. ACM Program. Lang. 2021

Methods — techniques the papers use, named apart from their topics

rewrite · 0.5function specialization · 0.5capability-passing style · 0.5coq · 0.4
YearPublicationVenuePosition
2023 No Unification Variable Left Behind: Fully Grounding Type Inference for the HDM System
Roger Bosman, Georgios Karachalias, Tom Schrijvers
ITP2
2021 Efficient compilation of algebraic effect handlers
abstract
The popularity of algebraic effect handlers as a programming language feature for user-defined computational effects is steadily growing. Yet, even though efficient runtime representations have already been studied, most handler-based programs are still much slower than hand-written code. This paper shows that the performance gap can be drastically narrowed (in some cases even closed) by means of type-and-effect directed optimising compilation. Our approach consists of source-to-source transformations in two phases of the compilation pipeline. Firstly, elementary rewrites, aided by judicious function specialisation, exploit the explicit type and effect information of the compiler’s core language to aggressively reduce handler applications. Secondly, after erasing the effect information further rewrites in the backend of the compiler emit tight code. This work comes with a practical implementation: an optimising compiler from Eff, an ML style language with algebraic effect handlers, to OCaml. Experimental evaluation with this implementation demonstrates that in a number of benchmarks, our approach eliminates much of the overhead of handlers, outperforms capability-passing style compilation and yields competitive performance compared to hand-written OCaml code as well Multicore OCaml’s dedicated runtime support.
Georgios Karachalias, Filip Koprivec, Matija Pretnar, Tom Schrijvers
Proc. ACM Program. Lang.1
2020 Explicit effect subtyping
abstract
Abstract As popularity of algebraic effects and handlers increases, so does a demand for their efficient execution. Eff, an ML-like language with native support for handlers, has a subtyping-based effect system on which an effect-aware optimising compiler could be built. Unfortunately, in our experience, implementing optimisations for Eff is overly error-prone because its core language is implicitly typed, making code transformations very fragile. To remedy this, we present an explicitly typed polymorphic core calculus for algebraic effect handlers with a subtyping-based type-and-effect system. It reifies appeals to subtyping in explicit casts with coercions that witness the subtyping proof, quickly exposing typing bugs in program transformations. Our typing-directed elaboration comes with a constraint-based inference algorithm that turns an implicitly typed Eff-like language into our calculus. Moreover, all coercions and effect information can be erased in a straightforward way, demonstrating that coercions have no computational content. Additionally, we present a monadic translation from our calculus into a pure language without algebraic effects or handlers, using the effect information to introduce monadic constructs only where necessary.
Georgios Karachalias, Matija Pretnar, Amr Hany Saleh, Stien Vanderhallen, Tom Schrijvers
J. Funct. Program.1
2020 Resolution as intersection subtyping via Modus Ponens
abstract
Resolution and subtyping are two common mechanisms in programming languages. Resolution is used by features such as type classes or Scala-style implicits to synthesize values automatically from contextual type information. Subtyping is commonly used to automatically convert the type of a value into another compatible type. So far the two mechanisms have been considered independently of each other. This paper shows that, with a small extension, subtyping with intersection types can subsume resolution. This has three main consequences. Firstly, resolution does not need to be implemented as a separate mechanism. Secondly, the interaction between resolution and subtyping becomes apparent. Finally, the integration of resolution into subtyping enables first-class (implicit) environments. The extension that recovers the power of resolution via subtyping is the modus ponens rule of propositional logic. While it is easily added to declarative subtyping, significant care needs to be taken to retain desirable properties, such as transitivity and decidability of algorithmic subtyping, and coherence. To materialize these ideas we develop λiMP, a calculus that extends a iprevious calculus with disjoint intersection types, and develop its metatheory in the Coq theorem prover.
Koar Marntirosian, Tom Schrijvers, Bruno C. d. S. Oliveira, Georgios Karachalias
Proc. ACM Program. Lang.4
2018 Explicit Effect Subtyping
abstract
As popularity of algebraic effects and handlers increases, so does a demand for their efficient execution. Eff, an ML-like language with native support for handlers, has a subtyping-based effect system on which an effect-aware optimizing compiler could be built. Unfortunately, in our experience, implementing optimizations for Eff is overly error-prone because its core language is implicitly-typed, making code transformations very fragile. To remedy this, we present an explicitly-typed polymorphic core calculus for algebraic effect handlers with a subtyping-based type-and-effect system. It reifies appeals to subtyping in explicit casts with coercions that witness the subtyping proof, quickly exposing typing bugs in program transformations. Our typing-directed elaboration comes with a constraint-based inference algorithm that turns an implicitly-typed Eff-like language into our calculus. Moreover, all coercions and effect information can be erased in a straightforward way, demonstrating that coercions have no computational content.
Amr Hany Saleh, Georgios Karachalias, Matija Pretnar, Tom Schrijvers
ESOP2
2017 Quantified class constraints
abstract
Quantified class constraints have been proposed many years ago to raise the expressive power of type classes from Horn clauses to the universal fragment of Hereditiary Harrop logic. Yet, while it has been much asked for over the years, the feature was never implemented or studied in depth. Instead, several workarounds have been proposed, all of which are ultimately stopgap measures.
Gert-Jan Bottu, Georgios Karachalias, Tom Schrijvers, Bruno C. d. S. Oliveira, Philip Wadler
Haskell2
2017 Elaboration on functional dependencies: functional dependencies are dead, long live functional dependencies!
abstract
Functional dependencies are a popular extension to Haskell's type-class system because they provide fine-grained control over type inference, resolve ambiguities and even enable type-level computations.
Georgios Karachalias, Tom Schrijvers
Haskell1
2015 GADTs meet their match: pattern-matching warnings that account for GADTs, guards, and laziness
abstract
For ML and Haskell, accurate warnings when a function definition has redundant or missing patterns are mission critical. But today's compilers generate bogus warnings when the programmer uses guards (even simple ones), GADTs, pattern guards, or view patterns. We give the first algorithm that handles all these cases in a single, uniform framework, together with an implementation in GHC, and evidence of its utility in practice.
Georgios Karachalias, Tom Schrijvers, Dimitrios Vytiniotis, Simon L. Peyton Jones
ICFP1