[null, {"document_url": "https://link.springer.com/chapter/10.1007%2F3-540-60360-3_34", "unformatted_src": "https://media.springernature.com/w306/springer-static/cover/book/978-3-540-45050-4.jpg", "src": "https://media.springernature.com/w306/springer-static/cover/book/978-3-540-45050-4.jpg"}, null]


Static Analysis International Static Analysis Symposium

SAS 1995: Static Analysis pp 82-99 | Cite as

Partitioning non-strict functional languages for multi-threaded code generation


In this paper, we present a new approach to partitioning, the problem of generating sequential threads for programs written in a non-strict functional language. The goal of partitioning is to generate threads as large as possible, while retaining the non-strict semantics of the program. We define partitioning as a program transformation and design algorithms for basic block partitioning and interprocedural partitioning. The inter-procedural algorithm presented here is more powerful than the ones previously known and is based on abstract interpretation, enabling the algorithm to handle recursion in a straightforward manner. We prove the correctness of these algorithms in a denotational semantic framework.


Partitioning abstract interpretation demand and tolerance sets inter-procedural analysis non-strict functional languages

The research described in this paper was funded in part by the Advanced Research Projects Agency of the Department of Defense under Office of Naval Research contract N00014-92-J-1310.





© Springer-Verlag Berlin Heidelberg 1995



Coorg S.R. (1995) Partitioning non-strict functional languages for multi-threaded code generation. In: Mycroft A. (eds) Static Analysis. SAS 1995. Lecture Notes in Computer Science, vol 983. Springer, Berlin, Heidelberg





