A Formal Methodology for Deriving Purely Functional Programs from Z Specifications Via the Intermediate Specification Language Funz
Total Page:16
File Type:pdf, Size:1020Kb
Louisiana State University LSU Digital Commons LSU Historical Dissertations and Theses Graduate School 1995 A Formal Methodology for Deriving Purely Functional Programs From Z Specifications via the Intermediate Specification Language FunZ. Linda Bostwick Sherrell Louisiana State University and Agricultural & Mechanical College Follow this and additional works at: https://digitalcommons.lsu.edu/gradschool_disstheses Recommended Citation Sherrell, Linda Bostwick, "A Formal Methodology for Deriving Purely Functional Programs From Z Specifications via the Intermediate Specification Language FunZ." (1995). LSU Historical Dissertations and Theses. 5981. https://digitalcommons.lsu.edu/gradschool_disstheses/5981 This Dissertation is brought to you for free and open access by the Graduate School at LSU Digital Commons. It has been accepted for inclusion in LSU Historical Dissertations and Theses by an authorized administrator of LSU Digital Commons. For more information, please contact [email protected]. INFORMATION TO USERS This manuscript has been reproduced from the microfilm master. UMI films the text directly from the original or copy submitted. Thus, some thesis and dissertation copies are in typewriter face, while others may be from any type of computer printer. H ie quality of this reproduction is dependent upon the quality of the copy submitted. Broken or indistinct print, colored or poor quality illustrations and photographs, print bleedthrough, substandardm argins, and improper alignment can adversely affect reproduction. In the unlikely, event that the author did not send UMI a complete manuscript and there are missing pages, these will be noted. Also, if unauthorized copyright material had to be removed, a note will indicate the deletion. Oversize materials (e.g., maps, drawings, charts) are reproduced by sectioning the original, beginning at the upper left-hand comer and continuing from left to right in equal sections with small overlaps. Each original is also photographed in one exposure and is included in reduced form at the back of the book. Photographs included in the original manuscript have been reproduced xerographically in this copy. Higher quality 6" x 9" black and white photographic prints are available for any photographs or illustrations appearing in this copy for an additional charge. Contact UMI directly to order. A Bell & Howell Information Company 300 North Zeeb Road. Ann Arbor. Ml 48106-1346 USA 313/761-4700 800/521-0600 A FORMAL METHODOLOGY FOR DERIVING PURELY FUNCTIONAL PROGRAMS FROM Z SPECIFICATIONS VIA THE INTERMEDIATE SPECIFICATION LANGUAGE FUNZ A Dissertation Submitted to the Graduate Faculty of the Louisiana State University and Agricultural and Mechanical College in partial fulfillment of the requirements for the degree of Doctor of Philosophy in The Department of Computer Science by Linda Bostwick Sherrell B.S., Auburn University, 1972 M.S., Auburn University, 1974 May 1995 DMI Number: 9538761 Copyright 1995 by Sherrell, Linda Bostwick All eights reserved. DMI Microform 9538761 Copyright 1995, by UMI Company. All rights reserved. This microform edition is protected against unauthorized copying under Title 17, United States Code. UMI 300 North Zeeb Road Ann Arbor, MI 48103 © Copyright 1995 Linda Bostwick Sherrell All rights reserved ii Acknowledgements This dissertation would not have been possible without the support of numerous individu als. First, I would like to thank Dr. Doris L. Carver, my major professor, for encouraging me to submit my results to international conferences and journals early in the process. The com ments from reviewers have helped to improve this work and to inspire me to continue on my path. Furthermore, Dr. Carver has presented an excellent role model. I only hope that I will be able to show the same concern and understanding towards my own students, while balanc ing the demands of teaching, research, and family. Second, I would like to thank each of the members of my committee for their contribu tions to my success. Dr. Harriet Taylor was my first computer science teacher at Louisiana State University. Needless to say if her programming course had not been enjoyable, I would not be here today. Dr. J. Bush Jones has provided me with an excellent background in compil ers and has always been accessible for questions. Dr. Robert F. Lax, my minor professor, has continually shown an interest in my career, beginning with my days as an Instructor in the De partment of Mathematics at LSU and later as my modern algebra professor. I would also like to thank Dr. Lai-Him Chan, from Physics & Astronomy, for agreeing to serve as the Dean’s Representative. Two other professors from the Department of Computer Science deserve a special thanks. Dr. Andrzej Hoppe, who was one of my early advisors, first introduced me to the functional programming paradigm by emphasizing the pure aspects of Lisp. Dr. Donald H. Kraft has consistently demonstrated his support throughout the years even though he was not a member of my committee. iii I would like to thank all the members of the Software Engineering Group for their friend ship and encouragement. In addition, I would like to thank David Hoelzeman with whom I shared an office for several years. His continued support after accepting an academic job have helped to provide me with a different perspective, and I appreciate his willingness to listen to my problems. I would also like to thank a special friend and colleague, Gerry Vidrine. Gerry and I be came good friends when we were both instructors in the Mathematics Department at LSU. Even though our lives have taken unexpected turns over the years, she has always found occa sions to check on my progress. I am grateful that she has been so understanding about the limitations on my time. Finally, I would like to thank various members of my family. First, I would like to thank my father, Leonard C. Bostwick, for giving me the confidence in myself to pursue a degree in the sciences when it was unfashionable for women. I would like to thank my mother, Nellie Rose Ann, for allowing me to participate in numerous activities throughout my school years. Second, I would like to thank my two sons, Robert Lawson and David Jeffrey, for under standing that I needed to pursue an advanced degree at this time in my life. Even when I missed one of their baseball games or special school functions, they never made me feel guilty. In fact, their support and encouragement sometimes made me wonder who was the parent and who was the child. Last, but most of all, I would like to thank my husband Dan. Without his untiring pa tience, love, and reassurance, none of this would have been possible. 1 know that at times it must have seemed like I would never finish my degree, and his life would become an endless discussion about my dissertation. I want to take this opportunity to tell him how much I ap preciate all the sacrifices that he has made for me. Table of Contents Acknowledgements .............................................................................................................. iii List of Tables ....................................................................................................................... vii List of Figures ...................................................................................................................... viii Abstract................................................................................................................................ ix Chapter 1. Introduction ............................................................................................................ 1 1.1 Overview....................................................... 1 1.2 Functional Programming ................................................................................ 2 1.2.1 Historical Influences ............................................................................ 3 1.2.2 Language Features ................................................. 4 1.2.3 The Programming Language Haskell .................................................. 9 1.3 Formal Methods .............................................................................................. 13 1.3.1 A Taxonomy for Formal Specification Languages .............................. 14 1.3.2 The Z Specification Language ............................................................. 16 1.4 Outline of the Dissertation .............................................................................. 18 2. Related Research ................................................................ 21 2.1 Prototyping ..... 21 2.2 Formal Program Development ....................................................................... 24 2.2.1 Extended M L ....................................................................................... 25 2.2.2 Larch/ML.............................................................................................. 26 2.2.3 From Z to Lazy M L ............................................................................. 28 2.3 A Frame of Reference for F unZ ....................................... 30 3. FunZ: The Language and Associated Methodology ............................................... 36 3.1 Motivation ....................................................................................................... 36 3.1.1 Why Z and Haskell? ............................................................................ 38 3.1.2 Why an Intermediate Language? ...........................................