Authored

4 records found

Scopes describe frames

A uniform model for memory layout in dynamic semantics

Semantic specifications do not make a systematic connection between the names and scopes in the static structure of a program and memory layout, and access during its execution. In this paper we introduce a systematic approach to the alignment of names in static semantics and mem ...

Hefty Algebras

Modular Elaboration of Higher-Order Algebraic Effects

Algebraic effects and handlers is an increasingly popular approach to programming with effects. An attraction of the approach is its modularity: effectful programs are written against an interface of declared operations, which allows the implementation of these operations to be d ...

Knowing when to ask

Sound scheduling of name resolution in type checkers derived from declarative specifications

There is a large gap between the specification of type systems and the implementation of their type checkers, which impedes reasoning about the soundness of the type checker with respect to the specification. A vision to close this gap is to automatically obtain type checkers fro ...

Scopes Describe Frames

A Uniform Model for Memory Layout in Dynamic Semantics (Artifact)

Our paper introduces a systematic approach to the alignment of names in the static structure of a program, and memory layout and access during its execution. We develop a uniform memory model consisting of frames that instantiate the scopes in the scope graph of a program. This p ...

Contributed

16 records found

FATE

Fuzzing for Adversarial examples in Tree Ensembles

Machine learning models are increasing in popularity and are nowadays used in a wide range of critical applications in fields such as Automotive, Aviation and Medical. Among machine learning models, tree ensemble models are a popular choice due to their competitive performance an ...

Programming With Effects

Improving the quality of code in IO intensive applications through effect handlers

Effect handler orient programming (EHOP) is a recently proposed programming paradigm that aims to provide a high-level abstraction in code. Using this paradigm, programmers are able to define operations as an effect, which are implemented by an effect handler. Functions can then ...

Building Type Checkers Using Scope Graphs

Scope Graph-Based Type Checking for a Scala Subset

This paper investigates the viability of using scope graphs to implement type checkers for programming languages, specifically for a Scala subset. The primary objective is to determine if scope graphs can offer a declarative and extensible approach to type checking. To achieve th ...

Dynamix on the Frame VM

Declarative dynamic semantics on a VM using scopes as frames

Over the years virtual machines (VMs) have been created to abstract over computer hardware. This simplified code generation and allowed for easy portability between hardware platforms. These VMs are however highly tailored to a particular runtime model. This improves the executio ...

Building Type Checker Using Scope Graphs

For a Language with Type Classes

In this paper, we explore scope graphs as a formal model for constructing type checkers for programming languages that support type classes. Type classes provide a powerful mechanism for ad hoc-polymorphism and code reuse. Nevertheless, the incorporation of type classes into type ...

Navigating Repositories

Assessing the Impact of External Repositories on Packages in Maven Central

This paper presents a comprehensive experimental study on the use and impact of external repositories in the Maven ecosystem. For this research the prevalence, naming patterns, and potential risks associated with external repositories were analyzed. We analyzed 199,188 packages a ...

Type-Checking Modules and Imports using Scope Graphs

A Case Study on a Language with Relative, Unordered and Glob Import Semantics

Scope graphs provide a way to type-check real-world programming languages and their constructs. A previous implementation that type-checks the proof-of-concept language LM, a language with relative, unordered, and glob imports, does not halt. This thesis discusses a five-step app ...

Akka Decision Engine

An actor based decision engine on the DMN 1.1 specifications

Decision engines can decide from a certain input what the output should be. This is done in a table with columns for inputs and outputs and rows for a combination of inputs together with its corresponding output. A row is also called a rule. A simple program to decide such a deci ...

Can we extract a relevant, available, and self-contained core of the Maven ecosystem?

Extracting the pillars of the community, and their dependencies.

The Maven ecosystem, with an emphasis on Maven Central, contains a plethora of toy-projects. This paper addresses this problem by formulating a core containing the pillars of the Maven ecosystem, such that it can be exploited for research concerning li- brary quality. The constru ...

SCL-T

Template programming for Siemens SCL

Programmable Logic Controllers (PLCs) are used to control large scale systems with thousands of I/O devices. Writing and maintaining the logic for each of these is a cumbersome task, which is well suited to be abstracted through templating. For this purpose, CERN developed the Un ...

Framing Programming Languages

Designing and Using a Frame-Based Virtual Machine

This thesis introduces the FrameVM virtual machine and the Framed language. This language gives developers a target to compile to which concisely follows the scopes-as-frames model. This model allows language developers to derive the memory model based on the scope graphs. The co ...

Tydi-Chisel

Collaborative and Interface-Driven Data-Streaming Accelerator Design

In spite of progress on hardware design languages, the design of high-performance hardware accelerators forces many design decisions specializing the interfaces of these accelerators in ways that complicate the understanding of the design and hinder modularity and collaboration. ...

Concurrency with effects and handlers

Implementing concurrency with nondeterminism using algebraic effects and handlers

Algebraic effects and handlers are a new paradigm in functional programming. They aim at modularly handling side effects, by separating the declaration of those effects, from how they are handled. In this paper, we show how we can leverage their use to create an interface for con ...
When writing functional code that composes multiple recursive functions that operate on a datastrcuture, we often incur a lot of computational overhead allocating memory, only to later read, use, and discard this information. This can be alleviated using fusion, a technique that ...
When writing functional code that composes multiple recursive functions that operate on a datastrcuture, we often incur a lot of computational overhead allocating memory, only to later read, use, and discard this information. This can be alleviated using fusion, a technique that ...
Inductive Program Synthesis is the problem of generating programs from a set of input-output examples. Since it can be reduced to the search problem in the space of programs, many search algorithms have been successfully applied to it over the years. This paper proposes, develops ...