Episode 179 - Programming Block by Block
Get the full intelligence
Search transcripts, export clips, track mentions, and explore all topics from “Episode 179 - Programming Block by Block” inside PodZeus.
In this episode of Advent of Computing, host Sean Haas explores GPSS (General Purpose Simulation Language), a pioneering simulation language developed by Jeffrey Gordon in the 1960s. Haas begins with a personal anecdote about his delayed understanding of 'mathematical model,' setting the stage for a deep dive into how GPSS reimagines programming as a tool for modeling systems through blocks and transactions. Unlike traditional programming languages, GPSS is structured around flowcharts, where programs are composed of blocks that process transactions flowing through a system—mirroring the modular, physical wiring of analog computers. The language was designed to be accessible to non-programmers, especially engineers and analysts, allowing them to simulate complex systems like telephone networks, computer room operations, and even entire operating systems. Haas highlights GPSS’s unique execution model, its use of tables instead of syntax, and its role as a potential fourth-generation language. The episode culminates in the fascinating case of GMX, a time-sharing system built entirely in GPSS, which could simulate and then run a computer system—blurring the line between simulation and real-world operation. Haas concludes with admiration for GPSS’s radical design and its legacy as a language that challenges the very definition of programming.
GPSS is a block-structured, flowchart-based simulation language designed for non-programmers to model complex systems like phone networks and computer rooms.
The language operates on transactions flowing through blocks, with facilities and storages representing resources, making it ideal for discrete event simulation.
GPSS was intentionally syntax-free and table-oriented, prioritizing usability over traditional code structure, reflecting a 'tool language' philosophy.
GMX, a derivative of GPSS, was used to simulate and even run an operating system, demonstrating the power of simulation as a foundation for real-world computing design.
GPSS’s interpreted nature and frequent model manipulation make it fundamentally different from static, compiled programs, emphasizing exploration over finality.
The Embarrassing Realization About Mathematical Models
Sean shares a personal story about not understanding what a 'mathematical model' was despite studying physics and writing simulations, setting up the episode's central theme: the nature of modeling in computing.
What Is a Model? From Pendulums to Chess
Sean explains that a model is a representation—mathematical, procedural, or rule-based—and uses examples like pendulums, chess, and galaxy simulations to illustrate how models underlie all simulations.
The Birth of GPSS: A Language Built on Blocks and Flowcharts
“GPSS is designed as a way to build executable flowcharts. A GPSS program is composed of two things. Blocks and transactions. Your immediate reaction to this should be, huh? A block is just a box on a flowchart.”
From Analog to Digital: The Evolution of Simulation Tools
Sean traces the shift from analog computers—where programming meant physical wiring—to digital systems, highlighting how digital abstraction led to the need for specialized tools like GPSS.
Jeffrey Gordon’s Journey and the Modular Mindset
The episode details Gordon’s work at Bell Labs and IBM, where he developed modular simulation tools that eventually evolved into GPSS, emphasizing reusability and system-level thinking.
“GPSS is designed as a way to build executable flowcharts. A GPSS program is composed of two things. Blocks and transactions. Your immediate reaction to this should be, huh? A block is just a box on a flowchart.”
“That, dear listener, is a wild future. It also drops GPSS back into this more traditional role. In the case of GMX, there would be a final program.”
“A model is just a way to represent something. This is often done mathematically, hence a math model. But it can also be done as a simple list of steps and rules.”
Host
Guest
GPSS
product
Sean Haas
person
Jeffrey Gordon
person
IBM
organization
Fortran
product
GMX
product
WidgetCo
organization
Bell Labs
organization
ENIAC
other
IBM 7090
other
Get the full intelligence
Search transcripts, export clips, track mentions, and explore all topics from “Episode 179 - Programming Block by Block” inside PodZeus.
Start discovering podcast insights today
Start with a 7-day trial and explore a growing catalog of popular podcasts. No credit card required.
No credit card required • 7-day trial • Cancel anytime
