4 ms·
I am not convinced. Most mathematicians embrace denotational semantics, but most engineers intuitively default to operational semantics, because ultimately, we
by ukj 7y ago
I am not convinced. Most mathematicians embrace denotational semantics, but most engineers intuitively default to operational semantics, because ultimately, we need to make choices/trade-offs that have consequences which are too complex for any optimiser which lacks a holistic view of the system our system is part of.
Operational semantics are actually a higher order logic than Category theory when expressed in a Geometry of Interaction (GoI) grammar.
https://ncatlab.org/nlab/show/Geometry+of+Interaction https://ncatlab.org/nlab/show/Geometry+of+Interaction
I don't have the fancy nomenclature to utter the Mathematical phrase "endomorphism on the object A⊸B.", but I intuitively understand what operational semantics are and why they are useful to me. When a programming language/grammar comes along which implements most of the design-patterns I need/use to turn my intuitions into behavioural specifications - I am still going to be more productive than a Mathematician because I will not have to pay the (upfront cost) of learning a denotational vocabulary. The compiler will do it for me, right?
In the words of the late Ed Nelson: The dwelling place of meaning is syntax; semantics is the home of illusion.
Languages are human interfaces. Computer languages are better interfaces than Mathematics because we design (and evolve them) to be usable by the average human, not Mathematicians.
Good interfaces lower the barrier to entry by allowing plebs like myself to stand on the shoulder of giants. Mathematics expects everybody to be a giant.
And in so far as dealing with ambiguity goes, Programming languages are way less ambiguous than Mathematical notation!
Ink on paper has no source code - no context.