High level programming language features have long been seen as improving programmer efficiency at some cost in program efficiency. When features such as object-orientation and fine-grained concurrency, which greatly simplify expression of complex programs, are used parsimoniously, their effectiveness is mitigated. It is my thesis that these features can be implemented efficiently through interprocedural analysis and transformation. By specializing their implementation to the contexts in which they are used, the program's efficiency is not adversely affected by the flexibility of the language. The specific contributions herein are: (1) an adaptive flow analysis for practical precise analysis of object-oriented programs, (2) a cloning algorithm for building specialized versions of general abstractions, (3) a set of optimizations for removing object-oriented and fine-grained concurrency overhead, and (4) a hybrid sequential-parallel execution model which adapts to the availability of data. The effectiveness of this framework has been empirically validated on standard benchmarks. It is publicly available as part of the Illinois Concert system (http://www-csag.cs.uiuc.edu).
Cited By
- Kumar R and Chakraborty S (2007). Precise static type analysis for object oriented programs, ACM SIGPLAN Notices, 42:2, (17-26), Online publication date: 1-Feb-2007.
- Dimock A, Westmacott I, Muller R, Turbak F and Wells J Functioning without closure Proceedings of the sixth ACM SIGPLAN international conference on Functional programming, (14-25)
- Dimock A, Westmacott I, Muller R, Turbak F and Wells J (2019). Functioning without closure, ACM SIGPLAN Notices, 36:10, (14-25), Online publication date: 1-Oct-2001.
- Dolby J and Chien A An automatic object inlining optimization and its evaluation Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, (345-357)
- Dolby J and Chien A (2019). An automatic object inlining optimization and its evaluation, ACM SIGPLAN Notices, 35:5, (345-357), Online publication date: 1-May-2000.
- Dolby J and Chien A An evaluation of automatic object inline allocation techniques Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (1-20)
- Dolby J and Chien A (2019). An evaluation of automatic object inline allocation techniques, ACM SIGPLAN Notices, 33:10, (1-20), Online publication date: 1-Oct-1998.
- Dolby J Automatic inline allocation of objects Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation, (7-17)
- Dolby J (2019). Automatic inline allocation of objects, ACM SIGPLAN Notices, 32:5, (7-17), Online publication date: 1-May-1997.
- Grove D, DeFouw G, Dean J and Chambers C Call graph construction in object-oriented languages Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (108-124)
- Grove D, DeFouw G, Dean J and Chambers C (2019). Call graph construction in object-oriented languages, ACM SIGPLAN Notices, 32:10, (108-124), Online publication date: 9-Oct-1997.
- Chien A, Dolby J, Ganguly B, Karamcheti V and Zhang X Supporting High Level Programming with High Performance Proceedings of the 1997 Workshop on High-Level Programming Models and Supportive Environments (HIPS '97)
- Zhang X, Karamcheti V, Ng T and Chien A Optimizing COOP Languages Proceedings of the 10th International Parallel Processing Symposium, (235-240)
Recommendations
Concurrent object-oriented programming in Classic-Ada
Although Ada supports concurrency and can thus be used as a concurrent programming language, it is not generally considered to be an object-oriented programming language. Classic-Ada is a preprocessor which adds the concepts of classes, inheritance, and ...
Transactions for concurrent object-oriented programming systems
Proceedings of the ACM SIGPLAN Workshop on Object-Based Concurrent ProgrammingConcurrent object-oriented programming systems (COOPS) require support for fault tolerance, concurrency control, consistent commitment of changes and program-initiated rollback. It is sometimes suggested that the classical transaction processing model ...