ABSTRACT Maya: Multiple-Dispatch Syntax Extension in Java

Saved in:
Bibliographic Details
Title: ABSTRACT Maya: Multiple-Dispatch Syntax Extension in Java
Contributors: The Pennsylvania State University CiteSeerX Archives
Source: http://www.cs.utah.edu/flux/papers/pldi02-maya.pdf.
Collection: CiteSeerX
Subject Terms: metaprogramming, macros, generative programming
Description: We have designed and implemented Maya, a version of Java that allows programmers to extend and reinterpret its syntax. Maya generalizes macro systems by treating grammar productions as generic functions, and semantic actions on productions as multimethods on the corresponding generic functions. Programmers can write new generic functions (i.e., grammar productions) and new multimethods (i.e., semantic actions), through which they can extend the grammar of the language and change the semantics of its syntactic constructs, respectively. Maya’s multimethods are compile-time metaprograms that transform abstract syntax: they execute at program compile-time, because they are semantic actions executed by the parser. Maya’s multimethods can be dispatched on the syntactic structure of the input, as well as the static, source-level types of expressions in the input. In this paper we describe what Maya can do and how it works. We describe how its novel parsing techniques work and how Maya can statically detect certain kinds of errors, such as code that generates references to free variables. Finally, to demonstrate Maya’s expressiveness, we describe how Maya can be used to implement the MultiJava language, which was described by Clifton et al. at
Document Type: text
File Description: application/pdf
Language: English
Relation: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.74.4935
Availability: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.74.4935
http://www.cs.utah.edu/flux/papers/pldi02-maya.pdf
Rights: Metadata may be used without restrictions as long as the oai identifier remains attached to it.
Accession Number: edsbas.AB4DA4FC
Database: BASE
FullText Text:
  Availability: 0
CustomLinks:
  – Url: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.74.4935#
    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=Archives%20TPSUC
    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.AB4DA4FC
RelevancyScore: 750
AccessLevel: 3
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 750
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: ABSTRACT Maya: Multiple-Dispatch Syntax Extension in Java
– Name: Author
  Label: Contributors
  Group: Au
  Data: The Pennsylvania State University CiteSeerX Archives
– Name: TitleSource
  Label: Source
  Group: Src
  Data: <i>http://www.cs.utah.edu/flux/papers/pldi02-maya.pdf</i>.
– Name: Subset
  Label: Collection
  Group: HoldingsInfo
  Data: CiteSeerX
– Name: Subject
  Label: Subject Terms
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22metaprogramming%22">metaprogramming</searchLink><br /><searchLink fieldCode="DE" term="%22macros%22">macros</searchLink><br /><searchLink fieldCode="DE" term="%22generative+programming%22">generative programming</searchLink>
– Name: Abstract
  Label: Description
  Group: Ab
  Data: We have designed and implemented Maya, a version of Java that allows programmers to extend and reinterpret its syntax. Maya generalizes macro systems by treating grammar productions as generic functions, and semantic actions on productions as multimethods on the corresponding generic functions. Programmers can write new generic functions (i.e., grammar productions) and new multimethods (i.e., semantic actions), through which they can extend the grammar of the language and change the semantics of its syntactic constructs, respectively. Maya’s multimethods are compile-time metaprograms that transform abstract syntax: they execute at program compile-time, because they are semantic actions executed by the parser. Maya’s multimethods can be dispatched on the syntactic structure of the input, as well as the static, source-level types of expressions in the input. In this paper we describe what Maya can do and how it works. We describe how its novel parsing techniques work and how Maya can statically detect certain kinds of errors, such as code that generates references to free variables. Finally, to demonstrate Maya’s expressiveness, we describe how Maya can be used to implement the MultiJava language, which was described by Clifton et al. at
– Name: TypeDocument
  Label: Document Type
  Group: TypDoc
  Data: text
– Name: Format
  Label: File Description
  Group: SrcInfo
  Data: application/pdf
– Name: Language
  Label: Language
  Group: Lang
  Data: English
– Name: NoteTitleSource
  Label: Relation
  Group: SrcInfo
  Data: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.74.4935
– Name: URL
  Label: Availability
  Group: URL
  Data: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.74.4935<br />http://www.cs.utah.edu/flux/papers/pldi02-maya.pdf
– Name: Copyright
  Label: Rights
  Group: Cpyrght
  Data: Metadata may be used without restrictions as long as the oai identifier remains attached to it.
– Name: AN
  Label: Accession Number
  Group: ID
  Data: edsbas.AB4DA4FC
PLink https://erproxy.cvtisr.sk/sfx/access?url=https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsbas&AN=edsbas.AB4DA4FC
RecordInfo BibRecord:
  BibEntity:
    Languages:
      – Text: English
    Subjects:
      – SubjectFull: metaprogramming
        Type: general
      – SubjectFull: macros
        Type: general
      – SubjectFull: generative programming
        Type: general
    Titles:
      – TitleFull: ABSTRACT Maya: Multiple-Dispatch Syntax Extension in Java
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: The Pennsylvania State University CiteSeerX Archives
    IsPartOfRelationships:
      – BibEntity:
          Identifiers:
            – Type: issn-locals
              Value: edsbas
            – Type: issn-locals
              Value: edsbas.oa
          Titles:
            – TitleFull: http://www.cs.utah.edu/flux/papers/pldi02-maya.pdf
              Type: main
ResultId 1