Ruby as a basis for hardware/software codesign
Mary Sheeran · 1995
Ruby is a language of relations and functions intended for use in the design of hardware by refinement. An initial formal specification (written in Ruby) describes the required behaviour as a relation on streams of data values. The streams represent signals or sequences of values over time, so that behaviour over time can be described. A refinement step transforms the specification into another Ruby program representing a network of components, each of which can later be refined separately. The ways in which components are connected together are represented by special structuring functions or combinators. Ruby describes both structure and behaviour at the same time.