
On Fri, Mar 7, 2008 at 12:42 PM, Ivan Miljenovic
On 07/03/2008, Arnar Birgisson
wrote: Will you be considering parallel programs? Also, perhaps some information flow analysis would be interesting.
What do you mean by parallel programs? The parallelism hints used by ghc? In that case, I'll be supporting whatever the parser I can find supports :p
I mean parallel programs in general. For example, you mention that preferably one would want "main" to be the only function that has no incoming edges. With parallel programs that may not be the case. This ties into also considering reactive programs (i.e. programs which main function is of the form "while (1) { ... }"). I'm not quite sure if it fits the project you describe, but looking for certain properties like possible deadlocks or livelocks in such programs is something of interest. There is also a security angle to this. Consider two agents, one representing an ATM and one representing the branch office of a bank. Analysing the possible possible information paths between the two can help you define a clear interface between the two (assuming one doesn't exist already). Having such an interface rigorously defined helps with maintaining security properties. Also related to considering parallel programs are coroutines. Analysing the "call graph" of systems of coroutines might be interesting as well. I'm just thinking outloud though, some of these might not be interesting at all :) cheers, Arnar