## KIDS: A Semi-Automatic Program Development System (1990)

Venue: | Client Resources on the Internet, IEEE Multimedia Systems ’99 |

Citations: | 241 - 23 self |

### BibTeX

@INPROCEEDINGS{Smith90kids:a,

author = {Douglas R. Smith},

title = {KIDS: A Semi-Automatic Program Development System},

booktitle = {Client Resources on the Internet, IEEE Multimedia Systems ’99},

year = {1990},

pages = {302--307}

}

### Years of Citing Articles

### OpenURL

### Abstract

The Kestrel Interactive Development System (KIDS) provides automated sup- port for the development of correct and efficient programs from formal specifications.

### Citations

597 | A transformation system for developing recursive programs
- Burstall, Darlington
- 1977
(Show Context)
Citation Context ...nd cross ntqpdd have arguments of a restricted form --- singleton sequences. This suggests the application of partial evaluation [6] or specialization [32]. KIDS has the classic UNFOLD transformation =-=[10]-=- that replaces a function call by its definition (with arguments replacing parameters). Partial evaluation proceeds by first UNFOLDing then simplifying. UNFOLDing cross ntqpud(part sol; [i]), we obtai... |

284 |
Program development by stepwise refinement
- Wirth
- 1971
(Show Context)
Citation Context ...ructured algorithms. Subsequent refinement and optimization is necessary in order to realize the potential of the algorithm. Other derivations of backtrack algorithms for the queens problem appear in =-=[3, 12, 43]-=-. Related approaches to deriving backtrack algorithms are presented in [9, 26]. 4.3 Simplification KIDS provides two expression simplifiers. The simplest and fastest, called the ContextIndependent Sim... |

255 |
Structured Programming
- Dahl, Dijkstra, et al.
- 1972
(Show Context)
Citation Context ...ructured algorithms. Subsequent refinement and optimization is necessary in order to realize the potential of the algorithm. Other derivations of backtrack algorithms for the queens problem appear in =-=[3, 12, 43]-=-. Related approaches to deriving backtrack algorithms are presented in [9, 26]. 4.3 Simplification KIDS provides two expression simplifiers. The simplest and fastest, called the ContextIndependent Sim... |

160 | Implementing mathematics with the Nuprl proof development system
- Constable, Allen, et al.
- 1986
(Show Context)
Citation Context ...ry of methods were applied to goals and selection rules were used to prune and order the search. The DRACO system [27] emphasizes domain-specific modeling and program transformation. The NuPRL system =-=[11]-=- supports program construction as a by-product of the interactive development of a constructive mathematical proof. The RAPTS system [28] emphasizes the optimization of set-theoretic programs. RAPTS a... |

140 | Centaur: the system
- Borras, Clément, et al.
- 1988
(Show Context)
Citation Context ...sformation. An interactive system called CIP-S has been developed for student use [30]. Proof obligations are built up during development and must be discharged by the user. The ERGO [21] and CENTAUR =-=[8]-=- systems emphasize languagegeneric programming environments. Both use abstract syntax representations of programs and aim to provide tools to support program transformation. Other automated program de... |

136 |
The Draco approach to constructing software from reusable components
- Neighbors
- 1984
(Show Context)
Citation Context ...lopment goals and occasionally some formal reasoning steps and manual editing. A library of methods were applied to goals and selection rules were used to prune and order the search. The DRACO system =-=[27]-=- emphasizes domain-specific modeling and program transformation. The NuPRL system [11] supports program construction as a by-product of the interactive development of a constructive mathematical proof... |

133 |
Edinburgh LCF - A mechanised logic of computation
- Gordon, Milner, et al.
- 1979
(Show Context)
Citation Context ... point of view. Our intent is to provide a base level of program transformations that can be composed via a tactic or metaprogramming language to yield higher-level or domain-specific transformations =-=[19, 42, 18]-=-. After briefly discussing the environment and inference system underlying KIDS, we step through the derivation of a program for enumerating all solutions to the k-queens problem. The steps are as fol... |

