Description languages

Tero Hasu

Abstract

Hardware and software systems are increasingly complex, and reasoning about such systems, as well as creation and simulation of such systems is increasingly reliant on some degree of automation. Such automation relies on information about the systems being available in a machine-readable form, as some kind of a formal system description in a known language.

There are a number of languages designed for the purpose of describing aspects of hardware and software systems. This article provides a fairly broad overview of such description languages, focusing on languages that are potentially useful in the development of execution environments or associated toolkits. The execution environments in question could be hardware-based computation devices or virtual execution environments (emulators, simulators, or virtual machines), and the toolkits might contain compilers, assemblers, debuggers, etc.