Specifications of complex, large scale, computer software and hardware systems can be radically simplified by using simple maps from input sequences to output values. These "state machine maps" provide an alternative representation of classical Moore type state machines. Composition of state machine maps corresponds to state machine products and can be used to specify essentially any type of interconnection as well as parallel and distributed computation. State machine maps can also specify abstract properties of systems and are significantly more concise and scalable than traditional representations of automata. Examples included here include specifications of producer/consumer software, network distributed consensus, real-time digital circuits, and operating system scheduling. The motivation for this work comes from experience designing and developing operating systems and real-time software where weak methods for understanding and exploring designs is a well known handicap. The methods introduced here are based on ordinary discrete mathematics, primitive recursive functions and deterministic state machines and are intended, initially, to aid the intuition and understanding of the system developers. Staying strictly within the boundaries of classical deterministic state machines anchors the methods to the algebraic structures of automata and semigroups, obviates any need for axiomatic deduction systems, "formal methods", or extensions to the model, and makes the specifications more faithful to engineering practice. While state machine maps are obvious representations of state machines, the techniques introduced here for defining and composing them are novel.
翻译:使用从输入序列到输出值的简单地图,可以大幅度简化复杂、大尺度、计算机软件和硬件系统的具体规格。这些“状态机器地图”提供了古典摩尔型国家机器的替代图示。国家机器地图的构成与国家机器产品相对,可以用来基本上具体说明任何类型的互联以及平行和分布的计算。国家机器地图也可以具体说明系统的抽象特性,比传统自动数据表示方式要简单得多和可伸缩得多。这里的例子包括生产者/消费者软件的规格、网络分布式共识、实时数字电路和操作系统时间安排。这项工作的动力来自设计和开发操作系统的经验和实时软件,其中了解和探索设计的方法薄弱是众所周知的障碍。这里采用的方法基于普通的离散数学、原始循环功能和确定型国家机器,最初是为了帮助系统开发者的直觉和理解。严格地在经典确定型国家机器的边界内固定了自动化和半组的方位结构,从而避免了对固定操作系统的操作系统以及实时软件和实时软件的需求。这里采用的方法是基于一个众所周知的障碍。