114 |
Finite differencing of computable expressions
- Paige, Koenig
- 1982
(Show Context)
Citation Context ...7] is created that works by extending partial solutions. To improve efficiency we apply simplification and partial evaluation [6] (specialization [32]) operations. We also perform finite differencing =-=[29]-=- which results in the incremental maintenance of data structures recording the rows and diagonals that are currently unoccupied by queens in the partial solution. Next, high-level-datatypes such as se... |

112 |
Program transformation systems
- Partsch, Steinbrüggen
- 1983
(Show Context)
Citation Context ...ion language. The CIP project in Munich emphasizes wide-spectrum languages, algebraic specifications, and program transformation. An interactive system called CIP-S has been developed for student use =-=[30]-=-. Proof obligations are built up during development and must be discharged by the user. The ERGO [21] and CENTAUR [8] systems emphasize languagegeneric programming environments. Both use abstract synt... |

110 |
Introducing OBJ3
- Goguen, Winkler
- 1988
(Show Context)
Citation Context ...iguration of KIDS that is used to develop domain theories. A theory is comprised of a list of imported theories, a set of introduced types, new operations and their definitions, laws, and rules (c.f. =-=[16, 20]-=-). A hierarchic library of theories is maintained with importation as the principle link. Users can enter definitions of new functions or create new definitions by abstraction on existing expressions.... |

59 |
Top-Down Synthesis of Divide-and-Conquer Algorithms
- Smith
- 1985
(Show Context)
Citation Context ...c -- The user selects an algorithm design tactic from a menu and applies it to a specification. Currently KIDS has tactics for simple problem reduction (reducing a specification to a library routine) =-=[35]-=-, divide-and-conquer [35], global search (binary search, backtrack, branch-and-bound) [37], and local search (hillclimbing) [22, 23]. 4. Apply optimizations -- The KIDS system allows the application o... |

52 |
Software Technology in the 1990s: Using a New Paradigm
- Balzer, Cheatham, et al.
- 1983
(Show Context)
Citation Context ...ormalize and automate various sources of programming knowledge and to integrate them into a highly automated environment for developing formal specifications into correct and efficient programs (c.f. =-=[2]-=-). The system, called KIDS (Kestrel Interactive Development System), provides tools for performing deductive inference, algorithm design, expression simplification, finite differencing, partial evalua... |

