Cargando…

SFJ: An Implementation of Semantic Featherweight Java

There are two approaches to defining subtyping relations: the syntactic and the semantic approach. In semantic subtyping, one defines a model of the language and an interpretation of types as subsets of this model. Subtyping is defined as inclusion of subsets denoting types. An orthogonal subtyping...

Descripción completa

Detalles Bibliográficos
Autores principales: Usov, Artem, Dardha, Ornela
Formato: Online Artículo Texto
Lenguaje:English
Publicado: 2020
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7282842/
http://dx.doi.org/10.1007/978-3-030-50029-0_10
_version_ 1783544200003846144
author Usov, Artem
Dardha, Ornela
author_facet Usov, Artem
Dardha, Ornela
author_sort Usov, Artem
collection PubMed
description There are two approaches to defining subtyping relations: the syntactic and the semantic approach. In semantic subtyping, one defines a model of the language and an interpretation of types as subsets of this model. Subtyping is defined as inclusion of subsets denoting types. An orthogonal subtyping question, typical of object-oriented languages, is the nominal versus the structural subtyping. Dardha et al. [11, 12] defined boolean types and semantic subtyping for Featherweight Java (FJ) and integrated both nominal and structural subtyping, thus exploiting the benefits of both approaches. However, these benefits were illustrated only at a theoretical level, but not exploited practically. We present SFJ—Semantic Featherweight Java, an implementation of FJ which features boolean types, semantic subtyping and integrates nominal as well as structural subtyping. The benefits of SFJ, illustrated in the paper and the accompanying video (with audio/subtitles) [27], show how static type-checking of boolean types and semantic subtyping gives higher guarantees of program correctness, more flexibility and compactness of program writing.
format Online
Article
Text
id pubmed-7282842
institution National Center for Biotechnology Information
language English
publishDate 2020
record_format MEDLINE/PubMed
spelling pubmed-72828422020-06-10 SFJ: An Implementation of Semantic Featherweight Java Usov, Artem Dardha, Ornela Coordination Models and Languages Article There are two approaches to defining subtyping relations: the syntactic and the semantic approach. In semantic subtyping, one defines a model of the language and an interpretation of types as subsets of this model. Subtyping is defined as inclusion of subsets denoting types. An orthogonal subtyping question, typical of object-oriented languages, is the nominal versus the structural subtyping. Dardha et al. [11, 12] defined boolean types and semantic subtyping for Featherweight Java (FJ) and integrated both nominal and structural subtyping, thus exploiting the benefits of both approaches. However, these benefits were illustrated only at a theoretical level, but not exploited practically. We present SFJ—Semantic Featherweight Java, an implementation of FJ which features boolean types, semantic subtyping and integrates nominal as well as structural subtyping. The benefits of SFJ, illustrated in the paper and the accompanying video (with audio/subtitles) [27], show how static type-checking of boolean types and semantic subtyping gives higher guarantees of program correctness, more flexibility and compactness of program writing. 2020-05-13 /pmc/articles/PMC7282842/ http://dx.doi.org/10.1007/978-3-030-50029-0_10 Text en © IFIP International Federation for Information Processing 2020 This article is made available via the PMC Open Access Subset for unrestricted research re-use and secondary analysis in any form or by any means with acknowledgement of the original source. These permissions are granted for the duration of the World Health Organization (WHO) declaration of COVID-19 as a global pandemic.
spellingShingle Article
Usov, Artem
Dardha, Ornela
SFJ: An Implementation of Semantic Featherweight Java
title SFJ: An Implementation of Semantic Featherweight Java
title_full SFJ: An Implementation of Semantic Featherweight Java
title_fullStr SFJ: An Implementation of Semantic Featherweight Java
title_full_unstemmed SFJ: An Implementation of Semantic Featherweight Java
title_short SFJ: An Implementation of Semantic Featherweight Java
title_sort sfj: an implementation of semantic featherweight java
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7282842/
http://dx.doi.org/10.1007/978-3-030-50029-0_10
work_keys_str_mv AT usovartem sfjanimplementationofsemanticfeatherweightjava
AT dardhaornela sfjanimplementationofsemanticfeatherweightjava