On Fri, Mar 5, 2010 at 4:56 PM, John Zabroski <johnzabro...@gmail.com>wrote: > > On Fri, Mar 5, 2010 at 1:14 PM, Andrey Fedorov <anfedo...@gmail.com>wrote: >> >> If we *do** *want to define "complexity", we could put a constraint on >> these CRT graphs, like "nodes have no state"? This is starting to smell like >> the classical argument against OOP. >> >> What "classical argument" are you referring to? >
That objects are a bad way to maintain state. I'm still undecided on if it's a good argument or not. If we add that constraint: that each node represents a function without side effects, I imagine the complexity of a system can be wholly defined from a graph representing it. Such a graph is more or less what Haskell code defines. In system A, nodes have no explicit state - in other words, state is not > given a name the outside world can refer to and inquire upon. > But what are the nodes? Maybe I'm still just not following what that graph-like thing represents - according to wikipedia, Current Reality Trees<http://en.wikipedia.org/wiki/Current_reality_tree_(TOC)> are graphs (*not* necessarily trees) which are meant to model observed phenomena, the type that occurs in the real world. This has nothing to do with writing algorithms - algorithms are structures which are rigorously defined and run on hardware you trust to adhere to those rigorous definitions upon execution. > From the perspective of side effects, system A can still have deadlocks > and/or race conditions (ordering side-effects that lead to unsafe > computational sequences). We can adorn each node in A with an effect type, > possibly allowing each node to have a type defined by a separate type > system. > > In system B, nodes have explicit coordination of computational sequences, > but that explicit coordination does not guarantee safety. As I understand > current thinking in category theory, such as work by Glynn Winskel on > general nets, the big idea is to unfold System B into an occurrence net, > thus giving its precise semantics, which we can then show to be either (a) > inconsistent (b) consistent (c) undecidable (d) unknown [know technique for > unfolding is known]. > So are nodes computational sequences, and the arrows just represent the sequence in which they run? But if they have side-effects of the kind where any node can change the behavior of any other node, what's the point of what order they run in?
_______________________________________________ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc