Logic Algorithm Synthesis from Examples and Properties

Total Page:16

File Type:pdf, Size:1020Kb

Logic Algorithm Synthesis from Examples and Properties Abstract In the context of logic programming-in-the-small, we propose logic specifications by exam- ples and properties, the latter being disambiguating generalizations of the examples. Such specifications are easy to elaborate, but are also usually incomplete, in the sense that the in- tentions need not (or cannot) be fully described. Algorithm synthesis then consists of semi- automatically extrapolating these intentions, and of designing a (recursive) algorithm imple- menting them. We develop a very disciplined approach to algorithm synthesis, namely step- wise instantiation of the place-holders of a divide-and-conquer algorithm schema. Moreover, rather than using a uniform method for these instantiations, we deploy for each place-holder the best-suited method from a generic tool-box of (deductive, inductive, …) methods. Spe- cial care is taken to handle the correctness and progression aspects of the synthesis. Keywords Automatic programming, program synthesis, logic programming, intentions, specification, algorithm, algorithm design, algorithm schema, algorithm correctness, algorithm compari- son, stepwise design, inductive logic programming, machine learning, inductive inference, generalization, deductive inference, automated theorem proving. ii Abstract Acknowledgments iii Acknowledgments I hereby express my deepest gratitude to my advisor, Prof. Yves Deville. His patience and encouraging comments were music in my ears whenever I thought I had painted myself into a corner, and his expertise and assistance were invaluable during the development of some theoretical aspects. When deadlines were close, his availability beyond the call of duty was priceless. Moreover, his relentless pursuit of excellence drove me to improvements and gen- eralizations I would never have dreamt of, and his insightful overall perception of my re- search area guided me to a better understanding of my results and contributions. Finally, he tempered my exuberant and provocative writing style into a cautious, diplomatic language. Thank you, Yves! My warmest thanks to Prof. Alan W. Biermann (Duke University, Durham, NC, USA), who accepted my application for a leave-of-absence at his department, and who later agreed on extending this research stay and on adding other, shorter stays. His faith in my approach kept my spirit alive during many months of darkness. As my mentor on program synthesis research, he distilled a lot of wisdom during our numerous discussions. I acknowledge extraordinary assistance by Prof. Baudouin Le Charlier (FUNDP, Namur, Belgium). His spiritual patronage on this thesis is unmistakable, and the fruit of many inter- esting discussions. My gratefulness further goes to Prof. Axel van Lamsweerde (UCL), who awakened my passion for research as my MS advisor, and who provided many constructive comments on earlier versions of this dissertation. Prof. Michel Sintzoff and Prof. Elie Mil- grom (both at UCL) also offered useful feedback during the writing process. Many thanks to Prof. Norbert Fuchs (Universität Zürich, Switzerland) and Prof. Klaus- Peter Jantke (TH Leipzig, Germany) for their interest in my research, and for inviting me abroad to give seminars on it. Prof. Laurent Fribourg (ENS, Paris, France) kindly assisted me during the development of some aspects that are based on his own research. Moreover, I’m indebted to my fellow PhD-student veterans Lubos˘ Popelinsky´ (Masaryk University of Brno, Czech Republic) and Tim Gegg-Harrison (Duke University, NC, USA), for many pro- ductive life and e-mail discussions. The research for this thesis was done at three universities, and hence a possibly unusually long list of miscellaneous acknowledgments: From October 1988 to December 1991, I was a member of the Folon Research Project at the Institut d’Informatique of the Facultés Universitaires Notre-Dame de la Paix (FUNDP), in Namur (Belgium). Many thanks to my Folon colleagues (by chronological order of arrival) Pierre Deboeck, Jean Burnay, Jean-Pierre Hogne, Pascal van Hentenryck, Bruno Desart, and Jean Henrard for inspiring discussions, and to our office-mates Kaninda Musumbu and Aziz Mounji for contributing to the good spirit in our office. Thanks also to the systems guys Bruno Delcourt, Philippe Du Bois, and Naji Habra, for keeping backups handy when I goofed. The Folon project was supported by the Services de Programmation de la Politique Scientifique (SPPS) of the Belgian Government, under grant RFO/AI/12. From January 1990 to March 1991, I was a visiting research scientist at the Department of Computer Science at Duke University, in Durham (North Carolina, USA). I very much ap- preciated sharing an office with Richard Hipp, Margie Dietz, and Steve Owen, and I actually feel indebted to the entire Butterfly Wing for the excellent atmosphere. Thanks also to the sys- tems people Karen Feldman and Jeff Tannehill, for their kind assistance. This stay was also supported by the SPPS, namely under grant RFO/AI/12/2. iv Acknowledgments From January 1992 to now, I was a PhD candidate at the Unité d’Informatique of the Uni- versité Catholique de Louvain (UCL), in Louvain-la-Neuve (Belgium). Many thanks to my office-mates (by chronological order of arrival) Simone Amerijckx, Marie-Hélène Liégeois, Pierre-Yves Schobbens, Philippe de Groote, Bruno Charlier, Frédéric Geurts, and Vincent Lombart, for delightful days of research. Thanks also to the systems people Hubert Broze, Marie-France Declerfayt, and Francis Degey, for their efficient trouble-shooting. My grate- fulness further goes to Prof. Elie Milgrom for his confidence in my research. Since May 1992, I am supported by the Ministry of Scientific Research and Cultural Affairs of the Government of Luxembourg, under grant BFR 92/017. Many people at these three institutions, and elsewhere, got more or less close looks at my research. During my various local seminars, I very much appreciated the perceptive com- ments made by Prof. Don W. Loveland, Prof. Gopalan Nadathur, Tim Gegg-Harrison, and Richard Hipp (all at Duke University), and by Dr. Naji Habra, Dr. Jean-Marie Jacquet, and Prof. Pierre-Yves Schobbens (all at FUNDP). My gratitude also to those who—more or less—volunteered to review preliminary versions of some chapters of this thesis, namely Bruno Charlier (UCL) and Lubos˘ Popelinsky´ (Masaryk University of Brno). Many thanks to the anonymous referees of my papers, for showing me what I should explain with more care. Finally, I thank all those whom I might have forgotten to mention, but who feel that they have had a direct or indirect impact on this thesis. I would also like to commend Frame Technology Corporation (San Jose, California, USA) for developing the FrameMaker desktop publishing system (which suits my needs so much), for their friendly customer assistance, and especially for giving me a free license dur- ing the six months where I had access to none. Finally, extra credit goes to my parents, siblings, relatives, colleagues, and friends, for en- couraging me throughout these years. Without you, I wouldn’t have had the stamina to go through all this. A special tribute to my friends Marc Blancart and Guy Huys, for helping me to think of other things, for instance while accompanying me on backpacking journeys, and to Jonathan Polito, for many “Zen-ish” bike-rides. A moral assist goes to Duke’s Blue Devils basketball teams, to the numerous volley-ball teams I was part of, to the Alternative Happy Hour crew, and to the members of the International Association at Duke University. Background, Terminology, and Conventions v Background, Terminology, and Conventions This research is set within the framework of logic programming. We assume the reader is fa- miliar with this background (see, for instance, [Lloyd 87], of which we adopt the terminolo- gy, unless otherwise noted). Here follows a list of the most used typographic conventions, abbreviations, and predefined symbols. Others will be introduced as necessary, and the entire list can be found in the Appendix. Typographic conventions Function symbols (functors) and predicate symbols start with a lower-case letter. We often write them out followed by a slash “/” and their arity. Examples are a/0, f/2, and p/3. Excep- tions are some primitive symbols, such as =/2, </2, and •/2. Functors of arity 0 are called con- stants. By abuse of language, we often say “predicate” instead of “predicate symbol”. Variable symbols, function variable symbols, and predicate variable symbols start with an upper case letter. Examples are X, F, and P. An anonymous variable is denoted by an under- score “_”. Schema variable symbols and notation variable symbols consist of a lower-case letter. Examples are i, j, k, m, and n. The distinction with one-letter constants should always be obvious from context. By abuse of language, we often say “variable” instead of “variable symbol”. Terms and atoms are usually written in prefix notation. If no ambiguity arises, unary terms and atoms are sometimes written without parentheses, while binary terms and atoms are sometimes written in infix notation. A constructed list with head H and tail T is denoted H•T, whereas nil denotes the empty list. Another notation for a constructed list with head H and tail T is [H|T], whereas [] is an- other notation for the empty list. These alternative notations allow shorthands such as [H1,H2,…,Hn] for •(H1,•(H2,•(…,•(Hn,nil)…))), and [H1,H2,…,Hn|T] for •(H1,•(H2,•(…,•(Hn,T)…))), where n>0. Non-negative integers are successors of the constant zero, which is denoted 0. The se- quence of integers is 0, s(0), s(s(0)), …, sn(0), …, where s/1 is called the successor functor. Shorthands are 0, 1, 2, …, n, …, respectively. Variable symbols, predicate variable symbols, functors, and predicate symbols within text paragraphs are written in Times-italics. However, entirely formalized paragraphs, such as specifications, (logic) algorithms, and (logic) programs, are written in Courier. Term vectors and variable vectors of indeterminate, but finite, length are denoted by bold- face symbols.
Recommended publications
  • Fiendish Designs
    Fiendish Designs A Software Engineering Odyssey © Tim Denvir 2011 1 Preface These are notes, incomplete but extensive, for a book which I hope will give a personal view of the first forty years or so of Software Engineering. Whether the book will ever see the light of day, I am not sure. These notes have come, I realise, to be a memoir of my working life in SE. I want to capture not only the evolution of the technical discipline which is software engineering, but also the climate of social practice in the industry, which has changed hugely over time. To what extent, if at all, others will find this interesting, I have very little idea. I mention other, real people by name here and there. If anyone prefers me not to refer to them, or wishes to offer corrections on any item, they can email me (see Contact on Home Page). Introduction Everybody today encounters computers. There are computers inside petrol pumps, in cash tills, behind the dashboard instruments in modern cars, and in libraries, doctors’ surgeries and beside the dentist’s chair. A large proportion of people have personal computers in their homes and may use them at work, without having to be specialists in computing. Most people have at least some idea that computers contain software, lists of instructions which drive the computer and enable it to perform different tasks. The term “software engineering” wasn’t coined until 1968, at a NATO-funded conference, but the activity that it stands for had been carried out for at least ten years before that.
    [Show full text]
  • The Humble Humorous Researcher: a Tribute to Michel Sintzoff
    The Humble Humorous Researcher A Tribute to Michel Sintzoff Axel van Lamsweerde 1 Many of us lost a close colleague on November 28, 2010. More than that: we lost a friend. One that we used to meet regularly, all over the world, always listening to us, making interesting comments and suggestions on our work, joking on every occasion and making us discover how much fun our business is. Rather than reviewing his work in detail, this note puts more focus on Michel’s rich personality, with the hope that it will bring back fond memories among those who were lucky enough to share some good times with him. The style is intended to be personal and informal. Michel would have hated anything different, to be sure. Born in 1938 in Brussels, Michel completed his master’s degree in Mathematics at the Université catholique de Louvain (UCL) in 1962. After two years of civil service as a maths teacher in Katanga (Congo), he entered the MBLE Research Laboratory in Brussels in 1964 (MBLE stands for “ Manufacture Belge de Lampes et matériel Electrique”). This was a branch of Philips Research Labs specifically dedicated to background research in applied mathematics and computing science. After 18 years of research in programming languages, formal semantics, program analysis and concurrency at MBLE, he joined the newly founded department of Computing Science at UCL in 1982 with new interests in diverse areas such as proof systems, control theory and dynamical systems. Michel contributed to the PhD work of dozens of people in Belgium and France, as supervisor or contributor, without ever having been interested in getting a PhD himself.
    [Show full text]
  • Napier88 Reference Manual Release 2.2.1
    Napier88 Reference Manual Release 2.2.1 July 1996 Ron Morrison Fred Brown* Richard Connor Quintin Cutts† Alan Dearle‡ Graham Kirby Dave Munro University of St Andrews, North Haugh, St Andrews, Fife KY16 9SS, Scotland. *Department of Computer Science, University of Adelaide, South Australia 5005, Australia. †University of Glasgow, Lilybank Gardens, Glasgow G12 8QQ, Scotland. ‡University of Stirling, Stirling FK9 4LA, Scotland. This document should be referenced as: “Napier88 Reference Manual (Release 2.2.1)”. University of St Andrews (1996). Contents 1 INTRODUCTION ............................................................................. 5 2 CONTEXT FREE SYNTAX SPECIFICATION.......................................... 8 3 TYPES AND TYPE RULES ................................................................ 9 3.1 UNIVERSE OF DISCOURSE...............................................................................................9 3.2 THE TYPE ALGEBRA..................................................................................................... 10 3.2.1 Aliasing............................................................................................................... 10 3.2.2 Recursive Definitions............................................................................................. 10 3.2.3 Type Operators...................................................................................................... 11 3.2.4 Recursive Operators ..............................................................................................
    [Show full text]
  • Astrometry 1960-80: from Hamburg to Hipparcos by Erik Høg, 2014.08.06 Niels Bohr Institute, Copenhagen University
    Astrometry 1960-80: from Hamburg to Hipparcos By Erik Høg, 2014.08.06 Niels Bohr Institute, Copenhagen University ABSTRACT: Astrometry, the most ancient branch of astronomy, was facing extinction during much of the 20th century in the competition with astrophysics. The revival of astrometry came with the European astrometry satellite Hipparcos, approved by ESA in 1980 and launched 1989. Photon-counting astrometry was the basic measuring technique in Hipparcos, a technique invented by the author in 1960 in Hamburg. The technique was implemented on the Repsold meridian circle for the Hamburg expedition to Perth in Western Australia where it worked well during 1967- 72. This success paved the way for space astrometry, pioneered in France and implemented on Hipparcos. This report gives a detailed personal account of my life and work in Hamburg Bergedorf where I lived with my family half a century ago. The report has been published in the proceedings of the meeting in Hamburg on 24 Sep. 2012 of Arbeitskreis Astronomiegeschichte of the Astronomische Gesellschaft. Gudrun Wolfschmidt is editor of the book: “Kometen, Sterne, Galaxien – Astronomie in Hamburg” zum 100jährigen Jubiläum der Hamburger Sternwarte in Bergedorf. Nuncius Hamburgensis, Beiträge zur Geschichte der Naturwissenschaften, Band 24, Hamburg: tredition 2014 The introduction and the table of contents of the book as in early 2013: https://dl.dropbox.com/u/49240691/100-HS3intro.pdf - 1 - Figure 12 Hamburg 1966 - The Repsold meridian circle ready for Perth The observer set the telescope to the declination as ordered by the assistant sitting with the star lists in the hut at left. He started the recording when he saw the star at the proper place in the field of view.
    [Show full text]
  • Scaling Functional Synthesis and Repair
    Scaling Functional Synthesis and Repair Thèse N° 8716 Présentée le 11 janvier 2019 à la Faculté informatique et communications Laboratoire d’analyse et de raisonnement automatisés Programme doctoral en informatique et communications pour l’obtention du grade de Docteur ès Sciences par EMMANOUIL KOUKOUTOS Acceptée sur proposition du jury Prof. C. Koch, président du jury Prof. V. Kuncak, directeur de thèse Prof. S. Khurshid, rapporteur Prof. D. Marinov, rapporteur Prof. M. Odersky, rapporteur 2019 Acknowledgements First and foremost, I would like to thank my advisor Viktor Kuncak, for accepting me into his lab, and generously providing his guidance, knowledge, encouragement and support during my PhD studies. This thesis would not have been possible without him. Second, I would like to thank my thesis committee members Christoph Koch, Martin Odersky, Darko Marinov and Sarfraz Khurshid, for taking the time to evaluate my thesis, and for their valuable and extensive comments on it, which helped it improve greatly to its current form. Third, I would like to thank my colleagues Etienne Kneuss, Mukund Ragothaman, Ravishadran Kandhadai Madhavan, Régis Blanc, Mikael Mayer, Nicolas Voirol, Romain Edelmann, Eva Darulova, Andreas Pavlogiannis, Georg Schmid, Jad Hamsa, Romain Ruetschi, and Sarah Sallinger, for our collaboration, exchange of ideas, and the welcoming and creative atmosphere they maintained in the lab. A special thanks goes to Etienne for our great collaboration, and his guidance and patience when he was helping me acclimate during my first months in the lab. Also, I would like to thank Fabien Salvi, Yvette Gallay and Sylvie Jankow, for helping all of us to work unobstructed with their technical and administrative support.
    [Show full text]
  • An Extension of Isabelle/UTP with Simpl-Like Control Flow
    USIMPL: An Extension of Isabelle/UTP with Simpl-like Control Flow Joshua Alexander Bockenek Thesis submitted to the Faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the requirements for the degree of Masters of Science in Computer Engineering Binoy Ravindran, Chair Peter Lammich Robert P. Broadwater December 8, 2017 Blacksburg, Virginia Keywords: Formal Verification, Formal Methods, Isabelle, Unifying Theories of Programming, Verification Condition Generation © 2018, Joshua Alexander Bockenek USIMPL: An Extension of Isabelle/UTP with Simpl-like Control Flow Joshua Alexander Bockenek (ABSTRACT) Writing bug-free code is fraught with difficulty, and existing tools for the formal verification of programs do not scale well to large, complicated codebases such as that of systems software. This thesis presents USIMPL, a component of the Orca project for formal verification that builds on Foster’s Isabelle/UTP with features of Schirmer’s Simpl in order to achieve a modular, scalable framework for deductive proofs of program correctness utilizing Hoare logic and Hoare-style algebraic laws of programming. This work is supported in part by the Office of Naval Research (ONR) under grants N00014- 17-1-2297 and N00014-16-1-2818, and the Naval Sea Systems Command (NAVSEA)/the Naval Engineering Education Consortium (NEEC) under grant N00174-16-C-0018. Any opinions, findings, and conclusions or recommendations expressed in this thesis are those of the author and do not necessarily reflect the views of ONR or NAVSEA/NEEC. USIMPL: An Extension of Isabelle/UTP with Simpl-like Control Flow Joshua Alexander Bockenek (GENERAL AUDIENCE ABSTRACT) Writing bug-free code is fraught with difficulty, and existing tools for the formal verification of programs do not scale well to large, complicated codebases such as that of systems software (OSes, compilers, and similar programs that have a high level of complexity but work on a lower level than typical user applications such as text editors, image viewers, and the like).
    [Show full text]
  • (Pdf) of the School of Squiggol: a History of the Bird−Meertens
    The School of Squiggol A History of the Bird{Meertens Formalism Jeremy Gibbons University of Oxford Abstract. The Bird{Meertens Formalism, colloquially known as \Squig- gol", is a calculus for program transformation by equational reasoning in a function style, developed by Richard Bird and Lambert Meertens and other members of IFIP Working Group 2.1 for about two decades from the mid 1970s. One particular characteristic of the development of the Formalism is fluctuating emphasis on novel `squiggly' notation: sometimes favouring notational exploration in the quest for conciseness and precision, and sometimes reverting to simpler and more rigid nota- tional conventions in the interests of accessibility. This paper explores that historical ebb and flow. 1 Introduction In 1962, IFIP formed Working Group 2.1 to design a successor to the seminal algorithmic language Algol 60 [4]. WG2.1 eventually produced the specification for Algol 68 [63, 64]|a sophisticated language, presented using an elaborate two- level description notation, which received a mixed reception. WG2.1 continues to this day; technically, it retains responsibility for the Algol languages, but practi- cally it takes on a broader remit under the current name Algorithmic Languages and Calculi. Over the years, the Group has been through periods of focus and periods of diversity. But after the Algol 68 project, the period of sharpest focus covered the two decades from the mid 1970s to the early 1990s, when what later became known as the Bird{Meertens Formalism (BMF) drew the whole group together again. It is the story of those years that is the subject of this paper.
    [Show full text]
  • Victoria Government Gazette GENERAL
    Victoria Government Gazette No. G 36 Thursday 6 September 2001 GENERAL GENERAL AND PERIODICAL GAZETTE Advertisers should note: Copy to: Gazette Officer ¥ Late copy received at The Craftsman Press Pty. Ltd. after The Craftsman Press Pty. Ltd. deadlines will be placed in the following issue of VGG, 125 Highbury Road, irrespective of any date/s mentioned in the copy (unless Burwood Vic 3125 otherwise advised). Telephone: (03) 9926 1233 ¥ Proofs will be supplied only when requested or at the Facsimile: (03) 9926 1292 direction of the Gazette Officer. DX: 32510 Burwood ¥ No additions or amendments to material for publications Email: [email protected] will be accepted by telephone. Advertising Rates and Payment ¥ Orders in Council may be lodged prior to receiving assent All prices include GST with the GovernorÕs or ClerkÕs signature. They will only be Private Notices published once approved and signed. Payment must be received in advance with ¥ Government and Outer Budget Sector Agencies please advertisement details. note: See style requirements on back page. 33 cents per word Ð Full page $198.00. Additional costs must be included in prepayment if a copy SPECIAL GAZETTES of the gazette is required. Copy Prices Ð Page Copy to: Gazette Officer $1.65 Ð Gazette $3.52 Ð Certified copy of Gazette $3.85 The Craftsman Press Pty. Ltd. (all prices include postage). Cheques should be 125 Highbury Road made payable to The Craftsman Press Pty. Ltd. Burwood Vic 3125 Telephone: (03) 9926 1233 Government and Outer Budget Sector Agencies Notices Facsimile: (03) 9926 1292 Not required to prepay. Email: [email protected] Advertisements may be faxed or sent via email with a Advertising Rates and Payment cover sheet, marked to the attention of the Gazette Officer.
    [Show full text]
  • The Design Philosophy of Distributed Programming Systems: the Mozart Experience
    The Design Philosophy of Distributed Programming Systems: the Mozart Experience Per Brand A dissertation submitted to the Royal Institute of Technology in partial fulfillment of the requirements for the degree of Doctor of Philosophy June 2005 The Royal Institute of Technology School of Information and Communication Technology Department of Electronics and Computer Systems Stockholm, Sweden TRITA-IMIT-LECS AVH 05:04 ISSN 1651-4076 ISRN KTH/IMIT/LECS/AVH-05/04–SE and ISRN SICS-D–37–SE SICS Dissertation Series 37 ISSN 1101-1335 c Per Brand, 2005 Abstract Distributed programming is usually considered both difficult and inherently different from concurrent centralized programming. It is thought that the distributed program- ming systems that we ultimately deploy, in the future, when we’ve worked out all the details, will require a very different programming model and will even need to be evaluated by new criteria. The Mozart Programming System, described in this thesis, demonstrates that this need not be the case. It is shown that, with a good system design, distributed pro- gramming can be seen as an extended form of concurrent programming. This is from the programmer’s point-of-view; under the hood the design and implementation will necessarily be more complex. We relate the Mozart system with the classical trans- parencies of distributed systems. We show that some of these are inherently on the application level, while as Mozart demonstrates, others can and should be dealt with on the language/system level. The extensions to the programming model, given the right concurrent programming base, are mainly concerned with non-functional properties of programs.
    [Show full text]
  • PART I. Council A
    Tab13b_TC-2 report.doc TC-2 Software Theory and Practice Report to Council and TA London, February-March 2007 Period covered: September 2006 - February 2007 Robert Meersman (BE) and Judith Bishop (ZA)/Stefan Biffl (AT) Chair and Secretary (2006/2007), IFIP TC-2 PART I. Council a. Meetings held and scheduled. TC-2 held its annual meeting on June 10-11, 2006 in Como, Italy (reported earlier). The membership (see Annexure 1) stands at 46 (cf 43 in 2006). The next annual TC2 meeting is June 17-18, 2007, in Sofia, Bulgaria. b. Changes in membership and officers Robert Meersman (BE) was re-elected to serve as TC2 Chair for a second term (2007-9) Judith Bishop (ZA) resigned at the end of 2006 as Vice Chair and TC Secretary. New Vice Chair: Bashar Nuseibeh (GB) <[email protected]> New TC Secretary: Stefan Biffl (AT) [email protected] as proposed by TC2 Chair and approved by TC2 membership. TC2 Membership: • New delegates/members: RS Nenad Stefanovic <[email protected]> JP Masami Hagiya <[email protected]> WG 2.2 I. Walukiewicz (F) new vice chair WG 2.4 Welf Löwe (SWE) WG 2.5 Shigeo Kawata WG 2.6 Thomas Risse WG 2.7 Simone Barbosa WG 2.7 Gerrit van der Veer WG 2.13 Brian Fitzgerald • Membership ended or delegates resigned JP Kakehi Katsuhiko c. Working groups WG2.1 Report submitted by Lambert Meertens 1. Changes in membership and officers: There were no changes during this period. 2. Last meeting The 62th meeting of WG 2.1 was held 11 − 15 December 2006 in Namur, Belgium.
    [Show full text]
  • Front Matter
    Cambridge University Press 978-1-107-03660-4 — Systematic Program Design Yanhong Annie Liu Frontmatter More Information Systematic Program Design From Clarity to Efficiency A systematic program design method can help developers ensure the correctness and per- formance of programs while minimizing the development cost. This book describes a method that starts with a clear specification of a computation and derives an efficient im- plementation by step-wise program analysis and transformations. The method applies to problems specified in imperative, database, functional, logic, and object-oriented program- ming languages with different data, control, and module abstractions. Designed for courses or self-study, this book includes numerous exercises and examples that require minimal computer science background, making it accessible to novices. Expe- rienced practitioners and researchers will appreciate the detailed examples in a wide range of application areas including hardware design, image processing, access control, query optimization, and program analysis. The last section of the book points out directions for future studies. Yanhong Annie Liu is a Professor of Computer Science at Stony Brook University. She received her BS from Peking University, MEng from Tsinghua University, and PhD from Cornell University. Her primary research has focused on general and systematic methods for program development, algorithm design, and problem solving. She has published in many top journals and conferences, served more than fifty conference chair or committee roles, and been awarded more than twenty research grants in her areas of expertise. She has taught more than twenty different courses in a wide range of Computer Science areas and presented close to a hundred research talks and invited talks at international confer- ences, universities, and research institutes.
    [Show full text]
  • The ALGOL 68 Story a Personal Account by a Member of the Design Team Professor John E
    ACS Bulletin, November 1978, Page 4-6 The ALGOL 68 Story A personal account by a member of the design team Professor John E. Peck, University of British Colombia, Vancouver, Canada Early Years My early years were spent in South Africa. I got my B.Sc. at the University of Natal in mathematics and physics and soon after that my M.Sc. in mathematics. My first job was a daily analysis of superphosphate at a chemical factory near Durban belonging to the ICI group, and then I taught mathematics to engineers at the University of Natal. In 1946 I took up a scholarship and went to Yale University for graduate studies, where I obtained a Ph.D. in 1950 with a thesis on topological semigroups. I taught a year at Brown University and then for three years back at the University of Natal. We then decided to emigrate to Canada where I spent a year at the University of New Brunswick, four years at McGill University, ten years at Calgary and the remaining years at the University of British Columbia. Up to the year 1959 I had thought little about computing, my professional activities being in the realm of pure mathematics where the activity of greatest importance was the proving of useless theorems. In the spring of 1959 an invitation was circulated in the Mathematics department at McGill, where I was working, to learn computer programming on the Datatron. My colleagues all looked down their noses at the thought of such a mundane exercise, for wasn't it clear that all that needed to be known about computing was the mathematical theory of switching circuits.
    [Show full text]