MultiJava: Design, implementation, and evaluation of a Java-compatible language supporting modular open classes and symmetric multiple dispatch

Saved in:
Bibliographic Details
Title: MultiJava: Design, implementation, and evaluation of a Java-compatible language supporting modular open classes and symmetric multiple dispatch
Authors: Clifton, Curtis
Contributors: Computer Science
Source: archive/lib.dr.iastate.edu/cs_techreports/304/tr01_10.pdf|||Fri Jan 14 23:28:43 UTC 2022
Publication Year: 2001
Collection: Digital Repository @ Iowa State University
Subject Terms: Programming Languages and Compilers, Multimethods, generic functions, object-oriented programming languages, single dispatch, multiple dispatch, encapsulation, modularity, static typechecking, subtyping, inheritance, open objects, extensible classes, external methods, Java language, MultiJava language, separate compilation
Description: This paper describes the design, implementation, and evaluation of MultiJava, a backward-compatible extension to The Java Programming Language� that supports open classes and symmetric multiple dispatch. An open class is one to which new methods can be added without editing the class directly. Multiple dispatch allows the method invoked by a message send to depend on the run-time types of any subset of the argument objects. MultiJava is the first full-scale programming language to support these features while retaining modular static typechecking and compilation. The paper defines the notions of modular editing, typechecking, and compilation, and describes two problems, the augmenting method problem and the binary method problem, that heretofore had not been solved in a modular way. We describe the architecture and key implementation details of our MultiJava compiler, mjc. mjc is open-source and is freely available for downloading. We present an evaluation of MultiJava that demonstrates the ease of extending code written in the language. We also provide empirical results for the performance of MultiJava versus the previous partial solutions to the augmenting method and binary method problems. These results demonstrate that MultiJava�s performance is comparable to that of the partial solutions, while the language provides full solutions to the problems.
Document Type: article in journal/newspaper
File Description: application/pdf
Language: unknown
Relation: archive/lib.dr.iastate.edu/cs_techreports/304/; 1303; 5498487; cs_techreports/304; https://dr.lib.iastate.edu/handle/20.500.12876/20133
Availability: https://dr.lib.iastate.edu/handle/20.500.12876/20133
https://hdl.handle.net/20.500.12876/20133
Accession Number: edsbas.AF7AAB46
Database: BASE
FullText Text:
  Availability: 0
CustomLinks:
  – Url: https://dr.lib.iastate.edu/handle/20.500.12876/20133#
    Name: EDS - BASE (s4221598)
    Category: fullText
    Text: View record from BASE
  – Url: https://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=EBSCO&SrcAuth=EBSCO&DestApp=WOS&ServiceName=TransferToWoS&DestLinkType=GeneralSearchSummary&Func=Links&author=Clifton%20C
    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: edsbas
DbLabel: BASE
An: edsbas.AF7AAB46
RelevancyScore: 759
AccessLevel: 3
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 759.354309082031
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: MultiJava: Design, implementation, and evaluation of a Java-compatible language supporting modular open classes and symmetric multiple dispatch
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Clifton%2C+Curtis%22">Clifton, Curtis</searchLink>
– Name: Author
  Label: Contributors
  Group: Au
  Data: Computer Science
– Name: TitleSource
  Label: Source
  Group: Src
  Data: archive/lib.dr.iastate.edu/cs_techreports/304/tr01_10.pdf|||Fri Jan 14 23:28:43 UTC 2022
– Name: DatePubCY
  Label: Publication Year
  Group: Date
  Data: 2001
– Name: Subset
  Label: Collection
  Group: HoldingsInfo
  Data: Digital Repository @ Iowa State University
