Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Metamorphic Programming: Unconventional High

Published: 01 March 2004 Publication History

Abstract

A programming methodology that violates most of the rules of good programming has shown spectacular reductions in simulation times on several benchmarks. Applying this technique in logic-level VLSI circuit simulation also improved simulation performance. For a new VLSI circuit, faster simulation translates into faster time to market, so even the most peculiar programming type is worth exploring if the carrot is increased performance.Discovering efficient and effective metamorphic programming techniques across a range of problems outside simluation will require a concerted effort across the software community. The most important problem is the lack of metamorphic constructs in mainstream high-level languages.

References

[1]
L. Cardelli and P. Wegner, "On Understanding Types, Data Abstraction, and Polymorphism," ACM Computing Surveys, Dec. 1985, pp. 471-522.
[2]
M. Abadi and L. Cardelli, A Theory of Objects, Springer, 1996.
[3]
P. Maurer, "The Shadow Algorithm: A Scheduling Technique for both Compiled and Interpreted Simulation," IEEE Trans. Computer-Aided Design, Sept. 1993, pp. 1411-1413.
[4]
P. Maurer, "The Inversion Algorithm for Digital Simulation," IEEE Trans. Computer-Aided Design, July 1997, pp. 762-769.
[5]
P. Maurer, "Event-Driven Simulation without Loops or Conditionals," Proc. Int'l Conf. Computer-Aided Design, IEEE CS Press, 2000, pp. 23-26.
[6]
D. Lewis, "A Hierarchical Compiled Code Event-Driven Logic Simulator," IEEE Trans. Computer-Aided Design, June 1991, pp. 726-737.
[7]
E. Gamma, et al., Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995.
[8]
G.L. Steele Jr., "Debunking the 'Expensive Procedure Call' Myth, or Procedure Call Implementations Considered Harmful, or Lambda, the Ultimate GOTO," Proc. ACM Conf., ACM Press, 1977, pp. 153-162.
[9]
P. Brglez P. Pownall and R. Hum, "Accelerated ATPG and Fault Grading via Testability Analysis," Proc. IEEE Int'l Symp. Circuits and Systems, IEEE CS Press, 1985, pp. 695-698.

Cited By

View all
  • (2006)Dynamic Class Hierarchy MutationProceedings of the International Symposium on Code Generation and Optimization10.1109/CGO.2006.14(98-110)Online publication date: 26-Mar-2006

Recommendations

Reviews

David E. Goldfarb

This paper presents a nonconventional technique for optimizing the performance of certain classes of programs. The technique, in brief, is to alter objects' behavior by changing function pointers (typically, in the vtable) rather than by setting and repeatedly checking state variables. The paper also sketchily proposes some changes to C++-like programming languages to make this technique more palatable: the current usage relies on unchecked computed gotos. Maurer claims that this "metamorphic" programming technique can make programs run five to 60 percent faster. Certainly (although not stated by the author), this is only possible for programs that spend most of their time in tight loops that involve a dispatch or similar decision process. The main example in the paper is of a state-machine implementation of very large-scale integration (VLSI) simulation. I imagine this technique would also be valuable in an interpreter's main decode/dispatch loop. The metamorphic technique appears sound, and the paper is a pleasant, easy read, but I remain somewhat unsatisfied. I would have preferred more discussion of several key points: the relationship to the threaded interpreters, tail-recursion optimization, and other similar classical techniques; numeric presentation of performance improvement for more than one sample program; the option of achieving much of the same performance increase via compiler optimizations, rather than language changes; a description of the class of programs for which performance improvement is expected; and a discussion of the code maintenance and readability impact of this technique. In general, I would be hesitant to adopt this technique without seeing a more careful analysis, and a better comparison with the existing alternatives. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image Computer
Computer  Volume 37, Issue 3
March 2004
94 pages

Publisher

IEEE Computer Society Press

Washington, DC, United States

Publication History

Published: 01 March 2004

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 02 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2006)Dynamic Class Hierarchy MutationProceedings of the International Symposium on Code Generation and Optimization10.1109/CGO.2006.14(98-110)Online publication date: 26-Mar-2006

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media