Информатика и вычислительная техника
  • формат pdf
  • размер 2.6 МБ
  • добавлен 05 декабря 2011 г.
Reghizzi S.C. Formal Languages and Compilation
Издательство Springer, 2009, -370 pp.

The book collects and condenses the experience of years of teaching compiler courses and doing research on formal language theory, on compiler and language design, and to a lesser extent on natural language processing. In the turmoil of information technology developments, the subject of the book has kept the same fundamental principles over half a century, and its relevance for theory and practice is as important as in the early days.
This state of affairs of a topic, which is central to computer science and is based on consolidated principles, might lead us to believe that the accompanying textbooks are by now consolidated, much as the classical books on mathematics. In fact this is rather not true: there exist fine books on the mathematical aspects of language and automata theory, but the best books on translators are sort of encyclopaedias of algorithms, design methods, and practical know-how used in compiler design. Indeed a compiler is a microcosm, featuring a variety of aspects ranging from algorithmic wisdom to CPU and memory exploitation. As a consequence the textbooks have grown in size, and compete with respect to their coverage of the last developments on programming languages, processor architectures and clever mappings from the former to the latter.
To put things into order, in my opinion it is better to separate such complex topic into two parts, basic and advanced, which correspond with good approximation to the two subsystems of a compiler: the user language-specific front-end, and the machine language-specific back-end. The basic part is the subject of this book; it covers the principles and algorithms widely used for defining the syntax of languages and implementing simple translators. It does not include: the specific know-how needed for various classes of programv ming languages (imperative, functional, object oriented, etc.), the computer architecture-related aspects, and the optimization methods used to improve the machine code produced by the compiler.
In other textbooks the bias towards technological aspects, related to software and hardware architectures, has reduced the attention to the fundamental concepts of language specification and translation. This perhaps explains why such books do not exploit the improvements and simplifications made possible by decades of extensive use of syntax-directed methods, and still keep the irritating variants and repetitions, to be found in the historical papers which introduced the theory of translation. Moving from these premises, I decided to present in a simple minimalist way the essential principles and methods used in designing syntax-directed translators. Just a few examples: the coverage of the algorithms for processing regular expressions and finite automata is rather complete and condensed. The systematic discussion of ambiguous forms is intended to avoid pitfalls when designing grammars. The standard presentation of parsing algorithms has been improved, by unifying the concepts and notations used in different approaches, thus extending methods coverage with a reduced definitional apparatus. The concepts of syntactic translation are effectively linked to regular expressions, grammars and abstract automata, and pave the way to attribute grammars and syntax-directed translation. The book is not restricted to syntax. The sections on translation, semantic functions (attribute grammars), and static program analysis by data flow equations provide a more comprehensive understanding of the compilation process.
The text is illustrated by many small yet realistic and paradigmatic examples, to ease the understanding of the theory and the transfer to application. Many diagrams and figures enlighten the presentation. This book has been written by an engineer for future engineers and compiler or language designers: the choice of the theoretical properties is always driven by their utility and the conceptual economy they allow. Theoretical models of automata, transducers and formal grammars are extensively used, whenever practical motivation warrants. Formal properties are intuitively justified and illustrated by examples; proofs are outlined whenever possible, and reference is given to publications. Algorithms are described in a pseudo-code to avoid the disturbing details of a programming language, yet they are straightforward to convert to executable procedures. Links to further readings and published references are provided as footnotes.

Introduction
Syntax
Finite Automata as Regular Language Recognizers
Pushdown Automata and Top-down Parsing
Bottom-Up and General Parsing
Translation Semantics and Static Analysis
Похожие разделы
Смотрите также

Bel-Enguix G., Jim?nez-L?pez M.D., Mart?n-Vide (eds.). New Developments in Formal Languages and Applications

  • формат pdf
  • размер 4.31 МБ
  • добавлен 05 декабря 2011 г.
Издательство Springer, 2008, -278 pp. The theory of formal languages is widely accepted as the backbone of theoretical computer science. It mainly originated from mathematics (combinatorics, algebra, mathematical logic) and generative linguistics. Later, new specializations emerged from areas of either computer science (concurrent and distributed systems, computer graphics, artificial life), biology (plant development, molecular genetics), lingu...

Carroll J., Long D. Theory of Finite Automata with an Introduction to Formal Languages

  • формат pdf
  • размер 14.54 МБ
  • добавлен 01 ноября 2011 г.
