Reflections on Metaprogramming.
Saved in:
| 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 |