4 ms·
This is an area where the compiler and programming language communities often seem to be talking past each other. In the post you linked, Weeks is talking about
by l_dopa 12y ago
This is an area where the compiler and programming language communities often seem to be talking past each other. In the post you linked, Weeks is talking about CPS and SSA as the datastructures manipulated by optimization algorithms. CPS is interesting primarily as a language in the formal sense of assigning semantics to programs. Whether you choose to represent those programs naively as a tree structure or with an efficient graph representation as in SSA, you're still using CPS.
This paper is really good because, unlike a lot of compiler literature, it treats both semantics and term representation.
- gsg 12y agoAlthough I take your point about CPS in other disciplines, TFA advocates compiling with continuations. A criticism of its suitability for compilation would seem to be relevant.
- l_dopa 12y agoSure, and Weeks is totally correct regarding tree vs. flat representations, but I think identifying CPS with the former and SSA with the latter is misleading. The scoping discipline (respectively, dominator tree) is part of the language whether you represent it as subtrees or leave it implicit. It would be more accurate to say that SSA is a particularly efficient data structure for representing a subset of CPS terms.