## Transformational Rewriting with Ruby (1993)

Venue: | In CHDL '93 |

Citations: | 13 - 8 self |

### BibTeX

@INPROCEEDINGS{Sharp93transformationalrewriting,

author = {Robin Sharp and Ole Rasmussen},

title = {Transformational Rewriting with Ruby},

booktitle = {In CHDL '93},

year = {1993},

pages = {243--260},

publisher = {Elsevier Science Publishers (North-Holland}

}

### OpenURL

### Abstract

This paper describes a tool for use in user-directed synthesis of circuits specified using the relational VLSI description language Ruby. The synthesis method is based on transformational rewriting of Ruby terms in accordance with previously defined term equivalences. The tool permits the introduction of constraints into the specification, thus enhancing the usefulness of the rewrite system in relation to simple rewriting. Keyword Codes: B.7.2, D.1.1. Keywords: Integrated Circuits, Design Aids; Applicative Programming. 1. Introduction Ruby [3] is a language intended for specifying VLSI circuits in terms of relational abstractions of their behaviour. A circuit is described by a binary relation, and the language permits simple relations to be composed into more complex ones by the use of a variety of combining forms which are higher-order functions. Similarly, simple combining forms can be composed into more complex ones, as in conventional languages for functional programming. The basi...

### Citations

781 | Rewrite Systems
- Dershowitz, Jouannaud
- 1990
(Show Context)
Citation Context ...lities, with universal quantification over variables. Variables which appear on the left-hand side of the rule must also appear on the right, in order to satisfy the stability criterion for rewriting =-=[1]-=-, and this implies that rewriting alone cannot introduce new variables into a Term. Apart from this there are no restrictions on the forms of the rules which may be used. In practice, however, most of... |

280 |
Constructive mathematics and computer programming
- Martin-Löf
- 1982
(Show Context)
Citation Context ...are definable in the strata below the current one. A consequence of this is that the ordinary function spaces, (ty1 ! ty2), must be generalised to the dependent product types introduced by Martin-Lof =-=[6, 13]-=-, as the result type of a function may depend on the value of the argument supplied to the function. In this paper, we denote the dependent product type whose range type, B , is dependent on the value... |

130 | Using dependent types to express modular structure
- MacQueen
- 1986
(Show Context)
Citation Context ...ymorphism. The general basis for the language is therefore the typeds-calculus, augmented with universally quantified types. The style of polymorphism is parametric, and the type system is stratified =-=[5]. Thus typ-=-e variables may range over all types which have been defined in lower "strata" of the hierarchy of definitions. In the standard version of T-Ruby, these strata contain definitions of standar... |

88 |
C.P.: Edinburgh LCF: A Mechanised Logic
- Gordon, Milner, et al.
- 1979
(Show Context)
Citation Context ...n full control of the process. At the same time, the meta-program also serves as documentation for the transformation performed. This approach is inspired by work of Milner, Paulson and others on LCF =-=[2, 7]-=-. There are a number of basic rewrite functions, known as tactics, which can be combined by the use of higher order functions, known as tacticals. In the T-Ruby system, these functions are Standard ML... |

83 |
Circuit design in Ruby
- Jones, Sheeran
- 1990
(Show Context)
Citation Context ... enhancing the usefulness of the rewrite system in relation to simple rewriting. Keyword Codes: B.7.2, D.1.1. Keywords: Integrated Circuits, Design Aids; Applicative Programming. 1. Introduction Ruby =-=[3]-=- is a language intended for specifying VLSI circuits in terms of relational abstractions of their behaviour. A circuit is described by a binary relation, and the language permits simple relations to b... |

21 | Relations and refinement in circuit design
- Jones, Sheeran
- 1990
(Show Context)
Citation Context ...ocess, which typically involves transformation from a "specification" in the form of one Ruby expression to an "implementation" in the form of another Ruby expression, in a calcula=-=tion-oriented style [4, 9]-=-. This paper describes a computer-based system, known as T-Ruby, for manipulating Ruby expressions for use in VLSI synthesis. The system operates within a Standard ML environment, and permits the user... |

11 |
Proving (facts about) Ruby
- Rossen
- 1990
(Show Context)
Citation Context ...ocess, which typically involves transformation from a "specification" in the form of one Ruby expression to an "implementation" in the form of another Ruby expression, in a calcula=-=tion-oriented style [4, 9]-=-. This paper describes a computer-based system, known as T-Ruby, for manipulating Ruby expressions for use in VLSI synthesis. The system operates within a Standard ML environment, and permits the user... |

8 | T-Ruby: A tool for handling Ruby expressions
- Sharp
- 1992
(Show Context)
Citation Context ...no subterms of types other than integer or Boolean, while Full evaluate also performs ordinary fi-reduction for function applications of any type. Further details of the T-Ruby system can be found in =-=[12]-=-. 5. Conclusion The style of transformational design illustrated in this paper is useful for a large proportion of the tyical areas of application of Ruby. The availability of the T-Ruby tool has made... |

7 |
Formal Ruby
- Rossen
- 1990
(Show Context)
Citation Context ...the circuit described by [R; ' ], and so on. The graphical interpretations of these relations are shown in Figure 3. The dialect of Ruby used by the system is essentially that given by Lars Rossen in =-=[8]. This dif-=-fers from the standard description of Ruby given by Jones and Sheeran in [3] in that "repetitive" combinators and wiring relations are parameterised in the number of repetitions. Thus, for e... |

7 |
The identification of propositions and types in Martin-Löf’s Type Theory: A programming example
- Smith
- 1983
(Show Context)
Citation Context ...are definable in the strata below the current one. A consequence of this is that the ordinary function spaces, (ty1 ! ty2), must be generalised to the dependent product types introduced by Martin-Lof =-=[6, 13]-=-, as the result type of a function may depend on the value of the argument supplied to the function. In this paper, we denote the dependent product type whose range type, B , is dependent on the value... |

6 | The Ruby framework
- Sharp
- 1993
(Show Context)
Citation Context ...ion contains conditional terms. However, in T-Ruby we only allow forms of expression which permit static type checking. Full details of the type system and the type checking algorithm can be found in =-=[11]-=-. 3. Rewriting Ruby Terms The T-Ruby system allows the user to rewrite Ruby terms according to pre-defined rewrite rules. Rewriting takes place in an interactive manner directed by the user. This styl... |

5 |
Logic and Computation, volume 2 of Cambridge Tracts
- Paulson
- 1987
(Show Context)
Citation Context ...n full control of the process. At the same time, the meta-program also serves as documentation for the transformation performed. This approach is inspired by work of Milner, Paulson and others on LCF =-=[2, 7]-=-. There are a number of basic rewrite functions, known as tactics, which can be combined by the use of higher order functions, known as tacticals. In the T-Ruby system, these functions are Standard ML... |

5 |
Ruby algebra
- Rossen
- 1990
(Show Context)
Citation Context ...ansferred to a suitable proof system for verification of correctness. 2. The Ruby Language The work described in this paper is based on the so-called Pure Ruby subset of Ruby, as introduced by Rossen =-=[10]-=-. This makes use of the observation that a very large class of the relations which are useful for describing VLSI circuits can be expressed in terms of four basic elements: two relations and two combi... |