&gt; nothing reflects entanglement better than a formal semantics<p>A formal semantics is just a way to translate from one formalism to another.<p>It&#x27;s rather obvious that choosing the target formalism determines how simple the language will appear, when you talk about &quot;formal semantics&quot; you should specify &quot;which one&quot;: operational? denotational? axiomatic?<p>Stricly speaking a compiler or an interpreter represents a formal semantics for a language: operational semanthics rules are often very very similar to the code of an AST interpreter, for example.<p>One could interpreter your statement to mean that the smaller the compiler the simpler the language, which means that assembly language was the simplest language all along!<p>For example, in your reddit post you claim that := is problematic, and indeed its semantics is tricky and often trips beginners (and even experienced!) programmers. However := semantics is not actually that complicated &quot;define every variable that isn&#x27;t defined inside the current scope, otherwise assign them&quot; and the errors stem from the fact that people assume that the scope lookup for := is recursive, which would arguably result in a more complicated formal semantics.