Inferring Channel Buffer Bounds Via Linear Programming
We present a static analysis for inferring the maximum amount of buffer space used by a program consisting of concurrently running processes communicating via buffered channels. We reduce the problem to linear programming by casting the analysis as a fractional capability calculus system. Our analysis can reason about buffers used by multiple processes concurrently, and runs in time polynomial in the size of the program.
KeywordsComposition Operator Operational Semantic Parallel Composition Type Derivation Capability Mapping
- 1.Boyland, J.: Checking interference with fractional permissions. In: Static Analysis, Tenth International Symposium, San Diego, CA, June 2003, pp. 55–72 (2003)Google Scholar
- 3.Kobayashi, N., Nakade, M., Yonezawa, A.: Static analysis of communication for asynchronous concurrent programming languages. In: Static Analysis, Second International Symposium, Glasgow, Scotland, September 1995, pp. 225–242 (1995)Google Scholar
- 5.Terauchi, T., Aiken, A.: Witnessing side-effects. In: 10th ACM SIGPLAN International Conference on Functional Programming, Tallinn, Estonia, September 2005, pp. 105–115 (2005)Google Scholar