A View of Monads (Re: performance of monads)
Tue, 19 Feb 2002 16:50:56 +0200
-----BEGIN PGP SIGNED MESSAGE-----
On Tuesday 19 February 2002 06:57, Richard Uhtenwoldt wrote:
> This is a weak argument.
> First of all it is not the case that imperative coders always specify a
> total ordering: multitasking, threading and interrupts (and their
> projections into software as in Unix signals and asynchronous
> exceptions) are ways of specifying partial ordering when a total
> ordering would lose.
> Note that modern cpu designs use "out-of-order" execution strategies;
> so on micro-second timescales they
> ignore the total ordering when doing so suits them and
> when it preserves semantics.
I might add to the above points the obvious. Imperative programming languages
in general do _not_ specify a total ordering. Each statement _can_ have a
side effect[*] and the compiler is free to rearrange code such that it runs
faster and preserves semantics. As written in any compiler textbook from
[*] The compiler will know when this is possible, and when the statement is
free of side effects. You can specify that no side effects occur in C++ for
instance. And the compilers also know that certain expressions are always
free of side effects, etc.
Eray Ozkural (exa) <email@example.com>
Comp. Sci. Dept., Bilkent University, Ankara
GPG public key fingerprint: 360C 852F 88B0 A745 F31B EA0F 7C07 AE16 874D 539C
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
-----END PGP SIGNATURE-----