Related publications (13)

Semantics-preserving inlining for metaprogramming

Martin Odersky, Sébastien Jean R Doeraene, Nicolas Alexander Stucki

Inlining is used in many different ways in programming languages: some languages use it as a compiler-directive solely for optimization, some use it as a metaprogramming feature, and others lay their design in-between. This paper presents inlining through ...
2020

Zippy LL(1) Parsing with Derivatives

Viktor Kuncak, Jad Hamza, Romain Edelmann

In this paper, we present an efficient, functional, and formally verified parsing algorithm for LL(1) context-free expressions based on the concept of derivatives of formal languages. Parsing with derivatives is an elegant parsing technique, which, in the ...
ASSOC COMPUTING MACHINERY2020

Verification by Reduction to Functional Programs

Régis William Blanc

In this thesis, we explore techniques for the development and verification of programs in a high-level, expressive, and safe programming language. Our programs can express problems over unbounded domains and over recursive and mutable data structures. We p ...
EPFL2017

BlitzViews - lazy parallel operations for Scala collections

Martin Odersky, Axel Angel, Dmytro Petrashko

Scala is a powerful language which cur- rently provides a built-in library for non- strict Views with some important shortcom- ings for the users such as unexpected and unintuitive behaviors. In this work we cre- ated a new library, based on Scala Blitz, t ...
2014

Is the Same Instance Type Created Equal? Exploiting Heterogeneity of Public Clouds

Hao Zhuang

Public cloud platforms might start with homogeneous hardware; nevertheless, because of inevitable hardware upgrades, or adding more capacity, the initial homogeneous platform will gradually evolve into heterogeneous as time passes by. The consequent perfor ...
2013

Optimizing Data Structures in High-Level Programs: New Directions for Extensible Compilers based on Staging

Martin Odersky, Tiark Rompf, Nada Amin, Vojin Jovanovic, Manohar Jonnalagedda

High level data structures are a cornerstone of modern programming and at the same time stand in the way of compiler optimizations. In order to reason about user or library defined data structures compilers need to be extensible. Common mechanisms to exten ...
2012

Graph Chatbot

Chat with Graph Search

Ask any question about EPFL courses, lectures, exercises, research, news, etc. or try the example questions below.

DISCLAIMER: The Graph Chatbot is not programmed to provide explicit or categorical answers to your questions. Rather, it transforms your questions into API requests that are distributed across the various IT services officially administered by EPFL. Its purpose is solely to collect and recommend relevant references to content that you can explore to help you answer your questions.