Chapter:Programs, Executables and Architectures
From Computing Project Repository
TITLE (provisional) 'Programs, executables and architectures' AUTHORS (provisional): Jan Bergstra, Inge Bethke and Alban Ponse,
CONTENT (provisional, some items may be left out if it becomes to long, connections to other papers may be included as options for doing so emerge):
- definitions of hardware and software, and a split up of software in control code and content code (using machine function based control code algebra),
- an analysis of when a control code is a program and in which case it is not. A precise definition of what a program is, based on program algebra and a distinction between programs (= instruction streams) and program descriptions (often simply called programs). Projection semantics of program description notations (programming languages) and why this provides a pragmatic view towards many program notations irrespective of whether one appreciates their design or not.
- a formalization of clients and services culminating in client/server composition of threads and its key properties.
- a description of multi-threading and concurrency at a foundational level using thread algebra. An example of the conept of a virus, an analyisis of the classic result fo Fred Cohen on virus detection,
- a description of the halting problem as a statement about programs operating in a formalized architecture.