This book is inspired by boredom and fascination: boredom with the usual presentation of data structures and algorithms, and fascination with complex
systems. The problem with data structures is that they are often taught without a motivating context; the problem with complexity science is that it is
usually not taught at...

Ten years ago the authors undertook to produce a book covering the known material on
formal languages, automata theory, and computational complexity. In retrospect, only a
few significant results were overlooked in the 237 pages. In writing a new book on the
subject, we find the field has expanded in so many new directions that a...

While compilers for high-level programming languages are large complex software systems, they have particular characteristics that differentiate them from other software systems. Their functionality is almost completely well-defined – ideally there exist complete precise descriptions of the source and target languages. Additional...

This book introduces the new realm of superrecursive algorithms and the development
of mathematical models for them. Although many still believe that only recursive
algorithms exist and that only some of them are realizable, there are many
situations in which people actually work with superrecursive algorithms....

Control of Discrete-event Systems provides a survey of the most important topics in the discrete-event systems theory with particular focus on finite-state automata, Petri nets and max-plus algebra. Coverage ranges from introductory material on the basic notions and definitions of discrete-event systems to more recent results. Special...

The focus of this book is on bridging the gap between two extreme methods for developing software. On the one hand, there are texts and approaches that are so formal that they scare off all but the most dedicated theoretical computer scientists. On the other, there are some who believe that any measure of formality is a waste of time,...

Neurocomputing methods are loosely based on a model of the brain as a network of simple interconnected processing elements corresponding to neurons. These methods derive their power from the collective processing of artificial neurons, the chief advantage being that such systems can learn and adapt to a changing environment. In knowledge-based...

The complex behavior of systems in nature is rooted in intricate mechanisms of interaction that often supersede human-made systems in terms of reliability, power efficiency, and computational capacity. Researchers have begun to realize that natural systems are a great source of inspiration for novel algorithms in computation and communication...

In the world we live in concurrency is the norm. For example, the human body is a massively concurrent system, comprising a huge number of cells, all simultaneously evolving and independently engaging in their individual biological processing. In addition, in the biological world, truly sequential systems rarely arise. However,...

Our growing dependence on increasingly complex computer and software systems necessitates the development of formalisms, techniques, and tools for assessing functional properties of these systems. One such technique that has emerged in the last twenty years is model checking, which systematically (and automatically) checks whether a model of a...

It may sound surprising that in computing, a field which develops so fast that the future often becomes the past without having been the present, there is nothing more stable and worthwhile learning than its foundations.

It may sound less surprising that in a field with such a revolutionary methodological impact on all sciences and...

Humans use language to convey meaningful messages to each other. Linguistic competence consists in the ability to express meaning reliably, not simply to obtain faithful lexical transcriptions. This invaluable reference tool is the product of many years' experience and research on language and speech technology. It presents the motivations for,...