Extensible Framework Design
Framework provides base classes and interfaces
- programmers extend generic and application-specific classes
Programmers can write various apps
- Choose a programming model, and reuse appropriate generic objects
- Define application specific components (e.g., WorkData, WatcherGUI, etc.), possibly extending existing “templates”
Researchers can try various approaches to issues
- Subclass generic classes to transparently extend functionality (e.g., performance optimizations, fault tolerance, scalability, etc.)
- OR, create new sets of generic classes to implement entirely new programming models (e.g., CilkEngine & CilkManager, etc.)