I wrote this book to provide a description of the foundations of statically
typed class-based object-oriented programming languages for those interested
in learning about this area. An important goal is to explain how the
different components of these languages interact, and how this results in
the kind of type systems that are used in popular object-oriented languages.
We will see that an understanding of the theoretical foundations of objectoriented
languages can lead to the design of more expressive and flexible
type systems that assist programmers in writing correct programs.
Programmers used to untyped or dynamically typed languages often complain
about being straitjacketed by the restrictive type systems of objectoriented
languages. In fact many existing statically typed object-oriented
languages have very restrictive type systems that almost literally force programmers
to use casts or other mechanisms to escape from the static type
system. In this work we aim to meet the needs of a programmer who wants
a more expressive type system. Thus another goal of this text is to promote
richer type systems that reduce the need for bypassing the type checker.
Because of the semantic complexity of the features of object-oriented languages,
particularly subtyping and inheritance, it is difficult to design a static
type system that is simultaneously safe and flexible. To be sure that there are
no holes in the type system we need to prove that the type system is safe
(essentially that no type errors can occur at run time), but we cannot do that
without a description of the meaning of programs. Thus this book contains
careful formal descriptions of the syntax, type system, and semantics of several
progressively more complex object-oriented programming languages.
With these definitions, it is possible to prove type safety.
Spying Blind: The CIA, the FBI, and the Origins of 9/11
In this pathbreaking book, Amy Zegart provides the first scholarly examination of the intelligence failures that preceded September 11. Until now, those failures have been attributed largely to individual mistakes. But Zegart shows how and why the intelligence system itself left us vulnerable.
Zegart argues that after the Cold War...
The Optics of Life: A Biologist's Guide to Light in Nature
Optics--a field of physics focusing on the study of light--is also central to many areas of biology, including vision, ecology, botany, animal behavior, neurobiology, and molecular biology. The Optics of Life introduces the fundamentals of optics to biologists and nonphysicists, giving them the tools they need to successfully incorporate...
Real World Web Services The core idea behind Real World Web Services is simple: after years of hype, what are the major players really doing with web services? Standard bodies may wrangle and platform vendors may preach, but at the end of the day what are the technologies that are actually in use, and how can developers incorporate... Compression Schemes for Mining Large Datasets: A Machine Learning Perspective
This book addresses the challenges of data abstraction generation using a least number of database scans, compressing data through novel lossy and non-lossy schemes, and carrying out clustering and classification directly in the compressed domain. Schemes are presented which are shown to be efficient both in terms of space and time, while...
Angular: Up and Running: Learning Angular, Step by Step