<?xml version="1.0" encoding="utf-8"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hal="http://hal.archives-ouvertes.fr/" xmlns:gml="http://www.opengis.net/gml/3.3/" xmlns:gmlce="http://www.opengis.net/gml/3.3/ce" version="1.1" xsi:schemaLocation="http://www.tei-c.org/ns/1.0 http://api.archives-ouvertes.fr/documents/aofr-sword.xsd">
  <teiHeader>
    <fileDesc>
      <titleStmt>
        <title>HAL TEI export of inria-00070751</title>
      </titleStmt>
      <publicationStmt>
        <distributor>CCSD</distributor>
        <availability status="restricted">
          <licence target="https://creativecommons.org/publicdomain/zero/1.0/">CC0 1.0 - Universal</licence>
        </availability>
        <date when="2026-05-04T10:15:54+02:00"/>
      </publicationStmt>
      <sourceDesc>
        <p part="N">HAL API Platform</p>
      </sourceDesc>
    </fileDesc>
  </teiHeader>
  <text>
    <body>
      <listBibl>
        <biblFull>
          <titleStmt>
            <title xml:lang="en">Featherweight-Trait Java : A Trait-based Extension for FJ</title>
            <author role="aut">
              <persName>
                <forename type="first">Luigi</forename>
                <surname>Liquori</surname>
              </persName>
              <email type="md5">74cf46b76aa65eb896b8d9e25d99b9e3</email>
              <email type="domain">inria.fr</email>
              <ptr type="url" target="http://www-sop.inria.fr/members/Luigi.Liquori"/>
              <idno type="idhal" notation="string">lliquori</idno>
              <idno type="idhal" notation="numeric">3358</idno>
              <idno type="halauthorid" notation="string">2695-3358</idno>
              <idno type="ORCID">https://orcid.org/0000-0003-3961-4205</idno>
              <idno type="GOOGLE SCHOLAR">https://scholar.google.it/citations?user=MSL6qC8AAAAJ&amp;hl=en</idno>
              <idno type="IDREF">https://www.idref.fr/172479797</idno>
              <affiliation ref="#struct-83586"/>
              <affiliation ref="#struct-2488"/>
            </author>
            <author role="aut">
              <persName>
                <forename type="first">Arnaud</forename>
                <surname>Spiwack</surname>
              </persName>
              <email type="md5">e565d0bdd3a1d7423dececf2932c73e4</email>
              <email type="domain">spiwack.net</email>
              <idno type="idhal" notation="string">arnaud-spiwack</idno>
              <idno type="idhal" notation="numeric">1886</idno>
              <idno type="halauthorid" notation="string">9655-1886</idno>
              <idno type="ARXIV">https://arxiv.org/a/spiwack_a_1</idno>
              <idno type="IDREF">https://www.idref.fr/154084247</idno>
              <affiliation ref="#struct-2488"/>
            </author>
            <editor role="depositor">
              <persName>
                <forename>Rapport De Recherche</forename>
                <surname>Inria</surname>
              </persName>
              <email type="md5">5abb5e81fa75e038ad4538c1220f4652</email>
              <email type="domain">inria.fr</email>
            </editor>
          </titleStmt>
          <editionStmt>
            <edition n="v1" type="current">
              <date type="whenSubmitted">2006-05-19 21:30:33</date>
              <date type="whenWritten">2004</date>
              <date type="whenModified">2025-08-26 15:21:01</date>
              <date type="whenReleased">2006-05-31 14:24:25</date>
              <date type="whenProduced">2004</date>
              <date type="whenEndEmbargoed">2006-05-19</date>
              <ref type="file" target="https://inria.hal.science/inria-00070751v1/document">
                <date notBefore="2006-05-19"/>
              </ref>
              <ref type="file" n="1" target="https://inria.hal.science/inria-00070751v1/file/RR-5247.pdf" id="file-70751-674258">
                <date notBefore="2006-05-19"/>
              </ref>
            </edition>
            <respStmt>
              <resp>contributor</resp>
              <name key="111068">
                <persName>
                  <forename>Rapport De Recherche</forename>
                  <surname>Inria</surname>
                </persName>
                <email type="md5">5abb5e81fa75e038ad4538c1220f4652</email>
                <email type="domain">inria.fr</email>
              </name>
            </respStmt>
          </editionStmt>
          <publicationStmt>
            <distributor>CCSD</distributor>
            <idno type="halId">inria-00070751</idno>
            <idno type="halUri">https://inria.hal.science/inria-00070751</idno>
            <idno type="halBibtex">liquori:inria-00070751</idno>
            <idno type="halRefHtml">[Research Report] RR-5247, INRIA Sophia Antipolis - Méditerranée; INRIA. 2004, pp.27</idno>
            <idno type="halRef">[Research Report] RR-5247, INRIA Sophia Antipolis - Méditerranée; INRIA. 2004, pp.27</idno>
            <availability status="restricted">
              <licence target="https://about.hal.science/hal-authorisation-v1/">HAL Authorization<ref corresp="#file-70751-674258"/></licence>
            </availability>
          </publicationStmt>
          <seriesStmt>
            <idno type="stamp" n="CNRS">CNRS - Centre national de la recherche scientifique</idno>
            <idno type="stamp" n="INRIA">INRIA - Institut National de Recherche en Informatique et en Automatique</idno>
            <idno type="stamp" n="INPL">Institut National Polytechnique de Lorraine</idno>
            <idno type="stamp" n="INRIA-SOPHIA">INRIA Sophia Antipolis - Méditerranée</idno>
            <idno type="stamp" n="INRIA-RRRT">Rapports de recherche et Technique de l'Inria</idno>
            <idno type="stamp" n="INRIASO">INRIA-SOPHIA</idno>
            <idno type="stamp" n="INRIA_TEST">INRIA - Institut National de Recherche en Informatique et en Automatique</idno>
            <idno type="stamp" n="LORIA2">Publications du LORIA</idno>
            <idno type="stamp" n="TESTALAIN1">TESTALAIN1</idno>
            <idno type="stamp" n="UNIV-LORRAINE">Université de Lorraine</idno>
            <idno type="stamp" n="INRIA2">INRIA 2</idno>
            <idno type="stamp" n="LARA">LARA</idno>
            <idno type="stamp" n="UNIV-COTEDAZUR">Université Côte d'Azur</idno>
          </seriesStmt>
          <notesStmt>
            <note type="report" n="6">Research Report</note>
          </notesStmt>
          <sourceDesc>
            <biblStruct>
              <analytic>
                <title xml:lang="en">Featherweight-Trait Java : A Trait-based Extension for FJ</title>
                <author role="aut">
                  <persName>
                    <forename type="first">Luigi</forename>
                    <surname>Liquori</surname>
                  </persName>
                  <email type="md5">74cf46b76aa65eb896b8d9e25d99b9e3</email>
                  <email type="domain">inria.fr</email>
                  <ptr type="url" target="http://www-sop.inria.fr/members/Luigi.Liquori"/>
                  <idno type="idhal" notation="string">lliquori</idno>
                  <idno type="idhal" notation="numeric">3358</idno>
                  <idno type="halauthorid" notation="string">2695-3358</idno>
                  <idno type="ORCID">https://orcid.org/0000-0003-3961-4205</idno>
                  <idno type="GOOGLE SCHOLAR">https://scholar.google.it/citations?user=MSL6qC8AAAAJ&amp;hl=en</idno>
                  <idno type="IDREF">https://www.idref.fr/172479797</idno>
                  <affiliation ref="#struct-83586"/>
                  <affiliation ref="#struct-2488"/>
                </author>
                <author role="aut">
                  <persName>
                    <forename type="first">Arnaud</forename>
                    <surname>Spiwack</surname>
                  </persName>
                  <email type="md5">e565d0bdd3a1d7423dececf2932c73e4</email>
                  <email type="domain">spiwack.net</email>
                  <idno type="idhal" notation="string">arnaud-spiwack</idno>
                  <idno type="idhal" notation="numeric">1886</idno>
                  <idno type="halauthorid" notation="string">9655-1886</idno>
                  <idno type="ARXIV">https://arxiv.org/a/spiwack_a_1</idno>
                  <idno type="IDREF">https://www.idref.fr/154084247</idno>
                  <affiliation ref="#struct-2488"/>
                </author>
              </analytic>
              <monogr>
                <idno type="reportNumber">RR-5247</idno>
                <imprint>
                  <biblScope unit="pp">27</biblScope>
                  <date type="datePub">2004</date>
                </imprint>
                <authority type="institution">INRIA Sophia Antipolis - Méditerranée</authority>
                <authority type="institution">INRIA</authority>
              </monogr>
              <relatedItem target="https://inria.hal.science/inria-00432538v1" type="IsVersionOf" subtype="http://purl.org/coar/resource_type/c_6501"/>
            </biblStruct>
          </sourceDesc>
          <profileDesc>
            <langUsage>
              <language ident="en">English</language>
            </langUsage>
            <textClass>
              <keywords scheme="author">
                <term xml:lang="en">objects</term>
                <term xml:lang="en">traits</term>
                <term xml:lang="en">language design and implementation</term>
                <term xml:lang="en">theoretical foundations</term>
                <term xml:lang="en">multiple inheritance</term>
                <term xml:lang="en">types</term>
              </keywords>
              <classCode scheme="halDomain" n="info.info-cl">Computer Science [cs]/Computation and Language [cs.CL]</classCode>
              <classCode scheme="halDomain" n="info.info-lo">Computer Science [cs]/Logic in Computer Science [cs.LO]</classCode>
              <classCode scheme="halTypology" n="REPORT">Reports</classCode>
              <classCode scheme="halOldTypology" n="REPORT">Reports</classCode>
              <classCode scheme="halTreeTypology" n="REPORT.RESREPORT">Reports - Research report</classCode>
            </textClass>
            <abstract xml:lang="en">
              <p>In the context of statically typed class-based languages, we investigate classes which might extend upon trait composition. Building classes by composing method-clusters is a well-known technique in implementing object- and class-based languages with simple inheritance, that has been explored in an untyped setting as a first-class mechanism available to the user only recently. This paper presents Featherweight-Trait Java (FTJ), a conservative extension of Featherweight Java (FJ), a simple light-weight class-based calculus take off with statically typed traits. In FTJ, classes can be built using traits as a basic behavioral brick; every trait contains only behavior and no state. Method conflicts between traits must be resolved explicitly by the user either (1) by aliasing or excluding method names, or (2) overriding explicitly in the class. A special emphasis has been put on dealing with "diamond'' conflict, a classical issue playing with multiple inheritance. That makes a kind of multiple inheritance not only possible but simple. As such, FTJ is as a proper extension of FJ. We present a new operational semantics with a new dynamic lookup algorithm, and a new sound type system that guarantees that evaluating a well-typed expression never yields a "message not understood'' run-time error nor get the interpreter stuck. We give an example which illustrates the increased expressive power of the typed trait-based (multiple inheritance) model of FTJ with respect to the classical (single inheritance) typed class-based one of FJ. The resulting calculus appears to be a good starting point for a rigorous mathematical analysis of typed trait-based languages, and a novel paradigm for typed trait-oriented programming.</p>
            </abstract>
          </profileDesc>
        </biblFull>
      </listBibl>
    </body>
    <back>
      <listOrg type="structures">
        <org type="researchteam" xml:id="struct-83586" status="OLD">
          <idno type="RNSR">200821183V</idno>
          <orgName>Logical Networks: Self-organizing Overlay Networks and Programmable Overlay Computing Systems</orgName>
          <orgName type="acronym">LOGNET</orgName>
          <desc>
            <address>
              <addrLine>2004 Route des Lucioles BP 93 06902 Sophia Antipolis Cedex</addrLine>
              <country key="FR"/>
            </address>
            <ref type="url">http://www.inria.fr/recherche/equipes/lognet.fr.html</ref>
          </desc>
          <listRelation>
            <relation active="#struct-34586" type="direct"/>
            <relation active="#struct-300009" type="indirect"/>
          </listRelation>
        </org>
        <org type="researchteam" xml:id="struct-2488" status="OLD">
          <idno type="RNSR">200321490A</idno>
          <orgName>Objects, types and prototypes : semantics and validation</orgName>
          <orgName type="acronym">MIRHO</orgName>
          <desc>
            <address>
              <country key="FR"/>
            </address>
          </desc>
          <listRelation>
            <relation active="#struct-34586" type="direct"/>
            <relation active="#struct-300009" type="indirect"/>
            <relation active="#struct-300291" type="direct"/>
            <relation active="#struct-300292" type="direct"/>
            <relation active="#struct-300293" type="direct"/>
            <relation name="UMR7503" active="#struct-441569" type="direct"/>
          </listRelation>
        </org>
        <org type="laboratory" xml:id="struct-34586" status="VALID">
          <idno type="RNSR">198318250R</idno>
          <idno type="ROR">https://ror.org/01nzkaw91</idno>
          <orgName>Centre Inria d'Université Côte d'Azur</orgName>
          <desc>
            <address>
              <addrLine>2004 route des Lucioles BP 93 06902 Sophia Antipolis</addrLine>
              <country key="FR"/>
            </address>
            <ref type="url">http://www.inria.fr/centre/sophia/</ref>
          </desc>
          <listRelation>
            <relation active="#struct-300009" type="direct"/>
          </listRelation>
        </org>
        <org type="institution" xml:id="struct-300009" status="VALID">
          <idno type="ROR">https://ror.org/02kvxyf05</idno>
          <orgName>Institut National de Recherche en Informatique et en Automatique</orgName>
          <orgName type="acronym">Inria</orgName>
          <desc>
            <address>
              <addrLine>Domaine de VoluceauRocquencourt - BP 10578153 Le Chesnay Cedex</addrLine>
              <country key="FR"/>
            </address>
            <ref type="url">http://www.inria.fr/en/</ref>
          </desc>
        </org>
        <org type="institution" xml:id="struct-300291" status="OLD">
          <orgName>Université Henri Poincaré - Nancy 1</orgName>
          <orgName type="acronym">UHP</orgName>
          <date type="end">2011-12-31</date>
          <desc>
            <address>
              <addrLine>24-30 rue Lionnois, BP 60120, 54 003 NANCY cedex, France</addrLine>
              <country key="FR"/>
            </address>
          </desc>
        </org>
        <org type="institution" xml:id="struct-300292" status="OLD">
          <orgName>Université Nancy 2</orgName>
          <date type="end">2011-12-31</date>
          <desc>
            <address>
              <addrLine>91 avenue de la Libération, BP 454, 54001 Nancy cedex</addrLine>
              <country key="FR"/>
            </address>
          </desc>
        </org>
        <org type="institution" xml:id="struct-300293" status="OLD">
          <orgName>Institut National Polytechnique de Lorraine</orgName>
          <orgName type="acronym">INPL</orgName>
          <date type="end">2011-12-31</date>
          <desc>
            <address>
              <country key="FR"/>
            </address>
          </desc>
        </org>
        <org type="regroupinstitution" xml:id="struct-441569" status="VALID">
          <idno type="IdRef">02636817X</idno>
          <idno type="ISNI">0000000122597504</idno>
          <idno type="ROR">https://ror.org/02feahw73</idno>
          <orgName>Centre National de la Recherche Scientifique</orgName>
          <orgName type="acronym">CNRS</orgName>
          <date type="start">1939-10-19</date>
          <desc>
            <address>
              <country key="FR"/>
            </address>
            <ref type="url">https://www.cnrs.fr/</ref>
          </desc>
        </org>
      </listOrg>
    </back>
  </text>
</TEI>