<?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 hal-01116289</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-17T08:10:56+02:00"/>
      </publicationStmt>
      <sourceDesc>
        <p part="N">HAL API Platform</p>
      </sourceDesc>
    </fileDesc>
  </teiHeader>
  <text>
    <body>
      <listBibl>
        <biblFull>
          <titleStmt>
            <title xml:lang="en">Efficient compilation strategy for object-oriented languages under the closed-world assumption.</title>
            <author role="aut">
              <persName>
                <forename type="first">Benoit</forename>
                <surname>Sonntag</surname>
              </persName>
              <idno type="halauthorid">167919-0</idno>
              <affiliation ref="#struct-93775"/>
            </author>
            <author role="aut">
              <persName>
                <forename type="first">Dominique</forename>
                <surname>Colnet</surname>
              </persName>
              <email type="md5">25f80f1628872db935b0c31f607e4f12</email>
              <email type="domain">loria.fr</email>
              <idno type="idhal" notation="numeric">833559</idno>
              <idno type="halauthorid" notation="string">143744-833559</idno>
              <affiliation ref="#struct-54311"/>
            </author>
            <editor role="depositor">
              <persName>
                <forename>Dominique</forename>
                <surname>Colnet</surname>
              </persName>
              <email type="md5">25f80f1628872db935b0c31f607e4f12</email>
              <email type="domain">loria.fr</email>
            </editor>
          </titleStmt>
          <editionStmt>
            <edition n="v1" type="current">
              <date type="whenSubmitted">2015-02-13 08:45:49</date>
              <date type="whenModified">2025-11-04 11:58:23</date>
              <date type="whenReleased">2015-02-13 08:45:49</date>
              <date type="whenProduced">2013</date>
              <ref type="externalLink" target="https://api.istex.fr/ark:/67375/WNG-ZHM51V0K-T/fulltext.pdf?sid=hal"/>
            </edition>
            <respStmt>
              <resp>contributor</resp>
              <name key="137902">
                <persName>
                  <forename>Dominique</forename>
                  <surname>Colnet</surname>
                </persName>
                <email type="md5">25f80f1628872db935b0c31f607e4f12</email>
                <email type="domain">loria.fr</email>
              </name>
            </respStmt>
          </editionStmt>
          <publicationStmt>
            <distributor>CCSD</distributor>
            <idno type="halId">hal-01116289</idno>
            <idno type="halUri">https://hal.science/hal-01116289</idno>
            <idno type="halBibtex">sonntag:hal-01116289</idno>
            <idno type="halRefHtml">&lt;i&gt;Software: Practice and Experience&lt;/i&gt;, 2013, 44 (5), pp.565-592. &lt;a target="_blank" href="https://dx.doi.org/10.1002/spe.2174"&gt;&amp;#x27E8;10.1002/spe.2174&amp;#x27E9;&lt;/a&gt;</idno>
            <idno type="halRef">Software: Practice and Experience, 2013, 44 (5), pp.565-592. &amp;#x27E8;10.1002/spe.2174&amp;#x27E9;</idno>
            <availability status="restricted"/>
          </publicationStmt>
          <seriesStmt>
            <idno type="stamp" n="CNRS">CNRS - Centre national de la recherche scientifique</idno>
            <idno type="stamp" n="INPL">Institut National Polytechnique de Lorraine</idno>
            <idno type="stamp" n="UNIV-STRASBG">Université de Strasbourg</idno>
            <idno type="stamp" n="LABO-LORIA-SET">LABO-LORIA-SET</idno>
            <idno type="stamp" n="LORIA2">Publications du LORIA</idno>
            <idno type="stamp" n="UNIV-LORRAINE">Université de Lorraine</idno>
            <idno type="stamp" n="LORIA">Laboratoire Lorrain de Recherche en Informatique et ses Applications</idno>
            <idno type="stamp" n="SITE-ALSACE">Archive ouverte du site Alsace</idno>
            <idno type="stamp" n="UNIVOAK">UNIVOAK</idno>
            <idno type="stamp" n="AM2I-UL">Pôle scientifique Automatique, Mathématiques, Informatique et leurs Intéractions de l'Université de Lorraine</idno>
          </seriesStmt>
          <notesStmt>
            <note type="audience" n="2">International</note>
            <note type="popular" n="0">No</note>
            <note type="peer" n="1">Yes</note>
          </notesStmt>
          <sourceDesc>
            <biblStruct>
              <analytic>
                <title xml:lang="en">Efficient compilation strategy for object-oriented languages under the closed-world assumption.</title>
                <author role="aut">
                  <persName>
                    <forename type="first">Benoit</forename>
                    <surname>Sonntag</surname>
                  </persName>
                  <idno type="halauthorid">167919-0</idno>
                  <affiliation ref="#struct-93775"/>
                </author>
                <author role="aut">
                  <persName>
                    <forename type="first">Dominique</forename>
                    <surname>Colnet</surname>
                  </persName>
                  <email type="md5">25f80f1628872db935b0c31f607e4f12</email>
                  <email type="domain">loria.fr</email>
                  <idno type="idhal" notation="numeric">833559</idno>
                  <idno type="halauthorid" notation="string">143744-833559</idno>
                  <affiliation ref="#struct-54311"/>
                </author>
              </analytic>
              <monogr>
                <idno type="halJournalId" status="VALID">8571</idno>
                <idno type="issn">0038-0644</idno>
                <idno type="eissn">1097-024X</idno>
                <title level="j">Software: Practice and Experience</title>
                <imprint>
                  <publisher>Wiley</publisher>
                  <biblScope unit="volume">44</biblScope>
                  <biblScope unit="issue">5</biblScope>
                  <biblScope unit="pp">565-592</biblScope>
                  <date type="datePub">2013</date>
                  <date type="dateEpub">2012-11-26</date>
                </imprint>
              </monogr>
              <idno type="doi">10.1002/spe.2174</idno>
            </biblStruct>
          </sourceDesc>
          <profileDesc>
            <langUsage>
              <language ident="en">English</language>
            </langUsage>
            <textClass>
              <classCode scheme="halDomain" n="info.info-se">Computer Science [cs]/Software Engineering [cs.SE]</classCode>
              <classCode scheme="halDomain" n="info.info-pl">Computer Science [cs]/Programming Languages [cs.PL]</classCode>
              <classCode scheme="halDomain" n="info.info-cl">Computer Science [cs]/Computation and Language [cs.CL]</classCode>
              <classCode scheme="halTypology" n="ART">Journal articles</classCode>
              <classCode scheme="halOldTypology" n="ART">Journal articles</classCode>
              <classCode scheme="halTreeTypology" n="ART">Journal articles</classCode>
            </textClass>
            <abstract xml:lang="en">
              <p>Reaching the best level of runtime performance from a high-level,object-oriented language is often considered challenging if not unattainable. The closed world assumption involves considering all of the source code of an application together at compile-time.That assumption makes it possible to produce an efficient code.For instance, multiple inheritance can be implemented as efficientlyas single inheritance.Our compilation strategy is the result of a prolonged project, tyingtogether several compilation techniques:call graph analysis,dead code elimination,type flow analysis,code customization,implementation of dynamic dispatch,inlining,pointer optimization,switch optimization,objects layout, etc.Merging all of these techniques into a global strategy appears to be quite problematic.Throughout the paper two real-world compilers are used as benchmarks to provide measurements for compiler-writers in order to evaluate the applicabilityof our approach.Type flow analysis is a fundamental aspect of our strategy toresolve method calls.We have extended type flow analysis to deal with the content of arrays,enabling us to process additional expressions and thus making it possible to obtain a true global analysis.Typically more than 90\% of method call sites are statically resolved.Our experience indicates that the closed world assumption is suitable for numerous applications.Surprisingly, even library-defined control statements from dynamic languages are perfectly processed with our strategy.The Smalltalk ifTrue:ifFalse:,whileTrue:,to:do:, etc.are, for the very first time, perfectly translated.</p>
            </abstract>
          </profileDesc>
        </biblFull>
      </listBibl>
    </body>
    <back>
      <listOrg type="structures">
        <org type="laboratory" xml:id="struct-93775" status="OLD">
          <orgName>Laboratoire des Sciences de l'Image, de l'Informatique et de la Télédétection</orgName>
          <orgName type="acronym">LSIIT</orgName>
          <desc>
            <address>
              <addrLine>Pole API Bd Sebastien Brant BP 10413 67412 Illkirch CEDEX</addrLine>
              <country key="FR"/>
            </address>
            <ref type="url">http://lsiit.u-strasbg.fr/</ref>
          </desc>
          <listRelation>
            <relation active="#struct-199013" type="direct"/>
            <relation name="UMR7005" active="#struct-441569" type="direct"/>
          </listRelation>
        </org>
        <org type="researchteam" xml:id="struct-54311" status="OLD">
          <orgName>Knowledge Information and Web Intelligence</orgName>
          <orgName type="acronym">KIWI</orgName>
          <desc>
            <address>
              <country key="FR"/>
            </address>
            <ref type="url">http://www.loria.fr/la-recherche/equipes/kiwi</ref>
          </desc>
          <listRelation>
            <relation active="#struct-466633" type="direct"/>
            <relation active="#struct-300009" type="indirect"/>
            <relation active="#struct-300291" type="indirect"/>
            <relation active="#struct-300292" type="indirect"/>
            <relation active="#struct-300293" type="indirect"/>
            <relation name="UMR7503" active="#struct-441569" type="indirect"/>
          </listRelation>
        </org>
        <org type="institution" xml:id="struct-199013" status="VALID">
          <idno type="IdRef">131056549</idno>
          <idno type="ROR">https://ror.org/00pg6eq24</idno>
          <orgName>Université de Strasbourg</orgName>
          <orgName type="acronym">UNISTRA</orgName>
          <desc>
            <address>
              <addrLine>4 rue Blaise Pascal - CS 90032 - 67081 Strasbourg cedex</addrLine>
              <country key="FR"/>
            </address>
            <ref type="url">https://www.unistra.fr/</ref>
          </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>
        <org type="laboratory" xml:id="struct-466633" status="OLD">
          <orgName>Laboratoire Lorrain de Recherche en Informatique et ses Applications</orgName>
          <orgName type="acronym">LORIA</orgName>
          <date type="start">1997-01-01</date>
          <date type="end">2011-12-31</date>
          <desc>
            <address>
              <addrLine>Campus Scientifique BP 239 54506 Vandoeuvre-lès-Nancy Cedex</addrLine>
              <country key="FR"/>
            </address>
            <ref type="url">http://www.loria.fr</ref>
          </desc>
          <listRelation>
            <relation active="#struct-300009" type="direct"/>
            <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="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>
      </listOrg>
    </back>
  </text>
</TEI>