Compiler construction: principles and practice
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Boston [u.a.]
Course Technology Cengage Learning
2008
|
Ausgabe: | [Repr.] |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | X, 582 S. |
ISBN: | 9780534939724 0534939724 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV035577928 | ||
003 | DE-604 | ||
005 | 00000000000000.0 | ||
007 | t | ||
008 | 090623s2008 |||| 00||| eng d | ||
020 | |a 9780534939724 |9 978-0-534-93972-4 | ||
020 | |a 0534939724 |9 0-534-93972-4 | ||
035 | |a (OCoLC)634765894 | ||
035 | |a (DE-599)BVBBV035577928 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-473 | ||
084 | |a ST 255 |0 (DE-625)143629: |2 rvk | ||
100 | 1 | |a Louden, Kenneth C. |e Verfasser |4 aut | |
245 | 1 | 0 | |a Compiler construction |b principles and practice |c Kenneth C. Louden |
250 | |a [Repr.] | ||
264 | 1 | |a Boston [u.a.] |b Course Technology Cengage Learning |c 2008 | |
300 | |a X, 582 S. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Übersetzerbau |0 (DE-588)4121803-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Compiler |0 (DE-588)4148248-7 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Compiler |0 (DE-588)4148248-7 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Übersetzerbau |0 (DE-588)4121803-6 |D s |
689 | 1 | |5 DE-604 | |
856 | 4 | 2 | |m Digitalisierung UB Bamberg |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017633390&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-017633390 |
Datensatz im Suchindex
_version_ | 1804139234466988032 |
---|---|
adam_text | Contents
1
INTRODUCTION
I
I
.
I Why Compilers? A Brief History
2
1
.2
Programs Related to Compilers
4
1
.3
The Translation Process
7
1
.4
Major Data Structures in a Compiler 1
3
1.5
Other Issues in Compiler Structure
14
1
.6
Bootstrapping and Porting 1
8
1.7
The TINY Sample Language and Compiler
22
1
.8
С
-Minus:
A Language for a Compiler Project
26
Exercises
27
Notes and References
29
2
SCANNING
31
2.
1 The Scanning Process
32
2.2
Regular Expressions
34
2.3
Finite Automata
47
2.4
From Regular Expressions to DFAs
64
2.5
Implementation of a TINY Scanner
75
2.6
Use of Lex to Generate a Scanner Automatically
8
1
Exercises
89
Programming Exercises
93
Notes and References
94
3
CONTEXT-FREE GRAMMARS AND PARSING
95
3.
1 The Parsing Process
96
3.2
Context-Free Grammars
97
3.3
Parse Trees and Abstract Syntax Trees 1
06
3.4
Ambiguity 1
14
3.5
Extended Notations: EBNF and Syntax Diagrams
123
3.6
Formal Properties of Context-Free Languages 1
28
3.7
Syntax of the TINY Language
133
Exercises 1
38
Notes and References 1
42
iv
CONTENTS
4
TOP-DOWN PARSING
143
4.1
Top-Down Parsing by Recursive-Descent
144
4.2
LL(1) Parsing
152
4.3
First and Follow Sets 1
68
4.4
A Recursive-Descent Parser for the TINY Language 1
80
4.5
Error Recovery in Top-Down Parsers
183
Exercises
189
Programming Exercises
193
Notes and References
196
5
BOTTOM-UP PARSING
197
5.
1 Overview of Bottom-Up Parsing 1
98
5.2
Finite Automata of LR(0) Items and LR(0) Parsing
201
5.3
SLR(l) Parsing
210
5.4
General LR(
1 )
and LALR(
1 )
Parsing
2
1
7
5.5
Yace:
An LALR(I) Parser Generator
226
5.6
Generation of a TINY Parser Using
Yace
243
5.7
Error Recovery in Bottom-Up Parsers
245
Exercises
250
Programming Exercises
254
Notes and References
256
6
SEMANTIC ANALYSIS
257
6.
1 Attributes and Attribute Grammars
259
6.2
Algorithms for Attribute Computation
270
6.3
The Symbol Table
295
6.4
Data Types and Type Checking
ЗІЗ
6.5
A Semantic Analyzer for the TINY Language
334
Exercises
339
Programming Exercises
342
Notes and References
343
7
RUNTIME ENVIRONMENTS
345
7.
1 Memory Organization During Program Execution
346
7.2
Fully Static Runtime Environments
349
7.3
Stack-Based Runtime Environments
352
7.4
Dynamic Memory
373
7.5
Parameter Passing Mechanisms
38
1
7.6
A Runtime Environment for the TINY Language
386
Exercises
388
Programming Exercises
395
Notes and References
396
vi
CONTENTS
8
CODE
GENERATION 397
8.
1 Intermediate Code and Data Structures for Code Generation
398
8.2
Basic Code Generation Techniques
407
8.3
Code Generation of Data Structure References
4
1
6
8.4
Code Generation of Control Statements and Logical Expressions
428
8.5
Code Generation of Procedure and Function Calls
436
8.6
Code Generation in Commercial Compilers: Two Case Studies
443
8.7
TM: A Simple Target Machine
453
8.8
A Code Generator for the TINY Language
459
8.9
A Survey of Code Optimization Techniques
468
8.
1
0
Simple Optimizations for the TINY Code Generator
48
1
Exercises
484
Programming Exercises
488
Notes and References
489
Appendix A: A COMPILER PROJECT
491
A. I Lexical Conventions of
С
- 491
A.2 Syntax and Semantics of C—
492
A.3 Sample Programs in C—
496
A.4 A TINY Machine Runtime Environment for the C— Language
497
A.5 Programming Projects Using C— and TM
500
AppendixB: TINY COMPILER LISTING
502
Appendix C: TINY MACHINE SIMULATOR LISTING
545
Bibliography
558
Index
562
|
any_adam_object | 1 |
author | Louden, Kenneth C. |
author_facet | Louden, Kenneth C. |
author_role | aut |
author_sort | Louden, Kenneth C. |
author_variant | k c l kc kcl |
building | Verbundindex |
bvnumber | BV035577928 |
classification_rvk | ST 255 |
ctrlnum | (OCoLC)634765894 (DE-599)BVBBV035577928 |
discipline | Informatik |
edition | [Repr.] |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01373nam a2200373 c 4500</leader><controlfield tag="001">BV035577928</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">00000000000000.0</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">090623s2008 |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780534939724</subfield><subfield code="9">978-0-534-93972-4</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0534939724</subfield><subfield code="9">0-534-93972-4</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)634765894</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV035577928</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-473</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 255</subfield><subfield code="0">(DE-625)143629:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Louden, Kenneth C.</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Compiler construction</subfield><subfield code="b">principles and practice</subfield><subfield code="c">Kenneth C. Louden</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">[Repr.]</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Boston [u.a.]</subfield><subfield code="b">Course Technology Cengage Learning</subfield><subfield code="c">2008</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">X, 582 S.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Übersetzerbau</subfield><subfield code="0">(DE-588)4121803-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Compiler</subfield><subfield code="0">(DE-588)4148248-7</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Compiler</subfield><subfield code="0">(DE-588)4148248-7</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Übersetzerbau</subfield><subfield code="0">(DE-588)4121803-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bamberg</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017633390&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-017633390</subfield></datafield></record></collection> |
id | DE-604.BV035577928 |
illustrated | Not Illustrated |
indexdate | 2024-07-09T21:40:51Z |
institution | BVB |
isbn | 9780534939724 0534939724 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-017633390 |
oclc_num | 634765894 |
open_access_boolean | |
owner | DE-473 DE-BY-UBG |
owner_facet | DE-473 DE-BY-UBG |
physical | X, 582 S. |
publishDate | 2008 |
publishDateSearch | 2008 |
publishDateSort | 2008 |
publisher | Course Technology Cengage Learning |
record_format | marc |
spelling | Louden, Kenneth C. Verfasser aut Compiler construction principles and practice Kenneth C. Louden [Repr.] Boston [u.a.] Course Technology Cengage Learning 2008 X, 582 S. txt rdacontent n rdamedia nc rdacarrier Übersetzerbau (DE-588)4121803-6 gnd rswk-swf Compiler (DE-588)4148248-7 gnd rswk-swf Compiler (DE-588)4148248-7 s DE-604 Übersetzerbau (DE-588)4121803-6 s Digitalisierung UB Bamberg application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017633390&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Louden, Kenneth C. Compiler construction principles and practice Übersetzerbau (DE-588)4121803-6 gnd Compiler (DE-588)4148248-7 gnd |
subject_GND | (DE-588)4121803-6 (DE-588)4148248-7 |
title | Compiler construction principles and practice |
title_auth | Compiler construction principles and practice |
title_exact_search | Compiler construction principles and practice |
title_full | Compiler construction principles and practice Kenneth C. Louden |
title_fullStr | Compiler construction principles and practice Kenneth C. Louden |
title_full_unstemmed | Compiler construction principles and practice Kenneth C. Louden |
title_short | Compiler construction |
title_sort | compiler construction principles and practice |
title_sub | principles and practice |
topic | Übersetzerbau (DE-588)4121803-6 gnd Compiler (DE-588)4148248-7 gnd |
topic_facet | Übersetzerbau Compiler |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017633390&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT loudenkennethc compilerconstructionprinciplesandpractice |