A Functional Programming Language with Versions

07/15/2021
by   Yudai Tanabe, et al.
0

While modern software development heavily uses versioned packages, programming languages rarely support the concept of versions in their semantics, which makes software updates more bulky and unsafe. This paper proposes a programming language that intrinsically supports versions. The main goals are to design core language features to support multiple versions in one program and establish a proper notion of type safety with those features. The proposed core calculus, called Lambda VL, has versioned values, each containing different values under different versions. We show the construction of the type system as an extension of coeffect calculus by mapping versions to computational resources. The type system guarantees the existence of a valid combination of versions for a program. The calculus enables programming languages to use multiple versions of a package within a program. It will serve as a basis for designing advanced language features like module systems and semantic versioning.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/25/2019

A Calculus for Language Transformations

In this paper we propose a calculus for expressing algorithms for progra...
research
10/15/2020

World Age in Julia: Optimizing Method Dispatch in the Presence of Eval (Extended Version)

Dynamic programming languages face semantic and performance challenges i...
research
05/18/2020

PubSub implementation in Haskell with formal verification in Coq

In the cloud, the technology is used on-demand without the need to insta...
research
09/19/2017

Rbox: an integrated R package for ATOM Editor

R is a programming language and environment that is a central tool in th...
research
07/25/2019

Explicit and Controllable Assignment Semantics

Despite the plethora of powerful software to spot bugs, identify perform...
research
10/31/2011

On the Formal Semantics of Speech-Act Based Communication in an Agent-Oriented Programming Language

Research on agent communication languages has typically taken the speech...
research
04/08/2021

A Proposal for an Interactive Shell Based on a Typed Lambda Calculus

This paper presents Favalon, a functional programming language built on ...

Please sign up or login with your details

Forgot password? Click here to reset