Related publications (201)

Formal Autograding in a Classroom (Experience Report)

Viktor Kuncak, Mario Bucev, Dragana Milovancevic, Samuel Chassot

We report our experience in enhancing automated grading in a functional programming course using formal verification. In our approach, we deploy a verifier for Scala programs to check equivalences between student submissions and reference solutions. Conseq ...
2024

Formal Foundations of Capture Tracking

Aleksander Slawomir Boruch-Gruszecki

Type systems are a device for verifying properties of programs without running them. Many programming languages used in the industry have always had a type system, while others were initially created without a type system and later adopted one, when the ad ...
EPFL2024

Dynamic Linkers Are the Narrow Waist of Operating Systems

Adrien Ghosn, Charly Nicolas Lucien Castes

While software applications, programming languages, and hardware have changed, operating systems have not. Widely-used commodity operating systems are still modeled after the ones designed in the seventies. The accumulated burden of backward compatibility ...
Association for Computing Machinery2023

SiliFish: A desktop application to model swimming behavior in developing zebrafish (Danio rerio)

Yann Roussel

SiliFish is an open-source desktop application tomodel and study zebrafish swimming. Here, we explain how to define the general parameters of the model, define cell populations, place them within the spinal cord, and define their projections. We explain ho ...
Amsterdam2023

Advancing first principle-based molecular dynamics of biological systems with machine learning

François Louis Mouvet

Molecular dynamics (MD) simulations have emerged as a transformative approach to analyse molecular systems at the atomic level, offering valuable insights into complex biological processes. Many biological phenomena can only accurately be described by inco ...
EPFL2023

Object-oriented modelling of advanced computer cooling solutions

David Atienza Alonso, Federico Terraneo

Modern computing systems are so energy- intensive to make efficient cooling vital for their operation. This is giving rise to a variety of innovative cooling solutions based on a mix of traditional and new techniques. The design and engineering of these so ...
Elsevier2023

Type-Level Programming with Match Types

Martin Odersky, Olivier Eric Paul Blanvillain

Type-level programming is becoming more and more popular in the realm of functional programming. However, the combination of type-level programming and subtyping remains largely unexplored in practical programming languages. This paper presents match types ...
ASSOC COMPUTING MACHINERY2022

Abstractions for Type-Level Programming

Olivier Eric Paul Blanvillain

Over the past decade, the Scala community has shown great interest in using type-level programming to obtain additional type safety.Unfortunately, the lack of support from the Scala compiler has been a barrier to the adoption of that technique, notably due ...
EPFL2022

A case for DOT: Theoretical Foundations for Objects with Pattern Matching and GADT-Style Reasoning

Yichen Xu, Lionel Emile Vincent Parreaux, Aleksander Slawomir Boruch-Gruszecki

Many programming languages in the OO tradition now support pattern matching in some form. Historical examples include Scala and Ceylon, with the more recent additions of Java, Kotlin, TypeScript, and Flow. But pattern matching on generic class hierarchies ...
New York2022

Scaling Language Features for Program Verification

Georg Stefan Schmid

Formal verification of real-world software systems remains challenging for a number of reasons, including lack of automation, friction in specifying properties, and limited support for the diverse programming paradigms used in industry. In this thesis we m ...
EPFL2022

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.