Информатика и вычислительная техника
  • формат pdf
  • размер 1.12 МБ
  • добавлен 07 ноября 2011 г.
Wilhelm R., Seidl H. Compiler Design. Virtual Machines
Издательство Springer, 2010, -196 pp.

Compilers for high-level programming languages are software systems which are both large and complex. Nonetheless, they have particular characteristics that differentiate them from the majority of other software systems.
Their functionality is (almost) completely well-defined. Ideally, there exist completely formal, or at least rather precise, specifications of the source and target languages. Often additional specifications of the interfaces to the operating system, to programming environments, and to other compilers and libraries are available.
The compilation task can be naturally divided into subtasks. This subdivision results in a modular structure, which, by the way, also leads to a canonical structure of the common compiler design books.
Already in the Fifties it was recognized that the implementation of application systems directly in machine language is both difficult and error-prone, leading to programs that become obsolete as quickly as the computers they were developed for. With the development of higher level machine independent programming languages came the need to offer compilers that are able to translate programs of such programming languages into machine language.
Given this basic challenge, the different subtasks of compilation have been the subject of intensive research since the Fifties. For the subtask of syntactic analysis of programs, concepts from formal language and automata theory, such as regular languages, finite automata, context-free grammars, and pushdown automata were borrowed and were further developed in view of the particular use. The theoretical foundation of the problem was so well-developed that the realization of the components required for syntax analysis could be (almost) completely automated: instead of being implemented by hand these components are mainly generated from specifications, in this case context-free grammars. Such automatic generation is also the aim for other components of compilers, although is has not always been achieved yet.
This book is not intended to be a cookbook for compilers. Thus, one will not find recipes like: To build a compiler of source language X into machine language Y, take . . Our presentation instead reflects the special characteristics of compiler design, specially the existence of precise specifications of the subtasks. We invest some effort to understand these precisely and to provide adequate concepts for their systematic treatment. Ideally, those concepts can build the foundation of a process of automatic generation.
This book is intended for students of Informatics. Knowledge of at least one imperative programming language is assumed. For the chapters on the translation of functional and logic programming languages it is certainly helpful to know a mode functional language and the basic concepts of the logic language PROLOG. On the other hand, these chapters can help to achieve a more profound understanding of such programming languages.

Introduction
Imperative Programming Languages
Functional Programming Languages
Logic Programming Languages
Object-Oriented Programming Languages
Читать онлайн
Похожие разделы
Смотрите также

Aho A.V. et al Compilers: Principles, Techniques, & Tools

  • формат pdf
  • размер 48.24 МБ
  • добавлен 03 января 2012 г.
2 edition. Addison Wesley, 2007. 1009 p. ISBN-10:0321547985 This book provides the foundation for understanding the theory and pracitce of compilers. Revised and updated, it reflects the current state of compilation. Every chapter has been completely revised to reflect developments in software engineering, programming languages, and computer architecture that have occurred since 1986, when the last edition published. The authors, recognizing th...

Aho A.V., Sethi R., Ullman J.D. Compilers: Principles, Techniques and Tools

  • формат djvu
  • размер 17.39 МБ
  • добавлен 03 января 2012 г.
Addison Wesley, 2002. 811 p. ISBN:7115099162, 0201100886 Principles, Techniques, and Tools is a famous computer science textbook by Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman about compiler construction. Although decades have passed since the publication of the first edition, it is widely regarded as the classic definitive compiler technology text. It is known as the Dragon Book because its covers depict a knight and a dragon in battle....

Kakde O.G. Algorithms for Compiler Design

  • формат pdf
  • размер 6.53 МБ
  • добавлен 08 февраля 2012 г.
Издательство Charles River Media, 2002, -334 pp. A compiler translates a high-level language program into a functionally equivalent low-level language program that can be understood and executed by the computer. Crucial to any computer system, effective compiler design is also one of the most complex areas of system development. Before any code for a modern compiler is even written, many programmers have difficulty with the high-level algorithms...

R?thing O. Interacting Code Motion Transformations. Their Impact and Their Complexity

  • формат pdf
  • размер 1.56 МБ
  • добавлен 28 ноября 2011 г.
Издательство Springer, 1998, -223 pp. Is computing an experimental science? For the roots of program optimization the answer to this question raised by Robin Milner ten years ago is clearly yes: it all started with Donald Knuth’s extensive empirical study of Fortran programs. This benchmark-driven approach is still popular, but it has in the meantime been complemented by an increasing body of foundational work, based on varying idealizing assump...

Wehmeyer L., Marwedel P. Fast, Efficient and Predictable Memory Accesses. Optimization Algorithms for Memory Architecture Aware Compilation

  • формат pdf
  • размер 1.63 МБ
  • добавлен 07 ноября 2011 г.
Издательство Springer, 2006, -262 pp. The influence of embedded systems is constantly growing. Increasingly powerful and versatile devices are being developed and put on the market at a fast pace. The number of features is increasing, and so are the constraints on the systems concerning size, performance, energy dissipation and timing predictability. Since most systems today use a processor to execute an application program rather than using ded...