Reflections on Metaprogramming.

Saved in:
Bibliographic Details
Title: Reflections on Metaprogramming.
Authors: Lee, Arthur H.1 alee@psl.korea.ac.kr, Zachary, Joseph L.2 zachary@cs.utah.edu
Source: IEEE Transactions on Software Engineering. Nov95, Vol. 21 Issue 11, p883-893. 20p. 4 Diagrams.
Subjects: COMMON LISP (Computer program language), Programming languages, Object-oriented programming, Computer programming, Computer programmers, Software engineering
Abstract: By encapsulating aspects of language semantics within a set of default classes and allowing the programmer to derive new versions, object-oriented languages whose semantics can be tailored to the needs of individual programmers have been provided. The degree to which such languages are simultaneously flexible and efficient is an open question. We describe our experience with using this technique to incorporate transparent support for persistence into the Common Lisp Object System via its metaobject protocol, an open implementation based on reflection. For many aspects of our implementation the metaobject protocol was perfectly suitable. In other cases we had to choose among extending the protocol, requiring the application programmer to employ special idioms, and tolerating a large performance penalty. Based on our experience we evaluate the metaobject protocol, propose some improvements and extensions, and present performance measurements that reveal the need for improved language implementation techniques. [ABSTRACT FROM AUTHOR]
Copyright of IEEE Transactions on Software Engineering is the property of IEEE Computer Society 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.)
Database: Engineering Source
FullText Text:
  Availability: 0
Header DbId: egs
DbLabel: Engineering Source
An: 14319172
AccessLevel: 6
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 0
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: Reflections on Metaprogramming.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Lee%2C+Arthur+H%2E%22">Lee, Arthur H.</searchLink><relatesTo>1</relatesTo><i> alee@psl.korea.ac.kr</i><br /><searchLink fieldCode="AR" term="%22Zachary%2C+Joseph+L%2E%22">Zachary, Joseph L.</searchLink><relatesTo>2</relatesTo><i> zachary@cs.utah.edu</i>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: <searchLink fieldCode="JN" term="%22IEEE+Transactions+on+Software+Engineering%22">IEEE Transactions on Software Engineering</searchLink>. Nov95, Vol. 21 Issue 11, p883-893. 20p. 4 Diagrams.
– Name: Subject
  Label: Subjects
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22COMMON+LISP+%28Computer+program+language%29%22">COMMON LISP (Computer program language)</searchLink><br /><searchLink fieldCode="DE" term="%22Programming+languages%22">Programming languages</searchLink><br /><searchLink fieldCode="DE" term="%22Object-oriented+programming%22">Object-oriented programming</searchLink><br /><searchLink fieldCode="DE" term="%22Computer+programming%22">Computer programming</searchLink><br /><searchLink fieldCode="DE" term="%22Computer+programmers%22">Computer programmers</searchLink><br /><searchLink fieldCode="DE" term="%22Software+engineering%22">Software engineering</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: By encapsulating aspects of language semantics within a set of default classes and allowing the programmer to derive new versions, object-oriented languages whose semantics can be tailored to the needs of individual programmers have been provided. The degree to which such languages are simultaneously flexible and efficient is an open question. We describe our experience with using this technique to incorporate transparent support for persistence into the Common Lisp Object System via its metaobject protocol, an open implementation based on reflection. For many aspects of our implementation the metaobject protocol was perfectly suitable. In other cases we had to choose among extending the protocol, requiring the application programmer to employ special idioms, and tolerating a large performance penalty. Based on our experience we evaluate the metaobject protocol, propose some improvements and extensions, and present performance measurements that reveal the need for improved language implementation techniques. [ABSTRACT FROM AUTHOR]
– Name: AbstractSuppliedCopyright
  Label:
  Group: Ab
  Data: <i>Copyright of IEEE Transactions on Software Engineering is the property of IEEE Computer Society 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://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=egs&AN=14319172
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1109/32.473217
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 20
        StartPage: 883
    Subjects:
      – SubjectFull: COMMON LISP (Computer program language)
        Type: general
      – SubjectFull: Programming languages
        Type: general
      – SubjectFull: Object-oriented programming
        Type: general
      – SubjectFull: Computer programming
        Type: general
      – SubjectFull: Computer programmers
        Type: general
      – SubjectFull: Software engineering
        Type: general
    Titles:
      – TitleFull: Reflections on Metaprogramming.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Lee, Arthur H.
      – PersonEntity:
          Name:
            NameFull: Zachary, Joseph L.
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 11
              Text: Nov95
              Type: published
              Y: 1995
          Identifiers:
            – Type: issn-print
              Value: 00985589
          Numbering:
            – Type: volume
              Value: 21
            – Type: issue
              Value: 11
          Titles:
            – TitleFull: IEEE Transactions on Software Engineering
              Type: main
ResultId 1