JavaGI: The Interaction of Type Classes with Interfaces and Inheritance.

Gespeichert in:
Bibliographische Detailangaben
Titel: JavaGI: The Interaction of Type Classes with Interfaces and Inheritance.
Autoren: Wehr, Stefan, Thiemann, Peter
Quelle: ACM Transactions on Programming Languages & Systems; Jul2011, Vol. 33 Issue 4, p12:1-12:83, 83p
Schlagwörter: JAVA programming language, COMPUTER interfaces, BINARY-coded decimal system, COMPILERS (Computer programs), CODE generators, COMPUTER software
Abstract: The language JavaGI extends Java 1.5 conservatively by a generalized interface mechanism. The generalization subsumes retroactive and type-conditional interface implementations, binary methods, symmetric multiple dispatch, interfaces over families of types, and static interface methods. These features make certain coding patterns redundant, increase the expressiveness of the type system, and permit solutions to extension and integration problems with components in binary form, for which previously several unrelated extensions had been suggested. This article explains JavaGI and motivates its design. Moreover, it formalizes a core calculus for JavaGI and proves type soundness, decidability of typechecking, and determinacy of evaluation. The article also presents the implementation of a JavaGI compiler and an accompanying run-time system. The compiler, based on the Eclipse Compiler for Java, offers mostly modular static typechecking and fully modular code generation. It defers certain well-formedness checks until load time to increase flexibility and to enable full support for dynamic loading. Benchmarks show that the code generated by the compiler offers good performance. Several case studies demonstrate the practical utility of the language and its implementation. [ABSTRACT FROM AUTHOR]
Copyright of ACM Transactions on Programming Languages & Systems is the property of Association for Computing Machinery and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Datenbank: Complementary Index
FullText Text:
  Availability: 0
CustomLinks:
  – Url: https://resolver.ebscohost.com/openurl?sid=EBSCO:edb&genre=article&issn=01640925&ISBN=&volume=33&issue=4&date=20110701&spage=12%3A1&pages=&title=ACM Transactions on Programming Languages & Systems&atitle=JavaGI%3A%20The%20Interaction%20of%20Type%20Classes%20with%20Interfaces%20and%20Inheritance.&aulast=Wehr%2C%20Stefan&id=DOI:10.1145/1985342.1985343
    Name: Full Text Finder
    Category: fullText
    Text: Full Text Finder
    Icon: https://imageserver.ebscohost.com/branding/images/FTF.gif
    MouseOverText: Full Text Finder
  – Url: https://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=EBSCO&SrcAuth=EBSCO&DestApp=WOS&ServiceName=TransferToWoS&DestLinkType=GeneralSearchSummary&Func=Links&author=Wehr%20S
    Name: ISI
    Category: fullText
    Text: Nájsť tento článok vo Web of Science
    Icon: https://imagesrvr.epnet.com/ls/20docs.gif
    MouseOverText: Nájsť tento článok vo Web of Science
Header DbId: edb
DbLabel: Complementary Index
An: 63992002
RelevancyScore: 834
AccessLevel: 6
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 834.055297851563
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: JavaGI: The Interaction of Type Classes with Interfaces and Inheritance.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Wehr%2C+Stefan%22">Wehr, Stefan</searchLink><br /><searchLink fieldCode="AR" term="%22Thiemann%2C+Peter%22">Thiemann, Peter</searchLink>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: ACM Transactions on Programming Languages & Systems; Jul2011, Vol. 33 Issue 4, p12:1-12:83, 83p
– Name: Subject
  Label: Subject Terms
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22JAVA+programming+language%22">JAVA programming language</searchLink><br /><searchLink fieldCode="DE" term="%22COMPUTER+interfaces%22">COMPUTER interfaces</searchLink><br /><searchLink fieldCode="DE" term="%22BINARY-coded+decimal+system%22">BINARY-coded decimal system</searchLink><br /><searchLink fieldCode="DE" term="%22COMPILERS+%28Computer+programs%29%22">COMPILERS (Computer programs)</searchLink><br /><searchLink fieldCode="DE" term="%22CODE+generators%22">CODE generators</searchLink><br /><searchLink fieldCode="DE" term="%22COMPUTER+software%22">COMPUTER software</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: The language JavaGI extends Java 1.5 conservatively by a generalized interface mechanism. The generalization subsumes retroactive and type-conditional interface implementations, binary methods, symmetric multiple dispatch, interfaces over families of types, and static interface methods. These features make certain coding patterns redundant, increase the expressiveness of the type system, and permit solutions to extension and integration problems with components in binary form, for which previously several unrelated extensions had been suggested. This article explains JavaGI and motivates its design. Moreover, it formalizes a core calculus for JavaGI and proves type soundness, decidability of typechecking, and determinacy of evaluation. The article also presents the implementation of a JavaGI compiler and an accompanying run-time system. The compiler, based on the Eclipse Compiler for Java, offers mostly modular static typechecking and fully modular code generation. It defers certain well-formedness checks until load time to increase flexibility and to enable full support for dynamic loading. Benchmarks show that the code generated by the compiler offers good performance. Several case studies demonstrate the practical utility of the language and its implementation. [ABSTRACT FROM AUTHOR]
– Name: Abstract
  Label:
  Group: Ab
  Data: <i>Copyright of ACM Transactions on Programming Languages & Systems is the property of Association for Computing Machinery and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.)
PLink https://erproxy.cvtisr.sk/sfx/access?url=https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edb&AN=63992002
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1145/1985342.1985343
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 83
        StartPage: 12:1
    Subjects:
      – SubjectFull: JAVA programming language
        Type: general
      – SubjectFull: COMPUTER interfaces
        Type: general
      – SubjectFull: BINARY-coded decimal system
        Type: general
      – SubjectFull: COMPILERS (Computer programs)
        Type: general
      – SubjectFull: CODE generators
        Type: general
      – SubjectFull: COMPUTER software
        Type: general
    Titles:
      – TitleFull: JavaGI: The Interaction of Type Classes with Interfaces and Inheritance.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Wehr, Stefan
      – PersonEntity:
          Name:
            NameFull: Thiemann, Peter
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 07
              Text: Jul2011
              Type: published
              Y: 2011
          Identifiers:
            – Type: issn-print
              Value: 01640925
          Numbering:
            – Type: volume
              Value: 33
            – Type: issue
              Value: 4
          Titles:
            – TitleFull: ACM Transactions on Programming Languages & Systems
              Type: main
ResultId 1