Constructor theory, https://www.constructortheory.org/, is a relatively new view of physics and computation led by one of the foundational voices in quantum computing, David Deutsch. It posits a substrate of data containing constructors, which are capable of computational tasks, including the creation of new constructors. This is different from a Turing Machine in that the computing head is actually data and can recreate itself where a Turing Machine cannot. This view of computation where code is data will be familiar with programmers of Lisp and other declarative languages.
At the same time, Constructor Theorists are occupied with factuals and counterfactuals rather than formulas that express physical laws. These being discrete statements about what is or is not possible in a system, the resulting models from this approach would be state machines rather than flow models, justifying our original emphasis on finite state machines in our researches.
The utility of FSMs in designs of both physical and virtual machines is further borne out by the researches of Leslie Lamport, known for the Lamport Clock, Paxos, and the Bakery Algorithm. All that is lacking is a language to describe our state machines.
Lambda Calculus and Category Theory are our languages for describing our physical and virtual machines respectively. The axioms of the lambda can be combined to form the same logic elements as transistors can, but lambda calculus is unwieldy for large models. For these, we need a language that maps other mathematical and physical constructs to the lambda, which describes Category Theory.
Combining these elements, we have the basic tools for mapping the boxes and arrows of an FSM design into gates that can be engraved on silicon as well as higher level abstractions that can be humanly manipulated. While this mapping isn’t trivial, it is provable and it is a sound basis for design. Category Theory is known for arrows and monads. Oversimplified, arrows are functions and monads are boxes.
Propagators, truth maintenance systems and domain specific languages are three of many high level constructs that are supported more cleanly by programming paradigms descended from lambda calculus and Category Theory than those pragmatically following from the silicon. By clean support, I mean that an expert in an application area can learn at least one technique for expressing their knowledge in a computationally accessible way.
Type Theory is a better way to order computation than rote transcription of formulas. For a trivial example, “d = rt” is supposed to give us distance when rate and time are supplied, but that formula assumes that the units are compatible. Type Theory says that a rate in km/h and a time in hours will give us a distance in km, because km is of type distance and you should multiply km/h by h to derive km. The difference between type theory and formulas is that you can do algebra with types (as shown), and therefore types are computable; rote formulas are “give a man a fish” where Type Theory is a whole fishing academy.
This was easier and more succinct than I expected, so doubtless there will be omissions and also questions left unanswered. Please help me by letting me know where it would be helpful to unpack this dense prose and make more explicit connections and where you’d like references.