Information to Users
Total Page:16
File Type:pdf, Size:1020Kb
The design and implementation of high level programming language features for pattern matching in real-time. Item Type text; Dissertation-Reproduction (electronic) Authors Nilsen, Kelvin Don. Publisher The University of Arizona. Rights Copyright © is held by the author. Digital access to this material is made possible by the University Libraries, University of Arizona. Further transmission, reproduction or presentation (such as public display or performance) of protected items is prohibited except with permission of the author. Download date 24/09/2021 12:04:01 Link to Item http://hdl.handle.net/10150/184461 INFORMATION TO USERS The most advanced technology has been used to photo graph and reproduce this manuscript from the microfilm master. UMI films the original text directly from the copy submitted. Thus, some dissertation copies are in typewriter face, while others may be from a computer printer. 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 copyrighted material had to be removed, a note will indicate the deletion. Oversize materials (e.g., maps, drawings, charts) are re produced by sectioning the original, beginnjng at the upper left-hand comer and continuing from left to right in equal sections with small overlaps. Each oversize page is available as one exposure on a standard 35 mm slide or as a 17" x 23" black and white photographic print for an additional charge. Photographs included in the original manuscript have been reproduced xerographically in this copy. 35 mm slides or 6" x 9" black and white photographic prints are available for any photographs or illustrations appearing in this copy for an additiollal charge. Contact UMI directly to order. I I II I'I I I, Accessing the World's Information since 1938 300 North Zeeb Road, Ann Arbor, M148106-1346 USA Order Number 8822431 The design and implementation of high-level programming language features for pattern matching in real time Nilsen, Kelvin Don, Ph.D. The University of Arizona, 1988 Copyright @1988 by Nilsen, Kelvin Don. All rights reserved. U·M·I 300 N. Zeeb Rd. Ann Arbor, MI 48106 1 The Design and Implementation of High-Level Programming . Language Features for Pattern Matching in Real Time by Kelvin Don Nilsen Copyright © Kelvin Don Nilsen 1988 A Dissertation Submitted to the Faculty of the DEPARTMENTOFCOMPUTERSCffiNCE In Partial Fulfillment l)f the Requirements For the Degree of DOCTOR OF PHll..OSOPHY In the Graduate College TIlE UNIVERSITY OF ARIZONA 1 988 -_..... _-------------------------- THE UNIVERSITY OF ARIZONA GRADUATE COLLEGE As members of the Final Examination Committee, we certify that we have read the dissertation prepared by Kelvin Don Nilsen ------~~--~-------------------------- entitled THE DESIGN AND IMPLEMENTATION OF HIGH-LEVEL PROGRAMMING LANGUAGE FEATURES FOR PATTERN MATCHING IN REAL TIME and recommend that it be accepted as fulfilling the dissertation requirement for the Degree of Doctor of Philosophy 7-13-88 Date 7-13-88 Date 7-13-88 Date Date Date Final approval and acceptance of this dissertation is contingent upon the candidate's submission of the final copy of the dissertation to the Graduate College. I hereby certify that I have read this dissertation prepared under my direction and recommend that it be accepted as fulfilling the dissertation requirement. 7-15-88 Dissertation Director Ralph E. Griswold Date 2 STATEMENT BY AU1HOR This dissertation has been submitted in partial fulfillment of requirements for an advanced degree at the University of Arizona and is deposited in the University Library to be made available to borrowers under the rules of the library. Brief quotations from this dissertation are allowable without special permission, pro vided that accurate acknowledgment of source is made. Requests for permission for extended quotation from or reproduction of this manuscript in whole or in part may be granted by the copyright holder. SIGNED~ 3 ACKNOWLEDGMENTS I would like to thank Ralph Griswold for his support in this research. Throughout, he has extended freedom to pursue my own ideas, while at the same time providing very helpful guidance. His comments and probing questions frequently revealed aspects of my work that were not yet fully developed or that might benefit significantly from minor revisions. Professor Griswold has also been a great help in focusing my efforts on pur suits that are consistent with completion of this dissertation in a timely manner. In the preparation of this dissertation and of other documents related to this dissertation, Profes sor Griswold has assisted by quickly reviewing many preliminary drafts and suggesting a variety of improvements in both content and presentation. I am also indebted to my other committee members: Saumya Debray and Peter Dow ney, who have carefully reviewed early drafts of the dissertation and provided a variety of suggestions for improving the presentation of this material. Their experience and knowledge in complimentary fields have also helped to clarify the capciu.u;,ties and limita tions of the problem-solving approaches discussed in this dissertation. To the other members of the Icon project at the University of Arizona: Dave Gude man, Janalee O'Bagy, and Ken Walker, I am indebted for their participation in several informal discussions regarding this dissertation work. Their feedback helped me to per ceive the needs and expectations of programmers who might someday use the proposed language features to write real application software. Members of the Icon project also made several good suggestions for how the language features could be presented and described to others. To Professor Kenneth Mylrea and graduate student Mohammad Navabi, both of the Electrical and Computer Engineering Department at the University of Arizona, I am grateful for the electrocardiogram data they collected for one of the applications described in Chapter 5 of this dissertation. Fmally, I am grateful to my parents and to my family. To my parents, I am especially grateful for their having taught me to be curious~ and to seek answers to my questions through active investigation. I am also grateful that they have always encouraged me to pursue my interests and ambitions and have helped me to reach my worthy goals, what ever they might be. To my wife Lorrain, I am grateful for her support and encourage ment I am also thankful for the time and attention she has given to our children in my absence (be it physical or mental) and for her willingness to work around the somewhat demanding schedule of a graduate student This work was supported by National Science Foundation Grants DCR-8401831, DCR-8502015, and DCR-8713690. 4 TABLE OF CONTENTS ABSTRACT ........................................................................................................................... 7 CHAPrER 1: IN'I'R.ODUCTION ............................................................................................ 8 § 1.1: Pattern Matching ............................................................................................... 9 §I.2: Real-Time Programming .................................................................................. 14 § 1.3: High-Level Abstractions and Programming Languages ................................... 16 §I.4: Pattern Matching in Real Time using High-Level Language ........................... 21 CHAP1'ER 2: CONTROL REQUIREMENTS OF REAL-TIME PATIERN- MATCHIN'G SYS1'EMS ................................................................................................. 24 §2.I: Goal-Directed Expression Evaluation .............................................................. 24 §2.2: Synchronization ................................................................................................ 25 §2.3: Concurrent Processes ........................................................................................ 28 §2.4: Tim::'~u~ ~i.d Interrupt Handling ...................................................................... 31 CHAPrER 3: THE S'I'REAM DATA TYPE .......................................................................... 35 §3.I: Creation of Streams .......................................................................................... 36 §3.2: Writing to Streams ............................................................................................ 37 §3.3: Reading from Streams ...................................................................................... 38 §3.4: Stream Programming Examples ....................................................................... 40 §3.5: Destruction of Streams ...................................................................................... 42 §3.6: Real-Time Stream Applications ....................................................................... 43 -_. --_ .... _------------------------------ 5 TABLE OF CONTENTS - Continued §3.7: Other Stream Applications •...•........................•.....................•..•......................... 47 CHAPrER 4: CONCURRENT PROCESSES .....................•............•........•.....................•...... 50 §4.1: Internal Streams .......................................................................•....................•... 50 §4.2: Process Creation •........•.........•........................................................................... 54 §4.3: The Yield of a Process ...•..•.•.•.........••.................................•.•.•.•.........•...........•.. 56