Reflections on the Work of C.A.R. Hoare

Reflections on the Work of C.A.R. Hoare

Author: Cliff B. Jones

Publisher: Springer Science & Business Media

Published: 2010-09-28

Total Pages: 434

ISBN-13: 1848829124

DOWNLOAD EBOOK

Written in honor of Sir Tony Hoare's 75th Birthday, this book provides a discussion of the influence of Hoare's work on current research from an international selection of expert contributors. Includes a scientific biography, listing his most influential work.


Abstractions and Embodiments

Abstractions and Embodiments

Author: Janet Abbate

Publisher: JHU Press

Published: 2022-08-30

Total Pages: 473

ISBN-13: 1421444380

DOWNLOAD EBOOK

Cutting-edge historians explore ideas, communities, and technologies around modern computing to explore how computers mediate social relations. Computers have been framed both as a mirror for the human mind and as an irreducible other that humanness is defined against, depending on different historical definitions of "humanness." They can serve both liberation and control because some people's freedom has historically been predicated on controlling others. Historians of computing return again and again to these contradictions, as they often reveal deeper structures. Using twin frameworks of abstraction and embodiment, a reformulation of the old mind-body dichotomy, this anthology examines how social relations are enacted in and through computing. The authors examining "Abstraction" revisit central concepts in computing, including "algorithm," "program," "clone," and "risk." In doing so, they demonstrate how the meanings of these terms reflect power relations and social identities. The section on "Embodiments" focuses on sensory aspects of using computers as well as the ways in which gender, race, and other identities have shaped the opportunities and embodied experiences of computer workers and users. Offering a rich and diverse set of studies in new areas, the book explores such disparate themes as disability, the influence of the punk movement, working mothers as technical innovators, and gaming behind the Iron Curtain. Abstractions and Embodiments reimagines computing history by questioning canonical interpretations, foregrounding new actors and contexts, and highlighting neglected aspects of computing as an embodied experience. It makes the profound case that both technology and the body are culturally shaped and that there can be no clear distinction between social, intellectual, and technical aspects of computing. Contributors: Janet Abbate, Marc Aidinoff, Troy Kaighin Astarte, Ekaterina Babinsteva, André Brock, Maarten Bullynck, Jiahui Chan, Gerardo Con Diaz, Liesbeth De Mol, Stephanie Dick, Kelcey Gibbons, Elyse Graham, Michael J. Halvorson, Mar Hicks, Scott Kushner, Xiaochang Li, Zachary Loeb, Lisa Nakamura, Tiffany Nichols, Laine Nooney, Elizabeth Petrick, Cierra Robson, Hallam Stevens, Jaroslav Švelch


Understanding Concurrent Systems

Understanding Concurrent Systems

Author: A.W. Roscoe

Publisher: Springer Science & Business Media

Published: 2010-10-10

Total Pages: 528

ISBN-13: 1848822588

DOWNLOAD EBOOK

CSP notation has been used extensively for teaching and applying concurrency theory, ever since the publication of the text Communicating Sequential Processes by C.A.R. Hoare in 1985. Both a programming language and a specification language, the theory of CSP helps users to understand concurrent systems, and to decide whether a program meets its specification. As a member of the family of process algebras, the concepts of communication and interaction are presented in an algebraic style. An invaluable reference on the state of the art in CSP, Understanding Concurrent Systems also serves as a comprehensive introduction to the field, in addition to providing material for a number of more advanced courses. A first point of reference for anyone wanting to use CSP or learn about its theory, the book also introduces other views of concurrency, using CSP to model and explain these. The text is fully integrated with CSP-based tools such as FDR, and describes how to create new tools based on FDR. Most of the book relies on no theoretical background other than a basic knowledge of sets and sequences. Sophisticated mathematical arguments are avoided whenever possible. Topics and features: presents a comprehensive introduction to CSP; discusses the latest advances in CSP, covering topics of operational semantics, denotational models, finite observation models and infinite-behaviour models, and algebraic semantics; explores the practical application of CSP, including timed modelling, discrete modelling, parameterised verifications and the state explosion problem, and advanced topics in the use of FDR; examines the ability of CSP to describe and enable reasoning about parallel systems modelled in other paradigms; covers a broad variety of concurrent systems, including combinatorial, timed, priority-based, mobile, shared variable, statecharts, buffered and asynchronous systems; contains exercises and case studies to support the text; supplies further tools and information at the associated website: http://www.comlab.ox.ac.uk/ucs/. From undergraduate students of computer science in need of an introduction to the area, to researchers and practitioners desiring a more in-depth understanding of theory and practice of concurrent systems, this broad-ranging text/reference is essential reading for anyone interested in Hoare’s CSP.


