Books
Computer Organization and Architecture
Basic Computer Architecture
Computer architecture is the study of computers. In this book you will learn basic design principles of computers including the basic technologies, algorithms, design methodologies and future trends.
Computer Organization and Design Fundamentals
Computer Organization and Design Fundamentals takes the reader from the basic design principles of the modern digital computer to a top-level examination of its architecture. This book can serve either as a textbook to an introductory course on computer hardware or as the basic text for the aspiring geek who wants to learn about digital design.
Compiler Design
Basics of Compiler Design
This textbook is intended for an introductory course on Compiler Design, suitable for use in an undergraduate programme in computer science or related fields.
It presents techniques for making realistic, though non-optimizing compilers for simple programming languages using methods that are close to those used in "real" compilers, albeit slightly simplified in places for presentation purposes. All phases required for translating a high-level language to machine language is covered, including lexing, parsing, intermediate-code generation, machine-code generation and register allocation.
Compiler Design: Theory, Tools, and Examples
This is an introductory level text for compiler design courses, that emphasizes problem solving skills. The concepts are clearly presented with sampler problems and diagrams to illustrate the concepts. The text also covers lex and yacc two compiler generating tools in UNIX.
Let's Build a Compiler
This book is a tutorial on the theory and practice of developing language parsers and compilers from scratch. Before you are finished, you will have covered every aspect of compiler construction, designed a new programming language, and built a working compiler.
At the end of this series you will by no means be a computer scientist, nor will you know all the esoterics of compiler theory. The author intended to completely ignore the more theoretical aspects of the subject. What you will know is all the practical aspects that one needs to know to build a working system