Издательство Prentice Hall, 1989, -447 pp. It often seems that mathematicians regularly provide answers well before the rest of the world finds reasons to ask the questions. The operation of the networks of relays used in the first computers is exactly described by Boolean functions. George Boole thereby made his contribution to computer science in the mid-1800s, and Boolean algebra is used today to represent modern TIL (transistor-transistor lo...

Lawson M.V. Finite Automata

  • формат pdf
  • размер 5.93 МБ
  • добавлен 27 декабря 2011 г.
Издательство CRC Press, 2004, -326 pp. The theory of finite automata is the mathematical theory of a simple class of algorithms that are important in computer science. Algorithms are recipes that tell us how to solve problems; the rules we learn in school for adding, subtracting, multiplying and dividing numbers are good examples of algorithms. Although algorithms have always been important in mathematics, mathematicians did not spell out precis...

Pin J.E. (ed.) Formal Properties of Finite Automata and Applications

  • формат djvu
  • размер 2.38 МБ
  • добавлен 01 ноября 2011 г.
Издательство Springer, 1989, -268 pp. The subject of the sixteenth School is the theory of finite automata and its applications. However two important parts of this theory are not treated in this volume, because they were already the subject of two earlier Spring Schools : "Automata on infinite words" (Spring School 1984) and "Automata Networks" (Spring School 1986). The proceedings have been divided into three sections. The first section is de...

Rozenberg G., Salomaa A. (Eds.) Handbook of Formal Languages. Volume 2. Linear Modeling: Background and Application

Справочник
  • формат djvu
  • размер 15 МБ
  • добавлен 28 сентября 2011 г.
Издательство Springer, 1997, -552 pp. The need for a comprehensive survey-type exposition on formal languages and related mainstream areas of computer science has been evident for some years. In the early 1970s, when the book Formal Languages by the second-mentioned editor appeared, it was still quite feasible to write a comprehensive book with that title and include also topics of current research interest. This would not be possible any more....

Rozenberg G., Salomaa A. (eds.) Handbook of Formal Languages: Volume 1. Word, Language, Grammar

Справочник
  • формат pdf
  • размер 71.47 МБ
  • добавлен 06 октября 2011 г.
Издательство Springer, 1997, -873 pp. This first volume of the Handbook of Formal Languages gives a comprehensive authoritative exposition on the core of language theory. Grammars, codes, power series, L systems, and combinatorics on words are all discussed in a thorough, yet self-contained manner. This is perhaps the most informative single volume in the history of theoretical computer science. As a Ph.D. candidate working in parsing and intere...

Shallit J. A Second Course in Formal Languages and Automata Theory

  • формат pdf
  • размер 1.36 МБ
  • добавлен 14 октября 2011 г.
Издательство Cambridge University Press, 2008, -254 pp. Intended for graduate students and advanced undergraduates in computer science, A Second Course in Formal Languages and Automata Theory treats topics in the theory of computation not usually covered in a first course. After a review of basic concepts, the book covers combinatorics on words, regular languages, context-free languages, parsing and recognition, Turing machines, and other langua...

Subramanian K.G., Rangarajan K., Mukund M. (eds.) Formal Models, Languages and Applications

  • формат pdf
  • размер 16.46 МБ
  • добавлен 10 декабря 2011 г.
Издательство World Scientific, 2006, -420 pp. This volume of contributed papers commemorates the 75th birthday of Prof. Rani Siromoney, one of the foremost theoretical computer scientists in India and a leading authority on Formal Languages and Automata Theory. Over a period spanning four decades, she has made tremendous technical contributions to the field through her research. She has also inspired generations of students in Chennai with her t...

Taubner D. Finite Representations of CCS and TCSP Programs by Automata and Petri Nets

  • формат djvu
  • размер 1.31 МБ
  • добавлен 01 ноября 2011 г.
Издательство Springer, 1989, -167 pp. There are two main approaches to a theory of concurrent distributed computations: the theory of Petri nets and the Milner/Hoare theory of CCS/CSP. They are based on different philosophies and emerged from two different classical notions of computability. The Petri net approach developed (in the early 60s) from the ideas around Turing machines and automata; it has concurrency and causality as its basic concep...

Xavier S.P.E. Theory of Automata Formal Languages and Computation

  • формат pdf
  • размер 1.89 МБ
  • добавлен 01 ноября 2011 г.
Издательство New Age International, 2005, -360 pp. This book deals with a fascinating and important subject which has the fundamentals of computer hardware, software and some of their applications. This book is intended as an introductory graduate text in computer science theory. I have taken care to present the material very clearly and interestingly. As an introductory subject to computer science, this book has been written with major stress o...