Unifying Theories of Programming

Unifying Theories of Programming

Author: Pedro Ribeiro

Publisher: Springer Nature

Published: 2019-09-23

Total Pages: 224

ISBN-13: 3030310388

DOWNLOAD EBOOK

This volume contains papers presented at UTP 2019, the 7th International Symposium on Unifying Theories of Programming, held in Porto, Portugal, on the 8th of October 2019. This edition of the UTP symposium is in honor of Sir Tony Hoare, on the occasion of his 85th birthday. The papers contained in this volume were invited, and friendly refereed, original contributions sought from the UTP community. One of the papers is from the distinguished invited speaker Tony Hoare himself. Nine other additional papers compose this volume, covering several aspects of Unifying Theories of Programming.


Theories of Programming

Theories of Programming

Author: Cliff B. Jones

Publisher: Morgan & Claypool

Published: 2021-09-26

Total Pages: 450

ISBN-13: 1450387314

DOWNLOAD EBOOK

Sir Tony Hoare has had an enormous influence on computer science, from the Quicksort algorithm to the science of software development, concurrency and program verification. His contributions have been widely recognised: He was awarded the ACM’s Turing Award in 1980, the Kyoto Prize from the Inamori Foundation in 2000, and was knighted for “services to education and computer science” by Queen Elizabeth II of England in 2000. This book presents the essence of his various works—the quest for effective abstractions—both in his own words as well as chapters written by leading experts in the field, including many of his research collaborators. In addition, this volume contains biographical material, his Turing award lecture, the transcript of an interview and some of his seminal papers. Hoare’s foundational paper “An Axiomatic Basis for Computer Programming”, presented his approach, commonly known as Hoare Logic, for proving the correctness of programs by using logical assertions. Hoare Logic and subsequent developments have formed the basis of a wide variety of software verification efforts. Hoare was instrumental in proposing the Verified Software Initiative, a cooperative international project directed at the scientific challenges of large-scale software verification, encompassing theories, tools and experiments. Tony Hoare’s contributions to the theory and practice of concurrent software systems are equally impressive. The process algebra called Communicating Sequential Processes (CSP) has been one of the fundamental paradigms, both as a mathematical theory to reason about concurrent computation as well as the basis for the programming language occam. CSP served as a framework for exploring several ideas in denotational semantics such as powerdomains, as well as notions of abstraction and refinement. It is the basis for a series of industrial-strength tools which have been employed in a wide range of applications. This book also presents Hoare’s work in the last few decades. These works include a rigorous approach to specifications in software engineering practice, including procedural and data abstractions, data refinement, and a modular theory of designs. More recently, he has worked with collaborators to develop Unifying Theories of Programming (UTP). Their goal is to identify the common algebraic theories that lie at the core of sequential, concurrent, reactive and cyber-physical computations.


Engineering Secure and Dependable Software Systems

Engineering Secure and Dependable Software Systems

Author: A. Pretschner

Publisher: IOS Press

Published: 2019-08-06

Total Pages: 278

ISBN-13: 1614999775

DOWNLOAD EBOOK

