Behavioural Types for Memory and Method Safety in a Core Object-Oriented Language

02/28/2020
by   Mario Bravetti, et al.
0

We present a type-based analysis ensuring memory safety and object protocol completion in the Java-like language Mungo. Objects are annotated with usages, typestates-like specifications of the admissible sequences of method calls. The analysis entwines usage checking, controlling the order in which methods are called, with a static check determining whether references may contain null values. The analysis prevents null pointer dereferencing and memory leaks and ensures that the intended usage protocol of every object is respected and completed. The type system has been implemented in the form of a type checker.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/12/2022

On using VeriFast, VerCors, Plural, and KeY to check object usage

Typestates are a notion of behavioral types that describe protocols for ...
research
05/10/2022

The Move Borrow Checker

The Move language provides abstractions for programming with digital ass...
research
02/23/2018

Stateful Behavioral Types for ABS

It is notoriously hard to correctly implement a multiparty protocol whic...
research
12/09/2018

Practical Optional Types for Clojure

Typed Clojure is an optional type system for Clojure, a dynamic language...
research
01/23/2019

Safely Abstracting Memory Layouts

Modern architectures require applications to make effective use of cache...
research
09/17/2020

Typestates to Automata and back: a tool

Development of software is an iterative process. Graphical tools to repr...
research
05/02/2022

Rusty Links in Local Chains

Rust successfully applies ownership types to control memory allocation. ...

Please sign up or login with your details

Forgot password? Click here to reset