Hostname: page-component-7c8c6479df-5xszh Total loading time: 0 Render date: 2024-03-29T12:37:16.927Z Has data issue: false hasContentIssue false

Metamorph – a formal methods toolkit with application to the design of digital hardware

Published online by Cambridge University Press:  07 November 2008

P.J. Brumfitt
Affiliation:
Logica Cambridge Ltd., Betjeman House, 104 Hills Road, Cambridge, CB2 1LQ, UK
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

MetaMorph is a software tool that supports transformation and proof for an equational non-strict functional language. It was developed as a vehicle for research into the synthesis of digital logic, but is equally suitable for reasoning about functional programs. The theorem prover may be used for verifying new reusable transforms and to assist the search for transformation sequences having a constrained goal. The paper provides an overview of all aspects of the project, and a brief discussion of its application to hardware.

Type
Articles
Copyright
Copyright © Cambridge University Press 1992

References

Backus, J.Can programming be liberated from the von Neumann style? Comm. ACM, 21 (8): 613–41.CrossRefGoogle Scholar
Bird, R. and Wadler, P. 1988. Introduction to functional programming. Prentice Hall.Google Scholar
Boyer, R. S. and Moore, J. S. 1979. A computational logic. Academic Press.Google Scholar
Boyer, R. S. and Moore, J. S. 1988. A computational logic handbook. Academic Press.Google Scholar
Burstall, R. M. 1969. Proving properties of programs by structural induction. The Computer J., 12 (1): 41–8.CrossRefGoogle Scholar
Burstall, R. M. and Darlington, J. 1977. A transformation system for developing recursive programs. JACM, 24 (1): 4467.CrossRefGoogle Scholar
Cardelli, L. 1987. Basic polymorphic type checking. Sci. of Computer Programming, 8 (2): 147–72.CrossRefGoogle Scholar
Darlington, J. 1981. An experimental program transformation and synthesis system. Artificial Intelligence, 16: 146.CrossRefGoogle Scholar
Gordon, M. 1985. A Machine Oriented Formulation of Higher Order Logic. Computer Laboratory, University of Cambridge, Technical Report 68.Google Scholar
Gordon, M. 1986. Why higher-order logic is a good formalism for specifying and verifying hardware. In: Formal aspects of VLSI design, G. J., Milne and P. A., Subrahmanyam (eds). Elsevier.Google Scholar
van Harmelen, F. and Bundy, A. 1988. Explanation-based generalisation = partial evaluation. Artificial Intelligence,36: 401–12.CrossRefGoogle Scholar
Johnson, S. D. 1983. Synthesis of digital designs from recursion equations. PhD Thesis, Indiana University.Google Scholar
Milner, R. 1978. A theory of type polymorphism in programming. J. Computer and System Sci., 17 (3): 348–75.CrossRefGoogle Scholar
Sheeran, M. 1984. muFP, a language for VLSI design. In: 1984 ACM Symposium on LISP and Functional Programming, Austin, Texas, 104–12.CrossRefGoogle Scholar
Spivey, J. M. 1988. Understanding Z. Cambridge University Press.Google Scholar
Turner, D. A. 1985a. Functional programs as executable specifications. In: Mathematical Logic and Programming Languages, C. A. R., Hoare and J. C., Shepherdson (eds). Prentice Hall.Google Scholar
Turner, D. A. 1985b. Miranda: A non-strict functional language with polymorphic types. In: Proc IFIP International Conference on Functional Programming Languages and Computer Architecture, Nancy, France. (Springer Lecture Notes in Computer Science, vol 201).Google Scholar
Wadge, W. W. and Ashcroft, E. A. 1985. LUCID, the dataflow programming language. Academic Press.Google Scholar
Submit a response

Discussions

No Discussions have been published for this article.