Talk:Control flow analysis

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

It Appears That Hecht Coined Control Flow Analysis in 1977[edit]

The article claims that the term Control Flow Analysis was coined by Olin Shivers Neil D. Jones in the 1980s. I don't think this is true because I have a book published in 1977 called "Flow Analysis of Computer Programs" and written by Matthew S. Hecht which defines Control Flow Analysis on page 4 as "... the encoding of pertinent, possible program 'control flow structure' or 'flow of control' for an ensuing data flow analysis." Danking00 (talk) 15:11, 7 July 2011 (UTC)[reply]

Indeed. Any compiler book has citation to papers before claimed as "firsts" in this article, although those guys may have coined the term... in their specific sub-field (see below). But wp:secondary sources should be used to ascertain such claims to priority in terminology, which isn't even that important compared to priority in the actual techniques. 188.27.81.64 (talk) 21:35, 20 July 2014 (UTC)[reply]
The CFA term is used for completely different analyses in the functional and imperative programming worlds. Which probably explains the massive confusion in this article, including as to who termed it. It's probably true that guys listed in the article "coined" the term in the functional programming analysis field, as in [re/mis]appropriated it for their use in functional programming... The PLDI10 paper, which I've added to the external links, sheds some light on the issue. The kind of CFA done in functional programming is called points-to analysis in the imperative/OOP world; it's only an issue there when function pointers are used (like dynamic dispatch). The run of the mill interprocedural CFA in imperative programming (i.e. with no function pointers involved) just revolved around creating a call graph (cf. Muchnick Advanced Compiler Design, p. 609) However "Procedure-valued variables present a more difficult problem. Weihl [Weih80] has shown that constructing the call graph of a recursive program with procedure variables is PSPACE-hard, so this process can be very expensive in both time and space." (Muchnick, p. 612) In general, anyone using NNH as reference needs to be highly aware that whatever they say in there (terminology too) is from their own little world of doing analysis on functional programs, which while may give some people successful academic careers, it's a very niche topic in the world of programming at large, so it shouldn't take over articles in Wikipedia with that perspective. Muchnick's book has 3K citation in GS (and 700+ in ACM) while NNH (published at about the same time) only has about half of those in either source, and it's impact outside academia is practically nil; it's also written in much more less approachable manner so it's easy for inexperienced readers to misinterpret stuff from NNH (which seems to have happened a lot in this article, as it is now).188.27.81.64 (talk) 23:43, 20 July 2014 (UTC)[reply]
Forgot to give the paper referenced there: Weihl, William E. Interprocedural Data Flow Analysis in the Presence of Pointers, Procedure Variables, and Label Variables, in [POPL80], pp. 83-94. 188.27.81.64 (talk) 00:43, 21 July 2014 (UTC)[reply]

Oh, and there's also F. E. ALLEN, Control flow analysis, SIGPLAN Notices, 5 (1970), pp. 1-19. doi:10.1145/800028.808479 which says that by then "control flow analysis has been embedded in many compilers and has been described in several papers." Even if that's the first use of the term, it's still not particularly important info. 188.27.81.64 (talk) 01:20, 21 July 2014 (UTC)[reply]

Rewrite needed[edit]

Also, this article consists mostly of irrelevancies. None of the core material that a compiler class would cover under this heading is even mentioned. See the external link I added for comparison, if a compiler book is too expensive for you... 188.27.81.64 (talk) 21:37, 20 July 2014 (UTC)[reply]

Besides, this article doesn't even try to distinguish when it's talking about intra-procedural vs. inter-procedural CFA and makes sweeping claims that absolutely don't apply to both. 188.27.81.64 (talk) 22:22, 20 July 2014 (UTC)[reply]

External links modified[edit]

Hello fellow Wikipedians,

I have just modified one external link on Control flow analysis. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template {{source check}} (last update: 18 January 2022).

  • If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
  • If you found an error with any archives or the URLs themselves, you can fix them with this tool.

Cheers.—InternetArchiveBot (Report bug) 17:16, 12 August 2017 (UTC)[reply]