Structured Debugging Using a Domain Specific Language
Original Publication Date: 1976-Nov-12
Included in the Prior Art Database: 2007-Mar-30
Software Patent Institute
Leavenworth, B.M.: AUTHOR [+2]
Page 1 RC 6 3 1 1 (il26991) 1 1 1 2 7 6 (Rec'd 1 2 2 7 6 Computer Science 9 pages
B. M. LEAVENWORTH
Computer Sciences Department,
Thomas J. Watson Research Center
P.O. Box 218, Yorktown Heights, New York 10598
ABSTRACT: A structured approach to debugging is presented based on restricting the class of programs that can be written. This is achieved by defining a domain specific language, eliminating control flow by using aggregate operations, and eliminating side effects by using an applicative language as a base. The domain specific language is realized by defining domain specific operators as extensions to the base language; a set of operators are defined in the paper for data processing applications. The debugging strategy consists of setting up a sequence of input/output transforma- tions; this process takes the input to the output in partial stages SQ that the correctness of each transformation relative to its input and output set can be verified. The approach is illustrated by a simple data processing problem.
RC 6 3 1 1 (il26991) 1 1 / 1 2 / 7 6 (Rec'd 1 2 / 2 / 7 6 ) Computer Science 9 pages
Using a Domain Specific Language
Structured debugging is based on the idea of restricting the set of programs that can be wriaten in
order to derive certain advantages in much the same way that structured programming eqploits the
use of restricted control structures. The set of allowable programs isachieved by:
Restricting the domain of application and defining a domain specific language (DSL).
* Eliminating control flow by using aggregate operations.
w Eliminating side effects by using an applicative language '76,hereafter called the base language.
The domain specific language is reafized by defining domain specific operators as extensions to the base language. The DSL used as an example in this paper contab features suitable for specify* typical algorithms at a high level in data processing applications. Its purpose is to show the genera3 debugging approach as applied to a particular restricted domain.
The debugging methodology will consist of setting up a sequence of input/output transformations. This process takes the input to the output in partial stages so that the correctness of each transformation relative to its input and output set can be verified.
First, it is necessary to briefly describe the base language.
AM APPLICATIVE LANGUAGE
An applicative language deals with expressions rather than statements. An expression is either:
an identifier or constant
6 a lambda expression Xx.A where x is the bound variable which is an identifier and A is the body which is an expression
compound expression f A where f is an operator whose value is a function and A is an operand which is an expression
a conditional expression if p then q else r, where p,q, and r are expressions
The value d an...