Browse Prior Art Database

Structured Debugging Using a Domain Specific Language

IP.com Disclosure Number: IPCOM000148682D
Original Publication Date: 1976-Nov-12
Included in the Prior Art Database: 2007-Mar-30

Publishing Venue

Software Patent Institute

Related People

Leavenworth, B.M.: AUTHOR [+2]

Abstract

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 CenterP.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.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 20% of the total text.

Page 1 of 10

Page 1


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

Structured Debugging


Using a Domain Specific Language

[This page contains 1 picture or other non-text object]

Page 2 of 10

Rage 2.

INTRODUCTION

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...