Issue No.03 - May/June (1999 vol.25)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/32.798326
<p><b>Abstract</b>—We propose a new high-level programming notation, called FIDO, that we have designed to concisely express regular sets of strings or trees. In particular, it can be viewed as a domain-specific language for the expression of finite-state automata on large alphabets (of sometimes astronomical size). FIDO is based on a combination of mathematical logic and programming language concepts. This combination shares no similarities with usual logic programming languages. FIDO compiles into finite-state string or tree automata, so there is no concept of run-time. It has already been applied to a variety of problems of considerable complexity and practical interest. In the present paper, we motivate the need for a language like FIDO, and discuss our design and its implementation. Also, we briefly discuss design criteria for domain-specific languages that we have learned from the work with FIDO. We show how recursive data types, unification, implicit coercions, and subtyping can be merged with a variation of predicate logic, called the <it>Monadic Second-order Logic </it>(M2L) on trees. FIDO is translated first into pure M2L via suitable encodings, and finally into finite-state automata through the MONA tool.</p>
Domain-specific languages, regular sets, trees, strings, logic.
Nils Klarlund, Michael I. Schwartzbach, "A Domain-Specific Language for Regular Sets of Strings and Trees", IEEE Transactions on Software Engineering, vol.25, no. 3, pp. 378-386, May/June 1999, doi:10.1109/32.798326