– Name: Subject
  Label: Subject Terms
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22Programming+Languages+and+Compilers%22">Programming Languages and Compilers</searchLink><br /><searchLink fieldCode="DE" term="%22Multimethods%22">Multimethods</searchLink><br /><searchLink fieldCode="DE" term="%22generic+functions%22">generic functions</searchLink><br /><searchLink fieldCode="DE" term="%22object-oriented+programming+languages%22">object-oriented programming languages</searchLink><br /><searchLink fieldCode="DE" term="%22single+dispatch%22">single dispatch</searchLink><br /><searchLink fieldCode="DE" term="%22multiple+dispatch%22">multiple dispatch</searchLink><br /><searchLink fieldCode="DE" term="%22encapsulation%22">encapsulation</searchLink><br /><searchLink fieldCode="DE" term="%22modularity%22">modularity</searchLink><br /><searchLink fieldCode="DE" term="%22static+typechecking%22">static typechecking</searchLink><br /><searchLink fieldCode="DE" term="%22subtyping%22">subtyping</searchLink><br /><searchLink fieldCode="DE" term="%22inheritance%22">inheritance</searchLink><br /><searchLink fieldCode="DE" term="%22open+objects%22">open objects</searchLink><br /><searchLink fieldCode="DE" term="%22extensible+classes%22">extensible classes</searchLink><br /><searchLink fieldCode="DE" term="%22external+methods%22">external methods</searchLink><br /><searchLink fieldCode="DE" term="%22Java+language%22">Java language</searchLink><br /><searchLink fieldCode="DE" term="%22MultiJava+language%22">MultiJava language</searchLink><br /><searchLink fieldCode="DE" term="%22separate+compilation%22">separate compilation</searchLink>
– Name: Abstract
  Label: Description
  Group: Ab
  Data: This paper describes the design, implementation, and evaluation of MultiJava, a backward-compatible extension to The Java Programming Language� that supports open classes and symmetric multiple dispatch. An open class is one to which new methods can be added without editing the class directly. Multiple dispatch allows the method invoked by a message send to depend on the run-time types of any subset of the argument objects. MultiJava is the first full-scale programming language to support these features while retaining modular static typechecking and compilation. The paper defines the notions of modular editing, typechecking, and compilation, and describes two problems, the augmenting method problem and the binary method problem, that heretofore had not been solved in a modular way. We describe the architecture and key implementation details of our MultiJava compiler, mjc. mjc is open-source and is freely available for downloading. We present an evaluation of MultiJava that demonstrates the ease of extending code written in the language. We also provide empirical results for the performance of MultiJava versus the previous partial solutions to the augmenting method and binary method problems. These results demonstrate that MultiJava�s performance is comparable to that of the partial solutions, while the language provides full solutions to the problems.
– Name: TypeDocument
  Label: Document Type
  Group: TypDoc
  Data: article in journal/newspaper
– Name: Format
  Label: File Description
  Group: SrcInfo
  Data: application/pdf
– Name: Language
  Label: Language
  Group: Lang
  Data: unknown
– Name: NoteTitleSource
  Label: Relation
  Group: SrcInfo
  Data: archive/lib.dr.iastate.edu/cs_techreports/304/; 1303; 5498487; cs_techreports/304; https://dr.lib.iastate.edu/handle/20.500.12876/20133
– Name: URL
  Label: Availability
  Group: URL
  Data: https://dr.lib.iastate.edu/handle/20.500.12876/20133<br />https://hdl.handle.net/20.500.12876/20133
– Name: AN
  Label: Accession Number
  Group: ID
  Data: edsbas.AF7AAB46
PLink https://erproxy.cvtisr.sk/sfx/access?url=https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsbas&AN=edsbas.AF7AAB46
RecordInfo BibRecord:
  BibEntity:
    Languages:
      – Text: unknown
    Subjects:
      – SubjectFull: Programming Languages and Compilers
        Type: general
      – SubjectFull: Multimethods
        Type: general
      – SubjectFull: generic functions
        Type: general
      – SubjectFull: object-oriented programming languages
        Type: general
      – SubjectFull: single dispatch
        Type: general
      – SubjectFull: multiple dispatch
        Type: general
      – SubjectFull: encapsulation
        Type: general
      – SubjectFull: modularity
        Type: general
      – SubjectFull: static typechecking
        Type: general
      – SubjectFull: subtyping
        Type: general
      – SubjectFull: inheritance
        Type: general
      – SubjectFull: open objects
        Type: general
      – SubjectFull: extensible classes
        Type: general
      – SubjectFull: external methods
        Type: general
      – SubjectFull: Java language
        Type: general
      – SubjectFull: MultiJava language
        Type: general
      – SubjectFull: separate compilation
        Type: general
    Titles:
      – TitleFull: MultiJava: Design, implementation, and evaluation of a Java-compatible language supporting modular open classes and symmetric multiple dispatch
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Clifton, Curtis
      – PersonEntity:
          Name:
            NameFull: Computer Science
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 01
              Type: published
              Y: 2001
          Identifiers:
            – Type: issn-locals
              Value: edsbas
          Titles:
            – TitleFull: archive/lib.dr.iastate.edu/cs_techreports/304/tr01_10.pdf|||Fri Jan 14 23:28:43 UTC 2022
              Type: main
ResultId 1