Almost all technical systems currently either interface with or are themselves largely software systems. Software systems must not harm their environment, but are also often vulnerable to security attacks with potentially serious economic, political, and physical consequences, so a better understanding of security and safety and improving the quality of complex software systems are crucial challenges for the functioning of society. This book presents lectures from the 2018 Marktoberdorf summer school Engineering Secure and Dependable Software Systems, an Advanced Study Institute of the NATO Science for Peace and Security Programme. The lectures give an overview of the state of the art in the construction and analysis of safe and secure systems. Starting from the logical and semantic foundations that enable reasoning about classical software systems, they extend to the development and verification of cyber-physical systems, which combine computational and physical components and have become pervasive in aerospace, automotive, industry automation, and consumer appliances. Safety and security have traditionally been considered separate topics, but several lectures in this summer school emphasize their commonalities and present analysis and construction techniques that apply to both. The book will be of interest to all those working in the field of software systems, and cyber-physical systems in particular.


Programming Languages and Systems

Programming Languages and Systems

Author: Peter Thiemann

Publisher: Springer

Published: 2016-03-21

Total Pages: 818

ISBN-13: 3662494981

DOWNLOAD EBOOK

This book constitutes the proceedings of the 25th European Symposium on Programming, ESOP 2016, which took place in Eindhoven, The Netherlands, in April 2016, held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2016. The 29 papers presented in this volume were carefully reviewed and selected from 98 submissions. Being devoted to fundamental issues in the specification, design, analysis, and implementation of programming languages and systems, ESOP features contributions on all aspects of programming language research; theoretical and/or practical advances.


Encyclopedia of Parallel Computing

Encyclopedia of Parallel Computing

Author: David Padua

Publisher: Springer Science & Business Media

Published: 2014-07-08

Total Pages: 2211

ISBN-13: 038709766X

DOWNLOAD EBOOK

Containing over 300 entries in an A-Z format, the Encyclopedia of Parallel Computing provides easy, intuitive access to relevant information for professionals and researchers seeking access to any aspect within the broad field of parallel computing. Topics for this comprehensive reference were selected, written, and peer-reviewed by an international pool of distinguished researchers in the field. The Encyclopedia is broad in scope, covering machine organization, programming languages, algorithms, and applications. Within each area, concepts, designs, and specific implementations are presented. The highly-structured essays in this work comprise synonyms, a definition and discussion of the topic, bibliographies, and links to related literature. Extensive cross-references to other entries within the Encyclopedia support efficient, user-friendly searchers for immediate access to useful information. Key concepts presented in the Encyclopedia of Parallel Computing include; laws and metrics; specific numerical and non-numerical algorithms; asynchronous algorithms; libraries of subroutines; benchmark suites; applications; sequential consistency and cache coherency; machine classes such as clusters, shared-memory multiprocessors, special-purpose machines and dataflow machines; specific machines such as Cray supercomputers, IBM’s cell processor and Intel’s multicore machines; race detection and auto parallelization; parallel programming languages, synchronization primitives, collective operations, message passing libraries, checkpointing, and operating systems. Topics covered: Speedup, Efficiency, Isoefficiency, Redundancy, Amdahls law, Computer Architecture Concepts, Parallel Machine Designs, Benmarks, Parallel Programming concepts & design, Algorithms, Parallel applications. This authoritative reference will be published in two formats: print and online. The online edition features hyperlinks to cross-references and to additional significant research. Related Subjects: supercomputing, high-performance computing, distributed computing


Critical Systems: Formal Methods and Automated Verification

Critical Systems: Formal Methods and Automated Verification

Author: Laure Petrucci

Publisher: Springer

Published: 2017-09-02

Total Pages: 243

ISBN-13: 3319671138

DOWNLOAD EBOOK

This book constitutes the refereed proceedings of the Joint 22nd International Workshop on Formal Methods for Industrial Critical Systems and the 17th International Workshop on Automated Verification of Critical Systems, FMICS-AVoCS 2017, held in Turin, Italy, in September 2017. The 14 full papers presented together with one invited talk were carefully reviewed and selected from 30 submissions. They are organized in the following sections: Automated verification techniques; Testing and scheduling; Formal Methods for mobile and autonomous robots; and Modeling and analysis techniques.