Distrbution and Abstract Types in Emerald
IEEE Transactions on Software Engineering - Special issue on distributed systems
Smalltalk: subclassing subtyping is-a
Journal of Object-Oriented Programming
Tutorial notes on partial evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Exokernel: an operating system architecture for application-level resource management
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Optimistic incremental specialization: streamlining a commercial operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
A general approach for run-time specialization and its application to C
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Separation of concerns and operating systems for highly heterogeneous distributed computing
EW 6 Proceedings of the 6th workshop on ACM SIGOPS European workshop: Matching operating systems to application needs
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
A Uniform Approach for Compile-Time and Run-Time Specialization
Selected Papers from the Internaltional Seminar on Partial Evaluation
Aster: a framework for sound customization of distributed runtime systems
ICDCS '96 Proceedings of the 16th International Conference on Distributed Computing Systems (ICDCS '96)
Fast concurrent dynamic linking for an adaptive operating system
ICCDS '96 Proceedings of the 3rd International Conference on Configurable Distributed Systems
Structuring Operating Systems Using Adaptive Objects for Improving Performance
IWOOOS '95 Proceedings of the 4th International Workshop on Object-Orientation in Operating Systems
Declarative specialization of object-oriented programs
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A survey of customizability in operating systems research
ACM Computing Surveys (CSUR)
A New Stack Buffer Overflow Hacking Defense Technique with Memory Address Confirmation
ICISC '01 Proceedings of the 4th International Conference Seoul on Information Security and Cryptology
Linux Security Modules: General Security Support for the Linux Kernel
Proceedings of the 11th USENIX Security Symposium
Invited application paper: a proposal for the specialization of HA/DRE systems
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
IEEE Transactions on Software Engineering
Insights into providing dynamic adaptation of operating system policies
ACM SIGOPS Operating Systems Review
Towards constructing reusable specialization components
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
StackGuard: automatic adaptive detection and prevention of buffer-overflow attacks
SSYM'98 Proceedings of the 7th conference on USENIX Security Symposium - Volume 7
Specialization for applications using shared libraries
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A programming model for adaptable Java applications
Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
A hybrid approach for resource-based comparison of adaptable Java applications
Science of Computer Programming
Hi-index | 0.00 |
This paper presents an object-oriented framework for specifying specializations in long-running programs such as operating systems. This model is based on the following concepts: Inheritance allows replacement implementations of member functions. We thus use a graph of sub-classes to specify a set of potential specializations of a given facility by replacing generic implementations with specialized implementations. Specializations in long-running programs are temporary, because the particular circumstances that permit the use of a specialized implementation are likely to change eventually. We thus support temporary and even optimistic specializations. Ensuring that it is valid to use a specialized implementation can be more difficult than creating the specialized implementation. We thus use a formal method to specify when a specialization is valid. This lets us automatically detect when specialization circumstances have changed, and also automatically generate specialized implementations using partial evaluation.