Models that include a notion of time are ubiquitous in disciplines such as the natural sciences, engineering, philosophy, and linguistics, but in computing the abstractions provided by the traditional models are problematic and the discipline has spawned many novel models. This book is a systematic thorough presentation of the results of several decades of research on developing, analyzing, and applying time models to computing and engineering. After an opening motivation introducing the topics, structure and goals, the authors introduce the notions of formalism and model in general terms along with some of their fundamental classification criteria. In doing so they present the fundamentals of propositional and predicate logic, and essential issues that arise when modeling time across all types of system. Part I is a summary of the models that are traditional in engineering and the natural sciences, including fundamental computer science: dynamical systems and control theory; hardware design; and software algorithmic and complexity analysis. Part II covers advanced and specialized formalisms dealing with time modeling in heterogeneous software-intensive systems: formalisms that share finite state machines as common “ancestors”; Petri nets in many variants; notations based on mathematical logic, such as temporal logic; process algebras; and “dual-language approaches” combining two notations with different characteristics to model and verify complex systems, e.g., model-checking frameworks. Finally, the book concludes with summarizing remarks and hints towards future developments and open challenges. The presentation uses a rigorous, yet not overly technical, style, appropriate for readers with heterogeneous backgrounds, and each chapter is supplemented with detailed bibliographic remarks and carefully chosen exercises of varying difficulty and scope. The book is aimed at graduate students and researchers in computer science, while researchers and practitioners in other scientific and engineering disciplines interested in time modeling with a computational flavor will also find the book of value, and the comparative and conceptual approach makes this a valuable introduction for non-experts. The authors assume a basic knowledge of calculus, probability theory, algorithms, and programming, while a more advanced knowledge of automata, formal languages, and mathematical logic is useful.
This classroom-tested and clearly-written textbook presents a focused guide to the conceptual foundations of compilation, explaining the fundamental principles and algorithms used for defining the syntax of languages, and for implementing simple translators. This significantly updated and expanded third edition has been enhanced with additional coverage of regular expressions, visibly pushdown languages, bottom-up and top-down deterministic parsing algorithms, and new grammar models. Topics and features: describes the principles and methods used in designing syntax-directed applications such as parsing and regular expression matching; covers translations, semantic functions (attribute grammars), and static program analysis by data flow equations; introduces an efficient method for string matching and parsing suitable for ambiguous regular expressions (NEW); presents a focus on extended BNF grammars with their general parser and with LR(1) and LL(1) parsers (NEW); introduces a parallel parsing algorithm that exploits multiple processing threads to speed up syntax analysis of large files; discusses recent formal models of input-driven automata and languages (NEW); includes extensive use of theoretical models of automata, transducers and formal grammars, and describes all algorithms in pseudocode; contains numerous illustrative examples, and supplies a large set of exercises with solutions at an associated website. Advanced undergraduate and graduate students of computer science will find this reader-friendly textbook to be an invaluable guide to the essential concepts of syntax-directed compilation. The fundamental paradigms of language structures are elegantly explained in terms of the underlying theory, without requiring the use of software tools or knowledge of implementation, and through algorithms simple enough to be practiced by paper and pencil.
This revised and expanded new edition elucidates the elegance and simplicity of the fundamental theory underlying formal languages and compilation. Retaining the reader-friendly style of the 1st edition, this versatile textbook describes the essential principles and methods used for defining the syntax of artificial languages, and for designing efficient parsing algorithms and syntax-directed translators with semantic attributes. Features: presents a novel conceptual approach to parsing algorithms that applies to extended BNF grammars, together with a parallel parsing algorithm (NEW); supplies supplementary teaching tools at an associated website; systematically discusses ambiguous forms, allowing readers to avoid pitfalls; describes all algorithms in pseudocode; makes extensive usage of theoretical models of automata, transducers and formal grammars; includes concise coverage of algorithms for processing regular expressions and finite automata; introduces static program analysis based on flow equations.
Models that include a notion of time are ubiquitous in disciplines such as the natural sciences, engineering, philosophy, and linguistics, but in computing the abstractions provided by the traditional models are problematic and the discipline has spawned many novel models. This book is a systematic thorough presentation of the results of several decades of research on developing, analyzing, and applying time models to computing and engineering. After an opening motivation introducing the topics, structure and goals, the authors introduce the notions of formalism and model in general terms along with some of their fundamental classification criteria. In doing so they present the fundamentals of propositional and predicate logic, and essential issues that arise when modeling time across all types of system. Part I is a summary of the models that are traditional in engineering and the natural sciences, including fundamental computer science: dynamical systems and control theory; hardware design; and software algorithmic and complexity analysis. Part II covers advanced and specialized formalisms dealing with time modeling in heterogeneous software-intensive systems: formalisms that share finite state machines as common “ancestors”; Petri nets in many variants; notations based on mathematical logic, such as temporal logic; process algebras; and “dual-language approaches” combining two notations with different characteristics to model and verify complex systems, e.g., model-checking frameworks. Finally, the book concludes with summarizing remarks and hints towards future developments and open challenges. The presentation uses a rigorous, yet not overly technical, style, appropriate for readers with heterogeneous backgrounds, and each chapter is supplemented with detailed bibliographic remarks and carefully chosen exercises of varying difficulty and scope. The book is aimed at graduate students and researchers in computer science, while researchers and practitioners in other scientific and engineering disciplines interested in time modeling with a computational flavor will also find the book of value, and the comparative and conceptual approach makes this a valuable introduction for non-experts. The authors assume a basic knowledge of calculus, probability theory, algorithms, and programming, while a more advanced knowledge of automata, formal languages, and mathematical logic is useful.
This will help us customize your experience to showcase the most relevant content to your age group
Please select from below
Login
Not registered?
Sign up
Already registered?
Success – Your message will goes here
We'd love to hear from you!
Thank you for visiting our website. Would you like to provide feedback on how we could improve your experience?
This site does not use any third party cookies with one exception — it uses cookies from Google to deliver its services and to analyze traffic.Learn More.