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

Mario Bravetti, Adrian Francalanza, Iaroslav Golovanov, Hans Hüttel, Mathias S. Jakobsen, Mikkel K. Kettunen, António Ravara*

*Corresponding author for this work

Research output: Contribution to book/anthology/report/conference proceedingArticle in proceedingResearchpeer-review

5 Citations (Scopus)

Abstract

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. It prevents null pointer dereferencing in a typestate-aware manner and memory leaks and ensures that the intended usage protocol of every object is respected and completed. The type system admits an algorithm that infers the most general usage with respect to a simulation preorder. The type system is implemented in the form of a type checker and a usage inference tool.

Original languageEnglish
Title of host publicationProgramming Languages and Systems - 18th Asian Symposium, APLAS 2020, Proceedings
EditorsBruno C. Oliveira
Number of pages20
PublisherSpringer
Publication date2020
Pages105-124
ISBN (Print)978-3-030-64436-9
ISBN (Electronic)978-3-030-64437-6
DOIs
Publication statusPublished - 2020
Event18th Asian Symposium on Programming Languages and Systems, APLAS 2020 - Fukuoka, Japan
Duration: 30 Nov 20202 Dec 2020

Conference

Conference18th Asian Symposium on Programming Languages and Systems, APLAS 2020
Country/TerritoryJapan
CityFukuoka
Period30/11/202002/12/2020
SeriesLecture Notes in Computer Science
Volume12470
ISSN0302-9743

Fingerprint

Dive into the research topics of 'Behavioural Types for Memory and Method Safety in a Core Object-Oriented Language'. Together they form a unique fingerprint.

Cite this