A Auxiliary Definitions

Total Page:16

File Type:pdf, Size:1020Kb

A Auxiliary Definitions A Auxiliary Definitions This appendix contains auxiliary definitions omitted from the main text. Variables fun lvars :: com ⇒ vname set where lvars SKIP = {} lvars (x ::= e)={x} lvars (c1;; c2)=lvars c1 ∪ lvars c2 lvars (IF b THEN c1 ELSE c2)=lvars c1 ∪ lvars c2 lvars (WHILE b DO c)=lvars c fun rvars :: com ⇒ vname set where rvars SKIP = {} rvars (x ::= e)=vars e rvars (c1;; c2)=rvars c1 ∪ rvars c2 rvars (IF b THEN c1 ELSE c2)=vars b ∪ rvars c1 ∪ rvars c2 rvars (WHILE b DO c)=vars b ∪ rvars c definition vars :: com ⇒ vname set where vars c = lvars c ∪ rvars c Abstract Interpretation fun strip :: aacom⇒ com where strip (SKIP {P})=SKIP strip (x ::= e {P})=x ::= e © Springer International Publishing Switzerland 2014 281 T. Nipkow and G. Klein, Concrete Semantics, DOI 10.1007/978-3-319-10542-0 282 A Auxiliary Definitions strip (C 1;;C 2)=strip C 1;; strip C 2 strip (IF b THEN {P 1} C 1 ELSE {P 2} C 2 {P})= IF b THEN strip C 1 ELSE strip C 2 strip ({I } WHILE b DO {P} C {Q})=WHILE b DO strip C fun annos :: aacom⇒ a list where annos (SKIP {P})=[P] annos (x ::= e {P})=[P] annos (C 1;;C 2)=annos C 1 @ annos C 2 annos (IF b THEN {P 1} C 1 ELSE {P 2} C 2 {Q})= P 1 # annos C 1 @ P 2 # annos C 2 @ [Q] annos ({I } WHILE b DO {P} C {Q})=I # P # annos C @ [Q] fun asize :: com ⇒ nat where asize SKIP = 1 asize (x ::= e)=1 asize (C 1;;C 2)=asize C 1 + asize C 2 asize (IF b THEN C 1 ELSE C 2)=asize C 1 + asize C 2 + 3 asize (WHILE b DO C )=asize C + 3 definition shift :: (nat ⇒ a) ⇒ nat ⇒ nat ⇒ a where shift f n =(λp. f (p+n)) fun annotate :: (nat ⇒ a) ⇒ com ⇒ aacomwhere annotate f SKIP = SKIP {f 0} annotate f (x ::= e)=x ::= e {f 0} annotate f (c1;;c2)=annotate f c1;; annotate (shift f (asize c1)) c2 annotate f (IF b THEN c1 ELSE c2)= IF b THEN {f 0} annotate (shift f 1) c1 ELSE {f (asize c1 + 1)} annotate (shift f (asize c1 + 2)) c2 {f (asize c1 + asize c2 + 2)} annotate f (WHILE b DO c)= {f 0} WHILE b DO {f 1} annotate (shift f 2) c {f (asize c + 2)} fun map_acom :: ( a ⇒ b) ⇒ aacom⇒ bacomwhere map_acom f (SKIP {P})=SKIP {fP} map_acom f (x ::= e {P})=x ::= e {fP} map_acom f (C 1;;C 2)=map_acom f C 1;; map_acom f C 2 map_acom f (IF b THEN {P 1} C 1 ELSE {P 2} C 2 {Q})= IF b THEN {fP1} map_acom f C 1 ELSE {fP2} map_acom f C 2 {fQ} map_acom f ({I } WHILE b DO {P} C {Q})= {fI} WHILE b DO {fP} map_acom f C {fQ} B Symbols [[ [| \<lbrakk> ]] |] \<rbrakk> =⇒ ==> \<Longrightarrow> !! \<And> ≡ == \<equiv> λ % \<lambda> ⇒ => \<Rightarrow> ∧ & \<and> ∨ | \<or> −→ --> \<longrightarrow> → -> \<rightarrow> ¬ ~ \<not> = ~= \<noteq> ∀ ALL \<forall> ∃ EX \<exists> <= \<le> × * \<times> ∈ : \<in> ∈/ ~: \<notin> ⊆ <= \<subseteq> ⊂ < \<subset> ∪ Un \<union> ∩ Int \<inter> UN, Union \<Union> INT, Inter \<Inter> sup \<squnion> inf \<sqinter> SUP, Sup \<Squnion> INF, Inf \<Sqinter> \<top> ⊥ \<bottom> Table B.1. Mathematical symbols, their ascii equivalents and internal names © Springer International Publishing Switzerland 2014 283 T. Nipkow and G. Klein, Concrete Semantics, DOI 10.1007/978-3-319-10542-0 C Theories The following table shows which sections are based on which theories in the directory src/HOL/IMP of the Isabelle distribution. 3.1 AExp 12.1 Hoare_Examples 3.2 BExp 12.2.2 Hoare 3.3 ASM 12.2.3 Hoare_Examples 7.1 Com 12.3 Hoare_Sound_Complete 7.2 Big_Step 12.4 VCG 7.3 Small_Step 12.5 Hoare_Total 8.1 Compiler 13.2 ACom 8.2 Compiler 13.3 Collecting 8.3 Compiler 13.3.3 Complete_Lattice 8.4 Compiler2 13.4 Abs_Int1_parity 9.1 Types 13.4.2 Abs_Int0 9.2.1 Sec_Type_Expr 13.5 Abs_Int0 9.2.2 Sec_Typing 13.5.1 Collecting 9.2.6 Sec_TypingT 13.6 Abs_Int1 10.1.1 Def_Init 13.6.1 Abs_Int1_parity 10.1.2 Def_Init_Exp 13.6.2 Abs_Int1_const 10.1.3 Def_Init_Small 13.6.3 Abs_State 10.1.4 Def_Init_Big 13.7 Abs_Int2 10.2 Fold 13.8 Abs_Int2_ivl 10.3 Live 13.9 Abs_Int3 10.4 Live_True 11.0 Denotational © Springer International Publishing Switzerland 2014 285 T. Nipkow and G. Klein, Concrete Semantics, DOI 10.1007/978-3-319-10542-0 References 1. Samson Abramsky and Achim Jung. Domain theory. In S. Abramsky, D. Gab- bay, and T.S.E. Maibaum, editors, Handbook of Logic in Computer Science, volume 3, pages 1–168. Oxford University Press, 1994. 2. Alfred Aho, Monica Lam, Ravi Sethi, and Jeffrey Ullman. Compilers: Princi- ples, Techniques, & Tools. Addison-Wesley, 2nd edition, 2007. 3. Eyad Alkassar, Mark Hillebrand, Dirk Leinenbach, Norbert Schirmer, Artem Starostin, and Alexandra Tsyban. Balancing the load — leveraging a semantics stack for systems verification. Journal of Automated Reasoning: Special Issue on Operating System Verification, 42, Numbers 2–4:389–454, 2009. 4. Eyad Alkassar, Mark Hillebrand, Wolfgang Paul, and Elena Petrova. Auto- mated verification of a small hypervisor. In Gary Leavens, Peter O’Hearn, and Sriram Rajamani, editors, Proceedings of Verified Software: Theories, Tools and Experiments 2010, volume 6217 of LNCS, pages 40–54. Springer, 2010. 5. Pierre America and Frank de Boer. Proving total correctness of recursive pro- cedures. Information and Computation, 84:129–162, 1990. 6. Krzysztof Apt. Ten Years of Hoare’s Logic: A Survey — Part I. ACM Trans. Program. Lang. Syst., 3(4):431–483, 1981. 7. Krzysztof Apt. Ten Years of Hoare’s Logic: A Survey — Part II: Nondetermin- ism. Theoretical Computer Science, 28:83–109, 1984. 8. Krzysztof Apt, Frank de Boer, and Ernst-Rüdiger Olderog. Verification of Sequential and Concurrent Programs. Springer, 3rd edition, 2009. 9. Clemens Ballarin. Tutorial on Locales and Locale Interpretation. http:// isabelle.in.tum.de/doc/locales.pdf. 10. Bernhard Beckert, Reiner Hähnle, and Peter H. Schmitt, editors. Verifica- tion of Object-Oriented Software: The KeY Approach, volume 4334 of LNCS. Springer, 2007. 11. Nick Benton, Andrew Kennedy, and Carsten Varming. Some domain theory and denotational semantics in Coq. In S. Berghofer, T. Nipkow, C. Urban, and M. Wenzel, editors, Theorem Proving in Higher Order Logics (TPHOLs 2009), volume 5674 of LNCS, pages 115–130. Springer, 2009. 12. William R. Bevier, Warren A. Hunt Jr., J. Strother Moore, and William D. Young. An approach to systems verification. J. Autom. Reasoning, 5(4):411– 428, 1989. © Springer International Publishing Switzerland 2014 287 T. Nipkow and G. Klein, Concrete Semantics, DOI 10.1007/978-3-319-10542-0 288 References 13. Richard Bornat. Proving pointer programs in Hoare Logic. In R. Backhouse and J. Oliveira, editors, Mathematics of Program Construction (MPC 2000), volume 1837 of LNCS, pages 102–126. Springer, 2000. 14. François Bourdoncle. Efficient chaotic iteration strategies with widenings. In D. Bjørner, Manfred M. Broy, and I. Pottosin, editors, Formal Methods in Programming and Their Applications, volume 735 of LNCS, pages 128–141. Springer, 1993. 15. David Brumley and Dan Boneh. Remote timing attacks are practical. Computer Networks, 48(5):701–716, 2005. 16. Rod Burstall. Some techniques for proving correctness of programs which alter data structures. In B. Meltzer and D. Michie, editors, Machine Intelligence 7, pages 23–50. Edinburgh University Press, 1972. 17. David Cachera and David Pichardie. A certified denotational abstract inter- preter. In M. Kaufmann and L. Paulson, editors, Interactive Theorem Proving (ITP 2010), volume 6172 of LNCS, pages 9–24. Springer, 2010. 18. Ellis Cohen. Information transmission in computational systems. In Proceedings of the sixth ACM symposium on Operating systems principles (SOSP’77), pages 133–139, West Lafayette, Indiana, USA, 1977. ACM. 19. Ernie Cohen, Markus Dahlweid, Mark Hillebrand, Dirk Leinenbach, Michał Moskal, Thomas Santen, Wolfram Schulte, and Stephan Tobies. VCC: A prac- tical system for verifying concurrent C. In Stefan Berghofer, Tobias Nipkow, Christian Urban, and Markus Wenzel, editors, Theorem Proving in Higher Order Logics (TPHOLs 2009), volume 5674 of LNCS, pages 23–42, Munich, Germany, 2009. Springer. 20. Stephen Cook. Soundness and completeness of an axiom system for program verification. SIAM J. on Computing, 7:70–90, 1978. 21. Patrick Cousot. The calculational design of a generic abstract interpreter. In Broy and Steinbrüggen, editors, Calculational System Design. IOS Press, 1999. 22. Patrick Cousot and Radhia Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fix- points. In Proc. 4th ACM Symp. Principles of Programming Languages, pages 238–252, 1977. 23. Patrick Cousot and Nicolas Halbwachs. Automatic discovery of linear restraints among variables of a program. In Proc. 5th ACM Symp. Principles of Pro- gramming Languages, pages 84–97, 1978. 24. Marc Daumas, Laurence Rideau, and Laurent Théry. A generic library for floating-point numbers and its application to exact computing. In R. Boulton and P. Jackson, editors, Theorem Proving in Higher Order Logics (TPHOLs 2001), volume 2152 of LNCS, pages 169–184. Springer, 2001. 25. Leonardo Mendonça de Moura and Nikolaj Bjørner. Z3: An efficient SMT solver. In TACAS, volume 4963 of LNCS, pages 337–340, Budapest, Hungary, March 2008. Springer. 26. Dorothy E. Denning. A lattice model of secure information flow. Communica- tions of the ACM, 19(5):236–243, May 1976. 27. Edsger W. Dijkstra. Go to statement considered harmful. Communications of the ACM, 11(3):147–148, March 1968. 28. Edsger W. Dijkstra. A Discipline of Programming. Prentice-Hall, 1976. References 289 29. Gidon Ernst, Gerhard Schellhorn, Dominik Haneberg, Jörg Pfähler, and Wolf- gang Reif.
Recommended publications
  • Computational Learning Theory: New Models and Algorithms
    Computational Learning Theory: New Models and Algorithms by Robert Hal Sloan S.M. EECS, Massachusetts Institute of Technology (1986) B.S. Mathematics, Yale University (1983) Submitted to the Department- of Electrical Engineering and Computer Science in partial fulfillment of the requirements for the degree of Doctor of Philosophy at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY June 1989 @ Robert Hal Sloan, 1989. All rights reserved The author hereby grants to MIT permission to reproduce and to distribute copies of this thesis document in whole or in part. Signature of Author Department of Electrical Engineering and Computer Science May 23, 1989 Certified by Ronald L. Rivest Professor of Computer Science Thesis Supervisor Accepted by Arthur C. Smith Chairman, Departmental Committee on Graduate Students Abstract In the past several years, there has been a surge of interest in computational learning theory-the formal (as opposed to empirical) study of learning algorithms. One major cause for this interest was the model of probably approximately correct learning, or pac learning, introduced by Valiant in 1984. This thesis begins by presenting a new learning algorithm for a particular problem within that model: learning submodules of the free Z-module Zk. We prove that this algorithm achieves probable approximate correctness, and indeed, that it is within a log log factor of optimal in a related, but more stringent model of learning, on-line mistake bounded learning. We then proceed to examine the influence of noisy data on pac learning algorithms in general. Previously it has been shown that it is possible to tolerate large amounts of random classification noise, but only a very small amount of a very malicious sort of noise.
    [Show full text]
  • CRN What It Was Doing and Why It Was Cognitive Systems Vision Doing It, and to Recover from Mental Continued on Page 8 Expanding the Pipeline
    COMPUTING RESEARCH NEWS Computing Research Association, Celebrating 30 Years of Service to the Computing Research Community November 2002 Vol. 14/No. 5 DARPA’s New Cognitive Systems Vision By Ron Brachman and IPTO’s goal is to create a new to cope with systems both keep Zachary Lemnios generation of cognitive systems. growing. In order to make our systems more reliable, more secure, The impact of the Defense Mired in Moore’s Law? and more understandable, and to Advanced Research Projects Agency One benefit of such cognitive continue making substantial contri- (DARPA) on computing over the systems would be their help in butions to society, we need to do past 40 years has been profound. Led extracting us from a corner into something dramatically different. by the visionary J.C.R. Licklider and which our success seems to have his innovative successors in the painted us. The research that has The Promise of Cognitive Information Processing Techniques helped the industry follow Moore’s Systems Office (IPTO), DARPA initiated “Law” has created processors that are IPTO is attacking this problem by work that ultimately put personal remarkably fast and small, and data driving a fundamental change in computers on millions of desktops storage capabilities that are vast and computing systems. By giving systems Ron Brachman and made the global Internet a cheap. Unfortunately, these incred- more cognitive capabilities, we reality. In fact, the original IPTO, ible developments have cut two ways. believe we can make them more which lasted from 1962 to 1985, was While today’s computers are more responsible for their own behavior in large part responsible for estab- powerful than ever, we have been and maintenance.
    [Show full text]
  • Security Analysis of Cryptographically Controlled Access to XML Documents
    Security Analysis of Cryptographically Controlled Access to XML Documents ¤ Mart´in Abadi Bogdan Warinschi Computer Science Department Computer Science Department University of California at Santa Cruz Stanford University [email protected] [email protected] ABSTRACT ments [4, 5, 7, 8, 14, 19, 23]. This line of research has led to Some promising recent schemes for XML access control em- e±cient and elegant publication techniques that avoid data ploy encryption for implementing security policies on pub- duplication by relying on cryptography. For instance, us- lished data, avoiding data duplication. In this paper we ing those techniques, medical records may be published as study one such scheme, due to Miklau and Suciu. That XML documents, with parts encrypted in such a way that scheme was introduced with some intuitive explanations and only the appropriate users (physicians, nurses, researchers, goals, but without precise de¯nitions and guarantees for the administrators, and patients) can see their contents. use of cryptography (speci¯cally, symmetric encryption and The work of Miklau and Suciu [19] is a crisp, compelling secret sharing). We bridge this gap in the present work. We example of this line of research. They develop a policy query analyze the scheme in the context of the rigorous models language for specifying ¯ne-grained access policies on XML of modern cryptography. We obtain formal results in sim- documents and a logical model based on the concept of \pro- ple, symbolic terms close to the vocabulary of Miklau and tection". They also show how to translate consistent poli- Suciu. We also obtain more detailed computational results cies into protections, and how to implement protections by that establish security against probabilistic polynomial-time XML encryption [10].
    [Show full text]
  • The AWK Programming Language
    The Programming ~" ·. Language PolyAWK- The Toolbox Language· Auru:o V. AHo BRIAN W.I<ERNIGHAN PETER J. WEINBERGER TheAWK4 Programming~ Language TheAWI(. Programming~ Language ALFRED V. AHo BRIAN w. KERNIGHAN PETER J. WEINBERGER AT& T Bell Laboratories Murray Hill, New Jersey A ADDISON-WESLEY•• PUBLISHING COMPANY Reading, Massachusetts • Menlo Park, California • New York Don Mills, Ontario • Wokingham, England • Amsterdam • Bonn Sydney • Singapore • Tokyo • Madrid • Bogota Santiago • San Juan This book is in the Addison-Wesley Series in Computer Science Michael A. Harrison Consulting Editor Library of Congress Cataloging-in-Publication Data Aho, Alfred V. The AWK programming language. Includes index. I. AWK (Computer program language) I. Kernighan, Brian W. II. Weinberger, Peter J. III. Title. QA76.73.A95A35 1988 005.13'3 87-17566 ISBN 0-201-07981-X This book was typeset in Times Roman and Courier by the authors, using an Autologic APS-5 phototypesetter and a DEC VAX 8550 running the 9th Edition of the UNIX~ operating system. -~- ATs.T Copyright c 1988 by Bell Telephone Laboratories, Incorporated. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopy­ ing, recording, or otherwise, without the prior written permission of the publisher. Printed in the United States of America. Published simultaneously in Canada. UNIX is a registered trademark of AT&T. DEFGHIJ-AL-898 PREFACE Computer users spend a lot of time doing simple, mechanical data manipula­ tion - changing the format of data, checking its validity, finding items with some property, adding up numbers, printing reports, and the like.
    [Show full text]
  • ITERATIVE ALGOR ITHMS for GLOBAL FLOW ANALYSIS By
    ITERATIVE ALGOR ITHMS FOR GLOBAL FLOW ANALYSIS bY Robert Endre Tarjan STAN-CS-76-547 MARCH 1976 COMPUTER SCIENCE DEPARTMENT School of Humanities and Sciences STANFORD UN IVERS ITY Iterative Algorithms for Global Flow Analysis * Robert Endre Tarjan f Computer Science Department Stanford University Stanford, California 94305 February 1976 Abstract. This paper studies iterative methods for the global flow analysis of computer programs. We define a hierarchy of global flow problem classes, each solvable by an appropriate generalization of the "node listing" method of Kennedy. We show that each of these generalized methods is optimum, among all iterative algorithms, for solving problems within its class. We give lower bounds on the time required by iterative algorithms for each of the problem classes. Keywords: computational complexity, flow graph reducibility, global flow analysis, graph theory, iterative algorithm, lower time bound, node listing. * f Research partially supported by National Science Foundation grant MM 75-22870. 1 t 1. Introduction. A problem extensively studied in recent years [2,3,5,7,8,9,12,13,14, 15,2'7,28,29,30] is that of globally analyzing cmputer programs; that is, collecting information which is distributed throughout a computer program, generally for the purpose of optimizing the program. Roughly speaking, * global flow analysis requires the determination, for each program block f , of a property known to hold on entry to the block, independent of the path taken to reach the block. * A widely used amroach to global flow analysis is to model the set of possible properties by a semi-lattice (we desire the 'lmaximumtl property for each block), to model the control structure of the program by a directed graph with one vertex for each program block, and to specify, for each branch from block to block, the function by which that branch transforms the set of properties.
    [Show full text]
  • Sensory Information Processing (1 January 1976
    Im plem enting Functional Program s Using M utable Abstract Data Types Ganesh C. Gopalakrishnan, Department of Computer Science, Univ. of Utah, Salt Lake City, Utah 84112 and Mandayam K. Srivas, Department of Computer Science, SUNY, Stony Brook, N Y 11794 W e study the following problem in this paper. Suppose we have a purely functional program that uses a set of abstract data types by invoking their operations. Is there an order of evaluation of the operations in the program that preserves the applicative order of evaluation semantics of the program even when the abstract data types behave as mutable modules. An abstract data type is mutable if one of its operations destructively updates the object rather than returning a new object as a result. This problem is important for several reasons. It can help eliminate unnecessary copying of data structure states. It supports a methodology in which one can program in a purely functional notation for purposes of verification and clarity, and then automatically transform the program into one in an object oriented, imperative language, such as CLU, A D A , Smalltalk, etc., that supports abstract data types. It allows accruing both the benefits of using abstract data types in programming, and allows modularity and verifiability. Keywords: Functional Program Implementation, Mutable Modules, Abstract Data Types, Syntactic Conditions. C o n t e n t s 1 Introduction 1 1.1 Related W o r k ........................................................................................................................... 2 1.2 Terminology, Assumptions, and Problem Statement............................................... 2 2 Syntactic Characterization of In Situ Evaluability 3 2.1 Syntactic Conditions for Straight-line Expressions..................................................
    [Show full text]
  • Understanding Programming Languages
    Understanding Programming Languages M. Ben-Ari Weizmann Institute of Science Originally published by John Wiley & Sons, Chichester, 1996. Copyright °c 2006 by M. Ben-Ari. You may download, display and print one copy for your personal use in non-commercial academic research and teaching. Instructors in non-commerical academic institutions may make one copy for each student in his/her class. All other rights reserved. In particular, posting this document on web sites is prohibited without the express permission of the author. Contents Preface xi I Introduction to Programming Languages 1 1 What Are Programming Languages? 2 1.1 The wrong question . 2 1.2 Imperative languages . 4 1.3 Data-oriented languages . 7 1.4 Object-oriented languages . 11 1.5 Non-imperative languages . 12 1.6 Standardization . 13 1.7 Computer architecture . 13 1.8 * Computability . 16 1.9 Exercises . 17 2 Elements of Programming Languages 18 2.1 Syntax . 18 2.2 * Semantics . 20 2.3 Data . 21 2.4 The assignment statement . 22 2.5 Type checking . 23 2.6 Control statements . 24 2.7 Subprograms . 24 2.8 Modules . 25 2.9 Exercises . 26 v Contents vi 3 Programming Environments 27 3.1 Editor . 28 3.2 Compiler . 28 3.3 Librarian . 30 3.4 Linker . 31 3.5 Loader . 32 3.6 Debugger . 32 3.7 Profiler . 33 3.8 Testing tools . 33 3.9 Configuration tools . 34 3.10 Interpreters . 34 3.11 The Java model . 35 3.12 Exercises . 37 II Essential Concepts 38 4 Elementary Data Types 39 4.1 Integer types .
    [Show full text]
  • BRIDGE Linking Engin Ee Ring and Soci E T Y
    Summer 2009 ENERGY EFFICIENCY The BRIDGE LINKING ENGIN ee RING AND SOCI E TY The Potential of Energy Efficiency: An Overview Lester B. Lave Improving Energy Efficiency in the Chemical Industry Jeremy J. Patt and William F. Banholzer Energy Efficiency in Passenger Transportation Daniel Sperling and Nic Lutsey Building Materials, Energy Efficiency, and the American Recovery and Reinvestment Act Robin Roy and Brandon Tinianov Coming of Age in New York: The Maturation of Energy Efficiency as a Resource Paul A. DeCotis The Greening of the Middle Kingdom: The Story of Energy Efficiency in China Mark D. Levine, Nan Zhou, and Lynn Price Promoting the technological welfare of the nation by marshalling the knowledge and insights of eminent members of the engineering profession. The BRIDGE NationaL AcaDemy OF Engineering Irwin M. Jacobs, Chair Charles M. Vest, President Maxine L. Savitz, Vice President Thomas F. Budinger, Home Secretary George Bugliarello, Foreign Secretary William L. Friend, Treasurer Editor in Chief (interim): George Bugliarello Managing Editor: Carol R. Arenberg Production Assistant: Penelope Gibbs The Bridge (USPS 551-240) is published quarterly by the National Academy of Engineering, 2101 Constitution Avenue, N.W., Washington, DC 20418. Periodicals postage paid at Washington, DC. Vol. 39, No. 2, Summer 2009 Postmaster: Send address changes to The Bridge, 2101 Constitution Avenue, N.W., Washington, DC 20418. Papers are presented in The Bridge on the basis of general interest and time- liness. They reflect the views of the authors and not necessarily the position of the National Academy of Engineering. The Bridge is printed on recycled paper. © 2009 by the National Academy of Sciences.
    [Show full text]
  • Second International Computer Programming Education Conference
    Second International Computer Programming Education Conference ICPEC 2021, May 27–28, 2021, University of Minho, Braga, Portugal Edited by Pedro Rangel Henriques Filipe Portela Ricardo Queirós Alberto Simões OA S I c s – Vo l . 91 – ICPEC 2021 www.dagstuhl.de/oasics Editors Pedro Rangel Henriques Universidade do Minho, Portugal [email protected] Filipe Portela Universidade do Minho, Portugal [email protected] Ricardo Queirós Politécnico do Porto, Portugal [email protected] Alberto Simões Politécnico do Cávado e Ave, Portugal [email protected] ACM Classifcation 2012 Applied computing → Education ISBN 978-3-95977-194-8 Published online and open access by Schloss Dagstuhl – Leibniz-Zentrum für Informatik GmbH, Dagstuhl Publishing, Saarbrücken/Wadern, Germany. Online available at https://www.dagstuhl.de/dagpub/978-3-95977-194-8. Publication date July, 2021 Bibliographic information published by the Deutsche Nationalbibliothek The Deutsche Nationalbibliothek lists this publication in the Deutsche Nationalbibliografe; detailed bibliographic data are available in the Internet at https://portal.dnb.de. License This work is licensed under a Creative Commons Attribution 4.0 International license (CC-BY 4.0): https://creativecommons.org/licenses/by/4.0/legalcode. In brief, this license authorizes each and everybody to share (to copy, distribute and transmit) the work under the following conditions, without impairing or restricting the authors’ moral rights: Attribution: The work must be attributed to its authors. The copyright is retained by the corresponding authors. Digital Object Identifer: 10.4230/OASIcs.ICPEC.2021.0 ISBN 978-3-95977-194-8 ISSN 1868-8969 https://www.dagstuhl.de/oasics 0:iii OASIcs – OpenAccess Series in Informatics OASIcs is a series of high-quality conference proceedings across all felds in informatics.
    [Show full text]
  • Statement on the Selection of Jeffrey Ullman for a Turing Award
    Statement on the Selection of Jeffrey Ullman for a Turing Award An Open Letter to Committee of the ACM A.M. Turing Award and ACM: Date: 04/16/2021 Professor Jeffrey D. Ullman of Stanford University has been chosen to receive the 2020 ACM A.M. Turing Award, generally regarded as the highest distinction in computing. While we agree that the technical and educational contributions of Professor Ullman could meet the bar for a “Nobel Prize of Computing”, we condemn the selection as one that directly goes against the Diversity and Inclusion (D & I) values that the Computer Science community, and the Association for Computing Machinery (ACM) in particular, aim to uphold. While we recognize Professor Ullman’s freedom of speech and freedom to hold and express his political views, we are concerned by his sustained discriminatory behavior against students and by ACM bestowing upon such a person an award named after Alan Turing, someone who suffered much discrimination in his tragic life [1]. ACM defines its mission as follows: “ACM is a global scientific and educational organization dedicated to advancing the art, science, engineering, and application of computing, serving both professional and public interests by fostering the open exchange of information and by promoting the highest professional and ethical standards.” Furthermore, ACM explicitly defines “Diversity and Inclusion” as one of its four core values [2]. We assert, based on documented evidence, that not only has Professor Ullman willfully violated the “highest professional and ethical standards” that ACM has the mission to uphold, but also that he has demonstrated a pattern of actively turning against the values of D & I for decades.
    [Show full text]
  • Awk Short Intro
    awk short intro Robert Kofler awk • scripng language for reformang text files or extracng informaon from text files • good performance with large text files ⇒ thus “awk” is like PCR for NGS data analysis Why awk: very powerful (you can answer a lot of NGS related quesons with a simple awk command) easy to learn good performance with large text files may be used with other Unix‐command (pipe) Our input file basics • Name: Alfred Aho, Peter Weinberger, Brian Kernighan • How to use awk awk ‘command’ input_file.txt or cat input_file.txt | awk ‘command’ Let’s start: awk ‘{print $1}’ sample.txt cat sample.txt| awk ‘{print $1}’ Structure of awk command full structure of a awk command: awk ‘BEGIN{command}condition{command}END{command}’ # BEGIN{command} => execute this command at the beginning # condition{command} => MOST IMPORTANT PART, will be executed for every line in the file! # END{command} => execute this command at the end example: awk ‘BEGIN{print “File start”}$1==“2L”{print $0}END{print “End of file”}’ sample.txt Most things are oponal shortest example possible awk ‘’ sample.txt => not doing anything awk ‘$1’ sample.txt => prints line if $1 is not empty # above, we are only using ‘condition{command}’ # we are not using ‘BEGIN{command}’ and ‘END{command}’ default for ‘condion{command}’ is the following ‘condion’ => ‘condion{print $0}’ awk ‘$1’ sample.txt # is per default using the following command: awk ‘$1{print $0}’ # {print $0} is the default for the loop!! # {print $0} just means print the line Now some more meaningful condions awk ‘$1==“2L”’
    [Show full text]
  • Assembling a Prehistory for Formal Methods: a Personal View Thomas Haigh [email protected]
    Assembling A Prehistory for Formal Methods: A Personal View Thomas Haigh [email protected] University of Wisconsin—Milwaukee & Siegen University www.tomandmaria.com This is a preprint copy. Please quote and cite the final version, which will appear in a special issue of Formal Aspects of Computing devoted to historical work. Thanks to Cliff Jones and the anonymous reviewers for their encouragement and feedback on earlier drafts of this paper. Preprint Draft Haigh – Assembling a History for Formal Methods 2 Although I was pleased to be asked to contribute something to this volume I have a confession to make: I have never studied the history of formal methods. So this is not going to be a history of formal methods as much as a reflection on how such a story might be written. My plan is to triangulate from my personal experiences as a computer science student a quarter century ago, my Ph.D. training as a historian of science and technology, and my subsequent career researching and writing about various aspects of the history of computing. The fact that, despite a general familiarity with the literature on the history of computing, I don’t have a better grasp of the history of formal methods tells us a lot about the need for this special issue. Most of the history is so far locked up in the heads of participants, which is not a convenient place for the rest of us to find it. Stories written by participants or people with a personal connection to the events described are not usually the last word on historical events, but they are a vital starting point.
    [Show full text]