Never tell people how to do things. Tell them what to do and they will surprise you with their ingenuity.
—George S. Patton U.S. general (1885–1945)
When speaking of creating languages, you need to know the roles of the people involved. What expertise do they need? What are their tasks? What tools are they using? In this chapter, you will learn the difference between using a software language to design software and designing a software language.
Software languages entail two different processes: (1) the design of a language and (2) the use of that language. The first process centers on building a specification of the language and the tooling ...