proomt

Search

Search posts, papers, and topics

Hall of Fame

Hall of FameP. J. Landin196655 min readpaperadvanced

The Next 700 Programming Languages

Summary

Landin proposes ISWIM as a family of programming languages, separating physical syntax, logical syntax, abstract structure, and applicative expressions. The paper argues that language design should focus on primitive abstractions and expressive ‘where‑clauses’ rather than surface syntax.

  • Language design is split into physical representation (characters) and abstract entities (numbers, lists, functions).
  • ISWIM introduces a four‑level model: physical, logical, abstract, and applicative expression layers.
  • ‘Where‑clauses’ allow embedding definitions directly in expressions, decoupling naming rules from semantics.
  • Emphasizes expressions over statements, promoting a functional core within a general‑purpose language family.

Language designers and language theory researchers should care because it formalizes how to construct families of languages and separates syntax from semantics, influencing many later language designs.

8/10

Related reading

  1. Growing a Language

    Guy Steele argues that programming languages should be designed to grow, starting from a small core and providing mechanisms for users to extend them. He illustrates this with historical examples and shows why a static, fully‑specified language is impractical.

    Hall of Famevirginia.edu43 minHN3
  2. Structured Programming with go to Statements

    Knuth's 1974 paper examines the `goto` statement controversy in structured programming, arguing for a balanced view rather than outright abolition. It explores how improved language constructs can reduce `goto` usage, while also considering cases where `goto` or equivalent constructs might be necessary for efficiency or clarity in transformed code.

    Hall of Fameplover.com130 minpaperHN3
  3. Article: Your Next DSL Author Is a Language Model

    Typed Domain Grounding (TDG) embeds a DSL inside a mainstream language the LLM already knows (e.g., Kotlin) and uses the host compiler as an oracle. The author describes five building blocks—embedding, choosing a host language with high training‑data frequency, compiler‑driven type safety, a generate‑compile‑repair loop, and an on‑demand teaching tool—and shows measured results from kUML, a Kotli…

    InfoQinfoq.com18 min
  4. Bend 2 and the Vibe-Coding Trap

    The author argues that “vibe‑coding” with LLMs can cause engineers to reinvent existing solutions, using Bend 2—a language that asks LLMs to write long formal proofs—as a case study. By re‑implementing the same demo in SPARK/Ada, the author shows that established formal‑verification tools achieve the same guarantees with a tiny proof, highlighting the need for domain research before prompting LLM…

    Hacker News front pageliampwll.com5 minHN326235