The Elements of Computing Systems

Building a Modern Computer from First Principles

The Elements of Computing Systems

In the early days of computer science, the interactions of hardware, software, compilers, and operating system were simple enough to allow students to see an overall picture of how computers worked. With the increasing complexity of computer technology and the resulting specialization of knowledge, such clarity is often lost. Unlike other texts that cover only one aspect of the field, The Elements of Computing Systems gives students an integrated and rigorous picture of applied computer science, as its comes to play in the construction of a simple yet powerful computer system. Indeed, the best way to understand how computers work is to build one from scratch, and this textbook leads students through twelve chapters and projects that gradually build a basic hardware platform and a modern software hierarchy from the ground up. In the process, the students gain hands-on knowledge of hardware architecture, operating systems, programming languages, compilers, data structures, algorithms, and software engineering. Using this constructive approach, the book exposes a significant body of computer science knowledge and demonstrates how theoretical and applied techniques taught in other courses fit into the overall picture. Designed to support one- or two-semester courses, the book is based on an abstraction-implementation paradigm; each chapter presents a key hardware or software abstraction, a proposed implementation that makes it concrete, and an actual project. The emerging computer system can be built by following the chapters, although this is only one option, since the projects are self-contained and can be done or skipped in any order. All the computer science knowledge necessary for completing the projects is embedded in the book, the only pre-requisite being a programming experience. The book's web site provides all tools and materials necessary to build all the hardware and software systems described in the text, including two hundred test programs for the twelve projects. The projects and systems can be modified to meet various teaching needs, and all the supplied software is open-source.

The Elements of Computing Systems

Building a Modern Computer from First Principles

The Elements of Computing Systems


Regulated Grammars and Automata

Regulated Grammars and Automata

This is the first book to offer key theoretical topics and terminology concerning regulated grammars and automata. They are the most important language-defining devices that work under controls represented by additional mathematical mechanisms. Key topics include formal language theory, grammatical regulation, grammar systems, erasing rules, parallelism, word monoids, regulated and unregulated automata and control languages. The book explores how the information utilized in computer science is most often represented by formal languages defined by appropriate formal devices. It provides both algorithms and a variety of real-world applications, allowing readers to understand both theoretical concepts and fundamentals. There is a special focus on applications to scientific fields including biology, linguistics and informatics. This book concludes with case studies and future trends for the field. Regulated Grammars and Automata is designed as a reference for researchers and professionals working in computer science and mathematics who deal with language processors. Advanced-level students in computer science and mathematics will also find this book a valuable resource as a secondary textbook or reference.

Augmented Reality Art

From an Emerging Technology to a Novel Creative Medium

Augmented Reality Art

This is the second edition of the first ever book to explore the exciting new field of augmented reality art and its enabling technologies. The new edition has been thoroughly revised and updated, and contains 5 new chapters. As well as investigating augmented reality as a novel artistic medium the book covers cultural, social, spatial and cognitive facets of augmented reality art. Intended as a starting point for exploring this new fascinating area of research and creative practice it will be essential reading not only for artists, researchers and technology developers, but also for students (graduates and undergraduates) and all those interested in emerging augmented reality technology and its current and future applications in art.

Modern Language Models and Computation

Theory with Applications

Modern Language Models and Computation

This textbook gives a systematized and compact summary, providing the most essential types of modern models for languages and computation together with their properties and applications. Most of these models properly reflect and formalize current computational methods, based on parallelism, distribution and cooperation covered in this book. As a result, it allows the user to develop, study, and improve these methods very effectively. This textbook also represents the first systematic treatment of modern language models for computation. It covers all essential theoretical topics concerning them. From a practical viewpoint, it describes various concepts, methods, algorithms, techniques, and software units based upon these models. Based upon them, it describes several applications in biology, linguistics, and computer science. Advanced-level students studying computer science, mathematics, linguistics and biology will find this textbook a valuable resource. Theoreticians, practitioners and researchers working in today’s theory of computation and its applications will also find this book essential as a reference.

Dr. Dobb's Journal

Software Tools for the Professional Programmer

Dr. Dobb's Journal


Interactions

Interactions

A magazine for designers of interactive products.

Practical Reverse Engineering

x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation

Practical Reverse Engineering

Analyzing how hacks are done, so as to stop them in thefuture Reverse engineering is the process of analyzing hardware orsoftware and understanding it, without having access to the sourcecode or design documents. Hackers are able to reverse engineersystems and exploit what they find with scary results. Now the goodguys can use the same tools to thwart these threats. PracticalReverse Engineering goes under the hood of reverse engineeringfor security analysts, security engineers, and system programmers,so they can learn how to use these same processes to stop hackersin their tracks. The book covers x86, x64, and ARM (the first book to cover allthree); Windows kernel-mode code rootkits and drivers; virtualmachine protection techniques; and much more. Best of all, itoffers a systematic approach to the material, with plenty ofhands-on exercises and real-world examples. Offers a systematic approach to understanding reverseengineering, with hands-on exercises and real-world examples Covers x86, x64, and advanced RISC machine (ARM) architecturesas well as deobfuscation and virtual machine protectiontechniques Provides special coverage of Windows kernel-mode code(rootkits/drivers), a topic not often covered elsewhere, andexplains how to analyze drivers step by step Demystifies topics that have a steep learning curve Includes a bonus chapter on reverse engineering tools Practical Reverse Engineering: Using x86, x64, ARM, WindowsKernel, and Reversing Tools provides crucial, up-to-dateguidance for a broad range of IT professionals.