Type Checking for Reliable APIs

Maria Kechagia, Diomidis Spinellis

Research output: Chapter in Book/Conference proceedings/Edited volumeConference contributionScientificpeer-review

3 Citations (Scopus)

Abstract

In this paper, we propose to configure at compiletime the checking associated with Application Programming Interfaces' methods that can receive possibly malformed values (e.g. erroneous user inputs and problematic retrieved recordsfrom databases) and thus cause application execution failures. To achieve this, we design a type system for implementing apluggable checker on the Java's compiler and find at compile timeinsufficient checking bugs that can lead to application crashesdue to malformed inputs. Our goal is to wrap methods whenthey receive external inputs so that the former generate checkedinstead of unchecked exceptions. We believe that our approachcan improve Java developers' productivity, by using exceptionhandling only when it is required, and ensure client applications'stability. We want to evaluate our checker by using it to verifythe source code of Java projects from the Apache ecosystem. Also, we want to analyze stack traces to validate the identifiedfailures by our checker.

Original languageEnglish
Title of host publicationProceedings - 2017 IEEE/ACM 1st International Workshop on API Usage and Evolution, WAPI 2017
PublisherIEEE
Pages15-18
Number of pages4
ISBN (Electronic)9781538628058
DOIs
Publication statusPublished - 30 Jun 2017
Externally publishedYes
Event1st IEEE/ACM International Workshop on API Usage and Evolution, WAPI 2017 - Buenos Aires, Argentina
Duration: 23 May 2017 → …

Publication series

NameProceedings - 2017 IEEE/ACM 1st International Workshop on API Usage and Evolution, WAPI 2017

Conference

Conference1st IEEE/ACM International Workshop on API Usage and Evolution, WAPI 2017
Country/TerritoryArgentina
CityBuenos Aires
Period23/05/17 → …

Keywords

  • application programming interfaces
  • exceptions
  • type systems

Fingerprint

Dive into the research topics of 'Type Checking for Reliable APIs'. Together they form a unique fingerprint.

Cite this