Talk:IO Semantics

From HaskellWiki
Revision as of 04:22, 19 February 2010 by Roconnor (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

I don't understand in what sense this IO definition is a "semantics". Conal 04:49, 12 December 2008 (UTC)

It provides a concrete definition of IO that can be compared for equality to know if two IO programs are equivalent or not. --Roconnor 03:54, 3 December 2009 (UTC)

Maybe so. Thanks. For a semantics, I think I'd want a lot more equalities than the representation by itself provides, especially involving SysCallName.

Also (raising a new question), I don't see this semantic model at all addressing concurrency, which is a huge semantic complicator for imperative computation. Conal 08:13, 3 December 2009 (UTC)

You are correct that it doesn't. IOTree is essentailly a representation of (uniformly) continuous functions between streams of digits (aka 2^N --> 2^N) (see Peter Hancock's "eating"). I recall Bas Spitters suggesting that making this even more higher order in some way that I forget could be used to capture concurrency, but I never understood the details and haven't thought about it for a few years. I should look at my email archives. --Roconnor 04:18, 19 February 2010 (UTC)