## Progressive Summary
**Executive Summary (Layer 3)**: **AI represents the next rung on the semantic expression ladder**—from binary to assembler to high-level languages—but formalism and architectural principles remain essential.
**Key Insight (Layer 2)**: "**Even though the syntax allows informal statement, you cannot abandon formalism**—Gherkin triplets (Given/When/Then) form a formal description of the finite state machine representing application behavior"
**Context (Layer 1)**:
- Source: @unclebobmartin (Uncle Bob Martin)
- Date saved: 2026-04-15
- Evolution: Binary → Assembler → Fortran → C → Java → Python → AI
- Key formalisms: Gherkin (GWT triplets), module dependency graphs, testing constraints, complexity constraints
- Core principle: Behavioral and structural semantics still apply
**Cross-Domain Connections**: [[Software-Engineering]], [[AI-Code-Generation]], [[Formal-Methods]], [[Software-Architecture]], [[Testing]]
**Discoverability Score**: 9/10
---
## Original Content
AIs are just another step up the semantic expression ladder
AIs are just another step up the semantic expression ladder. We initially expressed our semantics in binary, then assembler, then Fortran, then C, then Java, then Python, etc. AI is just the next step up that same old ladder.
And when you take that step, nothing else changes. You are still expressing behavioral semantics. You still need to express structural semantics. All the old principles still apply. You still have to be concerned about design and architecture.
And even though the syntax allows informal statement, you cannot abandon formalism. When you express behavior you need a formal way to enforce the behavior you want. I use Gherkin for this. It seems to work pretty well.
Consider that Gherkin is written in triplets of Given/When/Then. Each of those GWT triplets is a transition of a state machine. A full suite of Gherkin triplets is a formal description of the finite state machine that represents the behavior of the application.
Other formalisms that matter are things like module dependency graphs, testing constraints, complexity constraints, and many others.
This step up the semantic expression ladder provides you with an enormous amount of options. But you'd better choose those options wisely!