52 |
Structure and design of global search algorithms
- Smith
- 1992
(Show Context)
Citation Context ...to the k-queens problem. The steps are as follows. First we build up a domain theory in order to state and reason about the queens problem. Then, a well-structured but inefficient backtrack algorithm =-=[37]-=- is created that works by extending partial solutions. To improve efficiency we apply simplification and partial evaluation [6] (specialization [32]) operations. We also perform finite differencing [2... |

49 |
Program Developments: Formal Explanations of Implementations
- Wile
- 1983
(Show Context)
Citation Context ... point of view. Our intent is to provide a base level of program transformations that can be composed via a tactic or metaprogramming language to yield higher-level or domain-specific transformations =-=[19, 42, 18]-=-. After briefly discussing the environment and inference system underlying KIDS, we step through the derivation of a program for enumerating all solutions to the k-queens problem. The steps are as fol... |

48 |
Machine transformation of advice into a heuristic search procedure
- Mostow
- 1983
(Show Context)
Citation Context ...to realize the potential of the algorithm. Other derivations of backtrack algorithms for the queens problem appear in [3, 12, 43]. Related approaches to deriving backtrack algorithms are presented in =-=[9, 26]-=-. 4.3 Simplification KIDS provides two expression simplifiers. The simplest and fastest, called the ContextIndependent Simplier (CI-SIMPLIFY), is a set of equations treated as left-to-right rewrite ru... |

48 | R.: Algorithm Theories and Design Tactics
- Smith, Lowry
- 1990
(Show Context)
Citation Context ...ivation could be performed automatically. We have used KIDS to design and optimize algorithms for over fifty problems. Examples include optimal job scheduling [39], enumerating cyclic difference sets =-=[38]-=-, finding graph colorings, bin packing, binary search, vertex covers of a graph, linear programming (derived a variant of the simplex algorithm [22]), maximal segment sum [36], and sorting [35]. On se... |

46 |
An automatic technique for the selection of data representations in SETL programs
- Schonberg, Schwartz, et al.
- 1981
(Show Context)
Citation Context ...t implementation will give good performance for all occurrences of an abstract type. Work on data structure selection and refinement for very-high-level languages attempts to deal with these problems =-=[5, 33]-=-. We are currently integrating a data type refinement system (called DTRE and built by Lee Blaine) with KIDS. DTRE allows interactive specification of implementation annotations for data types in prog... |

37 |
Report on the Larch shared language
- Guttag, Horning
- 1986
(Show Context)
Citation Context ...iguration of KIDS that is used to develop domain theories. A theory is comprised of a list of imported theories, a set of introduced types, new operations and their definitions, laws, and rules (c.f. =-=[16, 20]-=-). A hierarchic library of theories is maintained with importation as the principle link. Users can enter definitions of new functions or create new definitions by abstraction on existing expressions.... |

35 |
Transformational implementation : An example
- BALZER
- 1981
(Show Context)
Citation Context ... Sequences A: seq(integer) type declaration [ ] the empty sequence empty(A) A = [ ] A(i) the ith element of A; e.g. [4; 5; 6](2) = 5 =, 6=, 2, 62 comparison predicates: equality; membership, e.g. 3 2 =-=[2; 3; 5; 3]-=- domain(A) the set of integers between 1 and length(A) inclusive range(A) same as fA(i) j i 2 domain(A)g length(A) length ([ ]) = 0, length ([3; 4]) = 2 first(A) same as A(1) rest(A) all but the first... |

32 | Partial Evaluation and Mixed Computation - Bjørner, Ershov, et al. - 1987 |

30 |
Program improvement by internal specialization
- Scherlis
- 1981
(Show Context)
Citation Context ...well-structured but inefficient backtrack algorithm [37] is created that works by extending partial solutions. To improve efficiency we apply simplification and partial evaluation [6] (specialization =-=[32]-=-) operations. We also perform finite differencing [29] which results in the incremental maintenance of data structures recording the rows and diagonals that are currently unoccupied by queens in the p... |

28 |
Automating the transformational development of software
- Fickas
- 1985
(Show Context)
Citation Context .... The TI (Transformational Implementation) system at the Information Sciences Institute [3] had a large library of transformations for implementing the GIST specification language. The GLITTER system =-=[15]-=- built on TI to provide a higher-level of transformational activity to the user. It used a problem-solving model where the user supplies development goals and occasionally some formal reasoning steps ... |

27 | Mechanical translation of set theoretic problem specifications into efficient RAM code - a case study
- Paige, Henglein
- 1987
(Show Context)
Citation Context ...tial evaluation is applied, followed by finite differencing, and data type refinement. It is encouraging to note the degree to which Paige has automated the application of finite diferencing in RAPTS =-=[28]-=-. It is conceivable that the entire queens derivation could be performed automatically. We have used KIDS to design and optimize algorithms for over fifty problems. Examples include optimal job schedu... |

26 |
Applications of a Strategy for Designing Divide-and-Conquer Algorithms
- Smith
- 1987
(Show Context)
Citation Context ...g cyclic difference sets [38], finding graph colorings, bin packing, binary search, vertex covers of a graph, linear programming (derived a variant of the simplex algorithm [22]), maximal segment sum =-=[36]-=-, and sorting [35]. On several occasions we have been able to perform new derivations before an audience. 5 Critique To become more widely used, we believe that formal methods will require automated s... |

24 |
Derived preconditions and their use in program synthesis
- Smith
- 1982
(Show Context)
Citation Context ... performs a form of deduction called directed inference. In directed inference, a source term (or formula) is transformed into a target term (or formula) bearing a specified relationship to the first =-=[34]-=-. As special cases it can perform first-order theorem-proving and formula simplification. It also allows the inference of sufficient conditions (antecedents) or necessary conditions (consequents) of a... |

18 |
Knowledge-Based Program Construction
- Barstow
- 1979
(Show Context)
Citation Context ...; ff1; 2g; f2g; f3gg) = f1; 2; 3g S + x element addition S \Gamma x element deletion Sequences A: seq(integer) type declaration [ ] the empty sequence empty(A) A = [ ] A(i) the ith element of A; e.g. =-=[4; 5; 6]-=-(2) = 5 =, 6=, 2, 62 comparison predicates: equality; membership, e.g. 3 2 [2; 3; 5; 3] domain(A) the set of integers between 1 and length(A) inclusive range(A) same as fA(i) j i 2 domain(A)g length(A... |

14 |
A functional programming environment supporting execution, partial execution and transformation
- Darlington, Harrison, et al.
- 1989
(Show Context)
Citation Context ...etaprograms to control the application of basic transformations. More recently Darlington has been developing a system which provides a uniform functional and transformational programming environment =-=[13]-=-. This project is also exploring the use of functional metaprogramming and high-level transformations such as function inversion and memoizing. The TI (Transformational Implementation) system at the I... |

14 | Reusing Software Developments
- Goldberg
- 1990
(Show Context)
Citation Context ...s it. The specification is easier to modify than the detailed code that is finally produced by KIDS. Furthermore KIDS has a rudimentary ability to replay design decisions after a specification change =-=[17]-=-. 6 Related Work In addition to KIDS, a number of experimental interactive transformational systems have been developed, a few of which are mentioned below. For a survey of early systems see [31]. Fea... |

14 | The Ergo Support System: An integrated set of tools for prototyping integrated environments
- Lee, Pfenning, et al.
- 1988
(Show Context)
Citation Context ... and program transformation. An interactive system called CIP-S has been developed for student use [30]. Proof obligations are built up during development and must be discharged by the user. The ERGO =-=[21]-=- and CENTAUR [8] systems emphasize languagegeneric programming environments. Both use abstract syntax representations of programs and aim to provide tools to support program transformation. Other auto... |

12 |
Algorithm synthesis through problem reformulation
- Lowry
- 1989
(Show Context)
Citation Context ...imple problem reduction (reducing a specification to a library routine) [35], divide-and-conquer [35], global search (binary search, backtrack, branch-and-bound) [37], and local search (hillclimbing) =-=[22, 23]-=-. 4. Apply optimizations -- The KIDS system allows the application of optimization techniques such as simplification, partial evaluation, finite differencing, and other transformations. The user selec... |

8 |
Automating algorithm design within a general architecture for intelligence
- Steier
- 1989
(Show Context)
Citation Context ...programming environments. Both use abstract syntax representations of programs and aim to provide tools to support program transformation. Other automated program development systems are described in =-=[4, 24, 25, 40]-=-. A comparative study of published algorithm derivations is given in [41]. 7 Concluding Remarks The final queens algorithm is apparently not very complicated, however we see that it is an intricate co... |

7 |
Knowledge-based software design using design schemas
- Lubars, Harandi
- 1987
(Show Context)
Citation Context ...programming environments. Both use abstract syntax representations of programs and aim to provide tools to support program transformation. Other automated program development systems are described in =-=[4, 24, 25, 40]-=-. A comparative study of published algorithm derivations is given in [41]. 7 Concluding Remarks The final queens algorithm is apparently not very complicated, however we see that it is an intricate co... |

6 |
Synthesizing algorithms with performance constraints
- MCCARTNEY
- 1987
(Show Context)
Citation Context ...programming environments. Both use abstract syntax representations of programs and aim to provide tools to support program transformation. Other automated program development systems are described in =-=[4, 24, 25, 40]-=-. A comparative study of published algorithm derivations is given in [41]. 7 Concluding Remarks The final queens algorithm is apparently not very complicated, however we see that it is an intricate co... |

6 |
Algorithm Synthesis: A Comparative Study
- STEIER, ANDERSON
- 1989
(Show Context)
Citation Context ...im to provide tools to support program transformation. Other automated program development systems are described in [4, 24, 25, 40]. A comparative study of published algorithm derivations is given in =-=[41]-=-. 7 Concluding Remarks The final queens algorithm is apparently not very complicated, however we see that it is an intricate combination of knowledge of the Queens problem, the global search algorithm... |

3 |
Knowledge-Based Software Development Tools
- Smith, Pressburger
- 1987
(Show Context)
Citation Context ...is conceivable that the entire queens derivation could be performed automatically. We have used KIDS to design and optimize algorithms for over fifty problems. Examples include optimal job scheduling =-=[39]-=-, enumerating cyclic difference sets [38], finding graph colorings, bin packing, binary search, vertex covers of a graph, linear programming (derived a variant of the simplex algorithm [22]), maximal ... |

2 |
Progress on the KBSA Performance Estimation Assistant
- Blaine, Goldberg, et al.
- 1988
(Show Context)
Citation Context ...ding a pragmatically complete rule library. Another problem is that deriving highly optimized programs can become a long and intricate process. See for example the derivation of a topological sort in =-=[7]-=-. The code generated by KIDS can be quite efficient and comparable to that produced manually by a competent programmer. Furthermore, the interface specification provides a complete characterization of... |

2 |
A system for transformationally deriving programs
- FEATHER
- 1982
(Show Context)
Citation Context ...n addition to KIDS, a number of experimental interactive transformational systems have been developed, a few of which are mentioned below. For a survey of early systems see [31]. Feather's ZAP system =-=[14]-=- built on the basic fold/unfold method [10] by introducing tactics -- metaprograms to control the application of basic transformations. More recently Darlington has been developing a system which prov... |

1 |
An overview of REFINE TM 2.0
- no, L
- 1987
(Show Context)
Citation Context ...eristics of the KIDS system and how it is used. Currently, KIDS runs on Symbolics, SUN-4, and SPARC workstations. It is built on top of REFINE 1 , a commercial knowledge-based programming environment =-=[1]-=-. The REFINE environment provides ffl an object-attribute-style database that is used to represent software-related objects via annotated abstract syntax trees; ffl grammar-based parser/unparsers that... |

1 |
Automatic programming for streams II: Transformational implementation
- BARSTOW
- 1988
(Show Context)
Citation Context ...; ff1; 2g; f2g; f3gg) = f1; 2; 3g S + x element addition S \Gamma x element deletion Sequences A: seq(integer) type declaration [ ] the empty sequence empty(A) A = [ ] A(i) the ith element of A; e.g. =-=[4; 5; 6]-=-(2) = 5 =, 6=, 2, 62 comparison predicates: equality; membership, e.g. 3 2 [2; 3; 5; 3] domain(A) the set of integers between 1 and length(A) inclusive range(A) same as fA(i) j i 2 domain(A)g length(A... |

1 |
Program development: From enumeration to backtracking
- BROY, WIRSING
- 1980
(Show Context)
Citation Context ...to realize the potential of the algorithm. Other derivations of backtrack algorithms for the queens problem appear in [3, 12, 43]. Related approaches to deriving backtrack algorithms are presented in =-=[9, 26]-=-. 4.3 Simplification KIDS provides two expression simplifiers. The simplest and fastest, called the ContextIndependent Simplier (CI-SIMPLIFY), is a set of equations treated as left-to-right rewrite ru... |

1 |
KBSA Performance Estimation Assistant, Final TR
- Goldberg, Blaine, et al.
- 1989
(Show Context)
Citation Context ... point of view. Our intent is to provide a base level of program transformations that can be composed via a tactic or metaprogramming language to yield higher-level or domain-specific transformations =-=[19, 42, 18]-=-. After briefly discussing the environment and inference system underlying KIDS, we step through the derivation of a program for enumerating all solutions to the k-queens problem. The steps are as fol... |

1 | Introducing OBJ3. Tech. Rep. SRI-CSL-88-09, SRI International, Menlo Park - GOGUEN, WINKLER - 1988 |