&quot;Expressive power&quot; and &quot;computational power&quot; aren&#x27;t the same thing.<p>Turing&#x27;s original Universal Machine (you know, the moving read&#x2F;write head over an indefinitely long tape of symbols) is not expressive at all; a simple task like adding two integers on that machine requires a completely arcane, verbose piece of gobbledygook to be prepared on the tape, where you cannot tell at a glance which part of it is the program, and which is the integers to be added. It is less expressive than 4 + 4 in a calculator language that doesn&#x27;t have loops.<p>Expressive power is, in its barest essence, the freedom to assign an arbitrary meaning, from some domain, to a new combination of symbols, such that every symbol in that combination refers to some entity in that domain only.<p>It behooves us to have a general-purpose language with as much expressive power as we can get our hands on.<p>It is not hard at all to add restrictions in domain languages created inside an expressive language. For instance if you make an x86-64 assembler in Lisp, it will be just as restricted as any other assembler; it will diagnose unrecognized opcodes, bad addressing modes, etc.