Dijkstra once wrote that computer science is no more about computers than astronomy is about
telescopes. Despite the many incredible advances in c- puter science from times that predate
practical mechanical computing there is still a myriad of fundamental questions in
understanding the interface between computers and the rest of the world. Why is it still hard
to mechanize many tasks that seem to be fundamentally routine even as we see ever-increasing -
pacity for raw mechanical computing? The disciplined study of domain-speci?c languages (DSLs)
is an emerging area in computer science and is one which has the potential to revolutionize
the ?eld and bring us closer to answering this question. DSLs are formalisms that have four
general characteristics. - They relate to a well-de?ned domain of discourse be it controlling
tra?c lights or space ships. - They have well-de?ned notation such as the ones that exist for
prescribing music dance routines or strategy in a football game. - The informal or intuitive
meaning of the notation is clear. This can easily be overlooked especially since intuitive
meaning can be expressed by many di?erent notations that may be received very di?erently by
users. - The formal meaning is clear and mechanizable as is hopefully the case for the
instructions we give to our bank or to a merchant online.