Tenuring policies for generation-based storage reclamation
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
An adaptive tenuring policy for generation scavengers
ACM Transactions on Programming Languages and Systems (TOPLAS)
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Garbage collection: algorithms for automatic dynamic memory management
Garbage collection: algorithms for automatic dynamic memory management
Escape analysis for object-oriented languages: application to Java
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Maude: specification and programming in rewriting logic
Theoretical Computer Science - Rewriting logic and its applications
The rewriting logic semantics project
Theoretical Computer Science
Partial Order Reduction for Rewriting Semantics of Programming Languages
Electronic Notes in Theoretical Computer Science (ENTCS)
A Rewrite Framework for Language Definitions and for Generation of Efficient Interpreters
Electronic Notes in Theoretical Computer Science (ENTCS)
Electronic Notes in Theoretical Computer Science (ENTCS)
Modular Rewriting Semantics in Practice
Electronic Notes in Theoretical Computer Science (ENTCS)
A Run-Time Environment for Concurrent Objects With Asynchronous Method Calls
Electronic Notes in Theoretical Computer Science (ENTCS)
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
On formal analysis of OO languages using rewriting logic: designing for performance
FMOODS'07 Proceedings of the 9th IFIP WG 6.1 international conference on Formal methods for open object-based distributed systems
KOOL: an application of rewriting logic to language prototyping and analysis
RTA'07 Proceedings of the 18th international conference on Term rewriting and applications
Hi-index | 0.00 |
The executability of rewriting logic makes it a compelling environment for language design and experimentation; the ability to interpret programs directly in the language semantics develops assurance that definitions are correct and that language features work well together. However, this executability raises new questions about language semantics that don't necessarily make sense with non-executable definitions. For instance, suddenly the performance of the semantics, not just language interpreters or compilers based on the semantics, can be important, and representations must be chosen carefully to ensure that executing programs directly in language definitions is still feasible. Unfortunately, many obvious representations common in other semantic formalisms can lead to poor performance, including those used to represent program memory. This paper describes two different memory representations designed to improve performance: the first, which has been fully developed, is designed for use in imperative programs, while the second, still being developed, is intended for use in a variety of languages, with a special focus on pure object-oriented languages. Each representation is described and compared to the initial representation used in the language semantics, with thoughts on reuse also presented.