Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Matrix code
Van Emden M. Science of Computer Programming84 3-21,2014.Type:Article
Date Reviewed: Aug 27 2014

Imperative programming verification is a serious problem! Parallel development of proof and code for imperative programming is the proposed solution. A new language is presented to create a proof in parallel with the code called matrix code, which is based on an extension of finite state machines (FSMs) called dual state machines (DSMs). Programs are represented as a matrix and the elements are binary relations among data states. The construct of the matrix is explained with clarity and a logical progression of building the theoretical foundations and then providing small, conceptually contained examples.

The problem is characterized as addressing only “hard-core” imperative code, or that which would not have extensions to support functional programming. This restriction creates an academic construct of orthogonality that does not typically exist. Many general programming languages are flexible enough to support imperative and functional paradigms. For instance, C# 3.0 and Visual Basic 9.0 have extensions to support functional programming that include type inference and lambda expressions. Although this is an artificial construct, it serves a solid instructional purpose of reducing the complexity of the concepts and providing a focused view of imperative program verification. The author provides the necessary definitions, theorems, lemmas, and proofs for the semantics of DSMs, or directs the reader to references of prior work.

This 21-page paper is well written with many examples of using matrix code in the application of DSMs. The relevancy of the topic to current best practices might be better explored; the author provides 19 references and all but two predate the year 2000. The matrix code language to support parallel development of proof and code is straightforward in the examples provided, but might prove daunting if applied to a large development project.

Reviewer:  Nancy Eickelmann Review #: CR142658 (1411-0985)
Bookmark and Share
  Featured Reviewer  
 
Program Verification (I.2.2 ... )
 
 
Methodologies (D.2.1 ... )
 
 
General (D.1.0 )
 
Would you recommend this review?
yes
no
Other reviews under "Program Verification": Date
Extraction of redundancy-free programs from constructive natural deduction proofs
Takayama Y. Journal of Symbolic Computation 12(1): 29-69, 1991. Type: Article
Oct 1 1992
PROUST: an automatic debugger for PASCAL programs
Johnson W., Soloway E. BYTE 10(4): 179-190, 1985. Type: Article
Aug 1 1985
Breeding software test cases with genetic algorithms
Berndt D., Fisher J., Johnson L., Pinglikar J., Watkins A.  Conference on System Sciences (Proceedings of the 36th Annual Hawaii International Conference on System Sciences (HICSS’03) - Track 9, Big Island, HI, Jan 6-9, 2003)338.12003. Type: Proceedings
Jun 3 2004
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy