|
Let's actually look at this as if I'm serious for a second? Tell me this framing really can't work. None-exhaustively: Python has if, for, while, def, class and first class lists, dicts , functions ; Forth has this stack machine concept, RPN, compilation-in-the-REPL when defining new functions. Lisp has this code is data is code concept, and CAR, CDR, first class lists (obviously ), first class functions (in some of them) ... etc. Machine code can (theoretically) be directly expressed in logic gates. How about a quick look at what English supports: Conditionals, iteration, abstraction, composition, delegation, exception handling, scope, naming, modularity; intent, priority, graduated precision, analogy, context-dependence; And.. the concept of semantic triples is built in as a syntactic primitive (subject-predicate-object), so you can even do a bunch of GOFAI right off the bat. It's weird thinking of english as a programming language. But it kind of works like one if you want to, and computers can process it now? |
I'm talking about the opposite problem: these supersets are ambiguous, contradictory, vague. At the end of the day the thing that is programmed needs to be clear, unambiguous and ideally concise, too (performance in its million incarnations).
So yeah, I guess you can fix the ambiguous aspect with verbosity. Just write more words until you define everything you need to define more directly when using a formal language.
I would be extremely shocked if programming wouldn't require knowing a very specific, albeit huge, domain jargon.