Explore a unified approach to programming that blends algebraic types, functions, and objects.
This book presents a language framework that treats specifications, structures, and implementations as distinct yet interoperable parts. It shows how to reuse and extend designs with flexible signatures, dynamic dispatch, and explicit conversion for subtyping, all illustrated with concrete examples and clear comparisons to other languages.
This edition guides you through the core ideas behind a language called G, including how specifications define how to use a type, how structures realize those specs, and how they can be inherited or reused independently. It also covers the role of existential types, polymorphism, and the balance between static and dynamic aspects of programming in a unified theory."synopsis" may belong to another edition of this title.