It is not always clear what computer programs mean in the various languages in which they can be written, yet a picture can be worth 1000 words, a diagram 1000 instructions. In this unique textbook/reference, programs are drawn as string diagrams in the language of categories, which display a universal syntax of mathematics (Computer scientists use them to analyze the program semantics; programmers to display the syntax of computations). Here, the string-diagrammatic depictions of computations are construed as programs in a single-instruction programming language. Such programs as diagrams show how functions are packed in boxes and tied by strings. Readers familiar with categories will learn about the foundations of computability; readers familiar with computability gain access to category theory. Additionally, readers familiar with both are offered many opportunities to improve the approach.
While programmers program computers in a great variety of languages, mathematicians study mathematics in a great variety of completely different languages. A great variety of languages is a good thing, provided that the languages do not isolate but diversify the views of the world and that there are multi-lingual communities to connect them. Many mathematicians speak programming languages; many programmers are conversant with mathematics. The language of categories seems convenient for both, and to some extent connects the communities. In this book, we use a categorical language based on string diagrams that is so basic that it must be contained in every mathematical model of computation, and so compact that every programming language must project onto it. It evolved through many years of teaching mathematics of computation. The diversity of the mathematical and the programming languages makes such teaching and learning tasks into lengthy affairs, loaded with standard prerequisites. By peeling off what got standardized by accident and following the shortcuts that emerged, and then peeling off what became unnecessary after that, we arrived at a mathematical model of computation generated by a single diagrammatic element, which is also a single-instruction programming language. I know it sounds crazy, but read on.
Topics and features:
Delivers a ‘crash’ diagram-based course in theory of computation
Uses single-instruction diagrammatic programming language
Offers a practical introduction into categories and string diagrams as computational tools
Reveals how computability is programmability, rather than an ‘ether’ permeating computers
Provides a categorical model of intensional computation is unique up to isomorphism
Serves as a stepping stone into research of computable categories
In addition to its early chapters introducing computability for beginners, this flexible textbook/resource also contains both middle chapters that expand for suitability to a graduate course as well as final chapters opening up new research.
Author(s): Dusko Pavlovic
Publisher: Springer Nature Switzerland
Year: 2023
Language: English
Pages: 269
Cover
Front Matter
1. Drawing Types and Functions
2. Monoidal Computer: Computability as a Structure
3. Fixpoints
4. What Can Be Computed
5. What Cannot Be Computed
6. Computing Programs
7. Stateful Computing
8. Program-Closed Categories: Computability as a Property
Back Matter