SlideShare a Scribd company logo
Visit ebookfinal.com to download the full version and
explore more ebooks or textbooks
Engineering a Compiler 2nd Edition Keith Cooper
_____ Click the link below to download _____
https://ebookfinal.com/download/engineering-a-compiler-2nd-
edition-keith-cooper/
Explore and download more ebooks or textbook at ebookfinal.com
Here are some recommended products that we believe you will be
interested in. You can click the link to download.
Inverse engineering handbook 1st Edition Keith A Woodbury
https://ebookfinal.com/download/inverse-engineering-handbook-1st-
edition-keith-a-woodbury/
An Introduction to Rehabilitation Engineering 1st Edition
Rory A Cooper
https://ebookfinal.com/download/an-introduction-to-rehabilitation-
engineering-1st-edition-rory-a-cooper/
Advanced ASIC chip synthesis using Synopsys Design
Compiler Physical Compiler and PrimeTime 2nd Edition
Himanshu Bhatnagar
https://ebookfinal.com/download/advanced-asic-chip-synthesis-using-
synopsys-design-compiler-physical-compiler-and-primetime-2nd-edition-
himanshu-bhatnagar/
Modern Compiler Implementation in Java 2Ed 2nd Edition
Andrew W. Appel
https://ebookfinal.com/download/modern-compiler-implementation-in-
java-2ed-2nd-edition-andrew-w-appel/
Biophysical Chemistry RSC 2nd ed Edition Alan Cooper
https://ebookfinal.com/download/biophysical-chemistry-rsc-2nd-ed-
edition-alan-cooper/
The World since 1945 A Concise History Opus 2nd Edition
Keith Robbins
https://ebookfinal.com/download/the-world-since-1945-a-concise-
history-opus-2nd-edition-keith-robbins/
Integrated Optomechanical Analysis 2nd Edition Keith B.
Doyle
https://ebookfinal.com/download/integrated-optomechanical-
analysis-2nd-edition-keith-b-doyle/
Acoustic and Auditory Phonetics 2nd Edition Keith Johnson
https://ebookfinal.com/download/acoustic-and-auditory-phonetics-2nd-
edition-keith-johnson/
The Making of Cabaret 2nd Edition Keith Garebian
https://ebookfinal.com/download/the-making-of-cabaret-2nd-edition-
keith-garebian/
Engineering a Compiler 2nd Edition Keith Cooper
Engineering a Compiler 2nd Edition Keith Cooper Digital
Instant Download
Author(s): Keith Cooper, Linda Torczon
ISBN(s): 9780120884780, 012088478X
Edition: 2
File Details: PDF, 8.27 MB
Year: 2011
Language: english
Engineering a Compiler 2nd Edition Keith Cooper
In Praise of Engineering a Compiler Second Edition
Compilers are a rich area of study, drawing together the whole world of computer science in
one, elegant construction. Cooper and Torczon have succeeded in creating a welcoming guide to
these software systems, enhancing this new edition with clear lessons and the details you simply
must get right, all the while keeping the big picture firmly in view. Engineering a Compiler is an
invaluable companion for anyone new to the subject.
Michael D. Smith
Dean of the Faculty of Arts and Sciences
John H. Finley, Jr. Professor of Engineering and Applied Sciences, Harvard University
The Second Edition of Engineering a Compiler is an excellent introduction to the construction
of modern optimizing compilers. The authors draw from a wealth of experience in compiler
construction in order to help students grasp the big picture while at the same time guiding
them through many important but subtle details that must be addressed to construct an effec-
tive optimizing compiler. In particular, this book contains the best introduction to Static Single
Assignment Form that I’ve seen.
Jeffery von Ronne
Assistant Professor
Department of Computer Science
The University of Texas at San Antonio
Engineering a Compiler increases its value as a textbook with a more regular and consistent
structure, and with a host of instructional aids: review questions, extra examples, sidebars, and
marginal notes. It also includes a wealth of technical updates, including more on nontraditional
languages, real-world compilers, and nontraditional uses of compiler technology. The optimi-
zation material—already a signature strength—has become even more accessible and clear.
Michael L. Scott
Professor
Computer Science Department
University of Rochester
Author of Programming Language Pragmatics
Keith Cooper and Linda Torczon present an effective treatment of the history as well as a
practitioner’s perspective of how compilers are developed. Theory as well as practical real
world examples of existing compilers (i.e. LISP, FORTRAN, etc.) comprise a multitude of effec-
tive discussions and illustrations. Full circle discussion of introductory along with advanced
“allocation” and “optimization” concepts encompass an effective “life-cycle” of compiler
engineering. This text should be on every bookshelf of computer science students as well as
professionals involved with compiler engineering and development.
David Orleans
Nova Southeastern University
This page intentionally left blank
Engineering a Compiler
Second Edition
About the Authors
Keith D. Cooper is the Doerr Professor of Computational Engineering at Rice University. He
has worked on a broad collection of problems in optimization of compiled code, including inter-
procedural data-flow analysis and its applications, value numbering, algebraic reassociation,
register allocation, and instruction scheduling. His recent work has focused on a fundamental
reexamination of the structure and behavior of traditional compilers. He has taught a variety of
courses at the undergraduate level, from introductory programming through code optimization
at the graduate level. He is a Fellow of the ACM.
Linda Torczon, Senior Research Scientist, Department of Computer Science at Rice Uni-
versity, is a principal investigator on the Platform-Aware Compilation Environment project
(PACE), a DARPA-sponsored project that is developing an optimizing compiler environment
which automatically adjusts its optimizations and strategies to new platforms. From 1990 to
2000, Dr. Torczon served as executive director of the Center for Research on Parallel Compu-
tation (CRPC), a National Science Foundation Science and Technology Center. She also served
as the executive director of HiPerSoft, of the Los Alamos Computer Science Institute, and of
the Virtual Grid Application Development Software Project (VGrADS).
Engineering a Compiler
Second Edition
Keith D. Cooper
Linda Torczon
Rice University
Houston, Texas
AMSTERDAM • BOSTON • HEIDELBERG • LONDON
NEW YORK • OXFORD • PARIS • SAN DIEGO
SAN FRANCISCO • SINGAPORE • SYDNEY • TOKYO
Morgan Kaufmann Publishers is an imprint of Elsevier
Acquiring Editor: Todd Green
Development Editor: Nate McFadden
Project Manager: Andre Cuello
Designer: Alisa Andreola
Cover Image: “The Landing of the Ark,” a vaulted ceiling-design whose iconography was narrated, designed, and drawn by John
Outram of John Outram Associates, Architects and City Planners, London, England. To read more visit www.johnoutram.com/rice.html.
Morgan Kaufmann is an imprint of Elsevier.
30 Corporate Drive, Suite 400, Burlington, MA 01803, USA
Copyright © 2012 Elsevier, Inc. All rights reserved.
No part of this publication may be reproduced or transmitted in any form or by any means, electronic or mechanical, including
photocopying, recording, or any information storage and retrieval system, without permission in writing from the publisher. Details on
how to seek permission, further information about the Publisher’s permissions policies and our arrangements with organizations such as
the Copyright Clearance Center and the Copyright Licensing Agency, can be found at our website: www.elsevier.com/permissions.
This book and the individual contributions contained in it are protected under copyright by the Publisher (other than as may be noted
herein).
Notices
Knowledge and best practice in this field are constantly changing. As new research and experience broaden our understanding, changes
in research methods or professional practices may become necessary. Practitioners and researchers must always rely on their own
experience and knowledge in evaluating and using any information or methods described herein. In using such information or methods
they should be mindful of their own safety and the safety of others, including parties for whom they have a professional responsibility.
To the fullest extent of the law, neither the Publisher nor the authors, contributors, or editors, assume any liability for any injury and/or
damage to persons or property as a matter of products liability, negligence or otherwise, or from any use or operation of any methods,
products, instructions, or ideas contained in the material herein.
Library of Congress Cataloging-in-Publication Data
Application submitted
British Library Cataloguing-in-Publication Data
A catalogue record for this book is available from the British Library.
ISBN: 978-0-12-088478-0
For information on all Morgan Kaufmann publications
visit our website at www.mkp.com
Printed in the United States of America
11 12 13 14 10 9 8 7 6 5 4 3 2 1
We dedicate this volume to
n our parents, who instilled in us the thirst for knowledge and supported
us as we developed the skills to follow our quest for knowledge;
n our children, who have shown us again how wonderful the process of
learning and growing can be; and
n our spouses, without whom this book would never have been written.
About the Cover
The cover of this book features a portion of the drawing, “The Landing of the Ark,” which
decorates the ceiling of Duncan Hall at Rice University. Both Duncan Hall and its ceiling were
designed by British architect John Outram. Duncan Hall is an outward expression of architec-
tural, decorative, and philosophical themes developed over Outram’s career as an architect. The
decorated ceiling of the ceremonial hall plays a central role in the building’s decorative scheme.
Outram inscribed the ceiling with a set of significant ideas—a creation myth. By expressing
those ideas in an allegorical drawing of vast size and intense color, Outram created a signpost
that tells visitors who wander into the hall that, indeed, this building is not like other buildings.
By using the same signpost on the cover of Engineering a Compiler, the authors intend to signal
that this work contains significant ideas that are at the core of their discipline. Like Outram’s
building, this volume is the culmination of intellectual themes developed over the authors’
professional careers. Like Outram’s decorative scheme, this book is a device for communicating
ideas. Like Outram’s ceiling, it presents significant ideas in new ways.
By connecting the design and construction of compilers with the design and construction of
buildings, we intend to convey the many similarities in these two distinct activities. Our many
long discussions with Outram introduced us to the Vitruvian ideals for architecture: commodity,
firmness, and delight. These ideals apply to many kinds of construction. Their analogs for com-
piler construction are consistent themes of this text: function, structure, and elegance. Function
matters; a compiler that generates incorrect code is useless. Structure matters; engineering detail
determines a compiler’s efficiency and robustness. Elegance matters; a well-designed compiler,
in which the algorithms and data structures flow smoothly from one pass to another, can be a
thing of beauty.
We are delighted to have John Outram’s work grace the cover of this book.
Duncan Hall’s ceiling is an interesting technological artifact. Outram drew the original design
on one sheet of paper. It was photographed and scanned at 1200 dpi yielding roughly 750 mb
of data. The image was enlarged to form 234 distinct 2 × 8 foot panels, creating a 52 × 72 foot
image. The panels were printed onto oversize sheets of perforated vinyl using a 12 dpi acrylic-
ink printer. These sheets were precision mounted onto 2 × 8 foot acoustic tiles and hung on the
vault’s aluminum frame.
viii
Contents
About the Authors ........................................................................ iv
About the Cover .......................................................................... viii
Preface ..................................................................................... xix
CHAPTER 1 Overview of Compilation ................................................... 1
1.1 Introduction .......................................................... 1
1.2 Compiler Structure ................................................... 6
1.3 Overview of Translation ............................................. 9
1.3.1 The Front End ................................................. 10
1.3.2 The Optimizer ................................................. 14
1.3.3 The Back End ................................................. 15
1.4 Summary and Perspective ........................................... 21
Chapter Notes ........................................................ 22
Exercises ............................................................. 23
CHAPTER 2 Scanners...................................................................... 25
2.1 Introduction .......................................................... 25
2.2 Recognizing Words .................................................. 27
2.2.1 A Formalism for Recognizers ................................ 29
2.2.2 Recognizing More Complex Words .......................... 31
2.3 Regular Expressions ................................................. 34
2.3.1 Formalizing the Notation ..................................... 35
2.3.2 Examples ...................................................... 36
2.3.3 Closure Properties of REs .................................... 39
2.4 From Regular Expression to Scanner ............................... 42
2.4.1 Nondeterministic Finite Automata ........................... 43
2.4.2 Regular Expression to NFA: Thompson’s
Construction ................................................... 45
2.4.3 NFA to DFA: The Subset Construction ...................... 47
2.4.4 DFA to Minimal DFA: Hopcroft’s Algorithm ............... 53
2.4.5 Using a DFA as a Recognizer ............................... 57
2.5 Implementing Scanners .............................................. 59
2.5.1 Table-Driven Scanners ........................................ 60
2.5.2 Direct-Coded Scanners ....................................... 65
2.5.3 Hand-Coded Scanners ........................................ 69
2.5.4 Handling Keywords ........................................... 72
ix
x Contents
2.6 Advanced Topics ..................................................... 74
2.6.1 DFA to Regular Expression .................................. 74
2.6.2 Another Approach to DFA Minimization:
Brzozowski’s Algorithm ...................................... 75
2.6.3 Closure-Free Regular Expressions ........................... 77
2.7 Chapter Summary and Perspective .................................. 78
Chapter Notes ........................................................ 78
Exercises ............................................................. 80
CHAPTER 3 Parsers........................................................................ 83
3.1 Introduction .......................................................... 83
3.2 Expressing Syntax ................................................... 85
3.2.1 Why Not Regular Expressions? .............................. 85
3.2.2 Context-Free Grammars ...................................... 86
3.2.3 More Complex Examples ..................................... 89
3.2.4 Encoding Meaning into Structure ............................ 92
3.2.5 Discovering a Derivation for an Input String ................ 95
3.3 Top-Down Parsing ................................................... 96
3.3.1 Transforming a Grammar for Top-Down Parsing ........... 98
3.3.2 Top-Down Recursive-Descent Parsers ....................... 108
3.3.3 Table-Driven LL(1) Parsers .................................. 110
3.4 Bottom-Up Parsing .................................................. 116
3.4.1 The LR(1) Parsing Algorithm ................................ 118
3.4.2 Building LR(1) Tables ........................................ 124
3.4.3 Errors in the Table Construction ............................. 136
3.5 Practical Issues ....................................................... 141
3.5.1 Error Recovery ................................................ 141
3.5.2 Unary Operators .............................................. 142
3.5.3 Handling Context-Sensitive Ambiguity ..................... 143
3.5.4 Left versus Right Recursion .................................. 144
3.6 Advanced Topics ..................................................... 147
3.6.1 Optimizing a Grammar ....................................... 148
3.6.2 Reducing the Size of LR(1) Tables .......................... 150
3.7 Summary and Perspective ........................................... 155
Chapter Notes ........................................................ 156
Exercises ............................................................. 157
Contents xi
CHAPTER 4 Context-Sensitive Analysis.................................................. 161
4.1 Introduction .......................................................... 161
4.2 An Introduction to Type Systems ................................... 164
4.2.1 The Purpose of Type Systems ................................ 165
4.2.2 Components of a Type System ............................... 170
4.3 The Attribute-Grammar Framework ................................ 182
4.3.1 Evaluation Methods ........................................... 186
4.3.2 Circularity ..................................................... 187
4.3.3 Extended Examples ........................................... 187
4.3.4 Problems with the Attribute-Grammar Approach ........... 194
4.4 Ad Hoc Syntax-Directed Translation ............................... 198
4.4.1 Implementing Ad Hoc Syntax-Directed Translation ........ 199
4.4.2 Examples ...................................................... 202
4.5 Advanced Topics ..................................................... 211
4.5.1 Harder Problems in Type Inference .......................... 211
4.5.2 Changing Associativity ....................................... 213
4.6 Summary and Perspective ........................................... 215
Chapter Notes ........................................................ 216
Exercises ............................................................. 217
CHAPTER 5 Intermediate Representations ............................................. 221
5.1 Introduction .......................................................... 221
5.1.1 A Taxonomy of Intermediate Representations .............. 223
5.2 Graphical IRs ......................................................... 226
5.2.1 Syntax-Related Trees ......................................... 226
5.2.2 Graphs ......................................................... 230
5.3 Linear IRs ............................................................ 235
5.3.1 Stack-Machine Code .......................................... 237
5.3.2 Three-Address Code .......................................... 237
5.3.3 Representing Linear Codes ................................... 238
5.3.4 Building a Control-Flow Graph from a Linear Code ........ 241
5.4 Mapping Values to Names ........................................... 243
5.4.1 Naming Temporary Values ................................... 244
5.4.2 Static Single-Assignment Form .............................. 246
5.4.3 Memory Models .............................................. 250
xii Contents
5.5 Symbol Tables ........................................................ 253
5.5.1 Hash Tables ................................................... 254
5.5.2 Building a Symbol Table ..................................... 255
5.5.3 Handling Nested Scopes ...................................... 256
5.5.4 The Many Uses for Symbol Tables .......................... 261
5.5.5 Other Uses for Symbol Table Technology ................... 263
5.6 Summary and Perspective ........................................... 264
Chapter Notes ........................................................ 264
Exercises ............................................................. 265
CHAPTER 6 The Procedure Abstraction ................................................. 269
6.1 Introduction .......................................................... 269
6.2 Procedure Calls ...................................................... 272
6.3 Name Spaces ......................................................... 276
6.3.1 Name Spaces of Algol-like Languages ...................... 276
6.3.2 Runtime Structures to Support Algol-like
Languages ..................................................... 280
6.3.3 Name Spaces of Object-Oriented Languages ................ 285
6.3.4 Runtime Structures to Support Object-Oriented
Languages ..................................................... 290
6.4 Communicating Values Between Procedures ....................... 297
6.4.1 Passing Parameters ............................................ 297
6.4.2 Returning Values .............................................. 301
6.4.3 Establishing Addressability .................................. 301
6.5 Standardized Linkages ............................................... 308
6.6 Advanced Topics ..................................................... 312
6.6.1 Explicit Heap Management ................................... 313
6.6.2 Implicit Deallocation ......................................... 317
6.7 Summary and Perspective ........................................... 322
Chapter Notes ........................................................ 323
Exercises ............................................................. 324
CHAPTER 7 Code Shape................................................................... 331
7.1 Introduction .......................................................... 331
7.2 Assigning Storage Locations ........................................ 334
7.2.1 Placing Runtime Data Structures ............................. 335
7.2.2 Layout for Data Areas ........................................ 336
7.2.3 Keeping Values in Registers .................................. 340
7.3 Arithmetic Operators ................................................ 342
7.3.1 Reducing Demand for Registers ............................. 344
Contents xiii
7.3.2 Accessing Parameter Values .................................. 345
7.3.3 Function Calls in an Expression .............................. 347
7.3.4 Other Arithmetic Operators .................................. 348
7.3.5 Mixed-Type Expressions ..................................... 348
7.3.6 Assignment as an Operator ................................... 349
7.4 Boolean and Relational Operators .................................. 350
7.4.1 Representations ............................................... 351
7.4.2 Hardware Support for Relational Operations ................ 353
7.5 Storing and Accessing Arrays ....................................... 359
7.5.1 Referencing a Vector Element ................................ 359
7.5.2 Array Storage Layout ......................................... 361
7.5.3 Referencing an Array Element ............................... 362
7.5.4 Range Checking ............................................... 367
7.6 Character Strings ..................................................... 369
7.6.1 String Representations ........................................ 370
7.6.2 String Assignment ............................................ 370
7.6.3 String Concatenation .......................................... 372
7.6.4 String Length .................................................. 373
7.7 Structure References ................................................. 374
7.7.1 Understanding Structure Layouts ............................ 375
7.7.2 Arrays of Structures ........................................... 376
7.7.3 Unions and Runtime Tags .................................... 377
7.7.4 Pointers and Anonymous Values ............................. 378
7.8 Control-Flow Constructs ............................................ 380
7.8.1 Conditional Execution ........................................ 381
7.8.2 Loops and Iteration ........................................... 384
7.8.3 Case Statements ............................................... 388
7.9 Procedure Calls ...................................................... 392
7.9.1 Evaluating Actual Parameters ................................ 393
7.9.2 Saving and Restoring Registers .............................. 394
7.10 Summary and Perspective ........................................... 396
Chapter Notes ........................................................ 397
Exercises ............................................................. 398
CHAPTER 8 Introduction to Optimization .............................................. 405
8.1 Introduction .......................................................... 405
8.2 Background ........................................................... 407
8.2.1 Examples ...................................................... 408
8.2.2 Considerations for Optimization ............................. 412
8.2.3 Opportunities for Optimization ............................... 415
xiv Contents
8.3 Scope of Optimization ............................................... 417
8.4 Local Optimization .................................................. 420
8.4.1 Local Value Numbering ...................................... 420
8.4.2 Tree-Height Balancing ........................................ 428
8.5 Regional Optimization ............................................... 437
8.5.1 Superlocal Value Numbering ................................. 437
8.5.2 Loop Unrolling ................................................ 441
8.6 Global Optimization ................................................. 445
8.6.1 Finding Uninitialized Variables with Live
Information .................................................... 445
8.6.2 Global Code Placement ....................................... 451
8.7 Interprocedural Optimization ........................................ 457
8.7.1 Inline Substitution ............................................ 458
8.7.2 Procedure Placement .......................................... 462
8.7.3 Compiler Organization for Interprocedural
Optimization .................................................. 467
8.8 Summary and Perspective ........................................... 469
Chapter Notes ........................................................ 470
Exercises ............................................................. 471
CHAPTER 9 Data-Flow Analysis .......................................................... 475
9.1 Introduction .......................................................... 475
9.2 Iterative Data-Flow Analysis ........................................ 477
9.2.1 Dominance .................................................... 478
9.2.2 Live-Variable Analysis ....................................... 482
9.2.3 Limitations on Data-Flow Analysis .......................... 487
9.2.4 Other Data-Flow Problems ................................... 490
9.3 Static Single-Assignment Form ..................................... 495
9.3.1 A Simple Method for Building SSA Form .................. 496
9.3.2 Dominance Frontiers .......................................... 497
9.3.3 Placing φ-Functions .......................................... 500
9.3.4 Renaming ...................................................... 505
9.3.5 Translation Out of SSA Form ................................ 510
9.3.6 Using SSA Form .............................................. 515
9.4 Interprocedural Analysis ............................................. 519
9.4.1 Call-Graph Construction ...................................... 520
9.4.2 Interprocedural Constant Propagation ....................... 522
9.5 Advanced Topics ..................................................... 526
9.5.1 Structural Data-Flow Algorithms and Reducibility ......... 527
9.5.2 Speeding up the Iterative Dominance Framework .......... 530
Contents xv
9.6 Summary and Perspective ........................................... 533
Chapter Notes ........................................................ 534
Exercises ............................................................. 535
CHAPTER 10 Scalar Optimizations.......................................................... 539
10.1 Introduction ............................................................. 539
10.2 Eliminating Useless and Unreachable Code ........................ 544
10.2.1 Eliminating Useless Code .................................... 544
10.2.2 Eliminating Useless Control Flow .......................... 547
10.2.3 Eliminating Unreachable Code .............................. 550
10.3 Code Motion ........................................................... 551
10.3.1 Lazy Code Motion ............................................ 551
10.3.2 Code Hoisting ................................................. 559
10.4 Specialization .......................................................... 560
10.4.1 Tail-Call Optimization ........................................ 561
10.4.2 Leaf-Call Optimization ....................................... 562
10.4.3 Parameter Promotion ......................................... 563
10.5 Redundancy Elimination .............................................. 565
10.5.1 Value Identity versus Name Identity ........................ 565
10.5.2 Dominator-based Value Numbering ......................... 566
10.6 Enabling Other Transformations ..................................... 569
10.6.1 Superblock Cloning ........................................... 570
10.6.2 Procedure Cloning ............................................ 571
10.6.3 Loop Unswitching ............................................ 572
10.6.4 Renaming ...................................................... 573
10.7 Advanced Topics ....................................................... 575
10.7.1 Combining Optimizations .................................... 575
10.7.2 Strength Reduction ............................................ 580
10.7.3 Choosing an Optimization Sequence ........................ 591
10.8 Summary and Perspective ............................................ 592
Chapter Notes .......................................................... 593
Exercises ................................................................ 594
CHAPTER 11 Instruction Selection ......................................................... 597
11.1 Introduction ............................................................. 597
11.2 Code Generation ....................................................... 600
11.3 Extending the Simple Treewalk Scheme ............................ 603
11.4 Instruction Selection via Tree-Pattern Matching ................... 610
11.4.1 Rewrite Rules .................................................. 611
11.4.2 Finding a Tiling ............................................... 616
11.4.3 Tools ............................................................ 620
xvi Contents
11.5 Instruction Selection via Peephole Optimization ................... 621
11.5.1 Peephole Optimization ....................................... 622
11.5.2 Peephole Transformers ....................................... 629
11.6 Advanced Topics ....................................................... 632
11.6.1 Learning Peephole Patterns .................................. 632
11.6.2 Generating Instruction Sequences ........................... 633
11.7 Summary and Perspective ............................................ 634
Chapter Notes .......................................................... 635
Exercises ................................................................ 637
CHAPTER 12 Instruction Scheduling ....................................................... 639
12.1 Introduction ............................................................. 639
12.2 The Instruction-Scheduling Problem ................................ 643
12.2.1 Other Measures of Schedule Quality ........................ 648
12.2.2 What Makes Scheduling Hard? .............................. 649
12.3 Local List Scheduling ................................................. 651
12.3.1 The Algorithm ................................................. 651
12.3.2 Scheduling Operations with Variable Delays .............. 654
12.3.3 Extending the Algorithm ..................................... 655
12.3.4 Tie Breaking in the List-Scheduling
Algorithm ...................................................... 655
12.3.5 Forward versus Backward List Scheduling ................ 656
12.3.6 Improving the Efficiency of List Scheduling .............. 660
12.4 Regional Scheduling ................................................... 661
12.4.1 Scheduling Extended Basic Blocks ......................... 661
12.4.2 Trace Scheduling .............................................. 663
12.4.3 Cloning for Context ........................................... 664
12.5 Advanced Topics ....................................................... 666
12.5.1 The Strategy of Software Pipelining ........................ 666
12.5.2 An Algorithm for Software Pipelining ...................... 670
12.6 Summary and Perspective ............................................ 673
Chapter Notes .......................................................... 673
Exercises ................................................................ 675
CHAPTER 13 Register Allocation............................................................ 679
13.1 Introduction ............................................................. 679
13.2 Background Issues ..................................................... 681
13.2.1 Memory versus Registers .................................... 681
13.2.2 Allocation versus Assignment ............................... 682
13.2.3 Register Classes ............................................... 683
13.3 Local Register Allocation and Assignment ......................... 684
13.3.1 Top-Down Local Register Allocation ....................... 685
Contents xvii
13.3.2 Bottom-Up Local Register Allocation ...................... 686
13.3.3 Moving Beyond Single Blocks .............................. 689
13.4 Global Register Allocation and Assignment ........................ 693
13.4.1 Discovering Global Live Ranges ............................ 696
13.4.2 Estimating Global Spill Costs ............................... 697
13.4.3 Interferences and the Interference Graph ................... 699
13.4.4 Top-Down Coloring .......................................... 702
13.4.5 Bottom-Up Coloring .......................................... 704
13.4.6 Coalescing Copies to Reduce Degree ....................... 706
13.4.7 Comparing Top-Down and Bottom-Up
Global Allocators ............................................. 708
13.4.8 Encoding Machine Constraints in the
Interference Graph ............................................ 711
13.5 Advanced Topics ....................................................... 713
13.5.1 Variations on Graph-Coloring Allocation .................. 713
13.5.2 Global Register Allocation over SSA Form ................ 717
13.6 Summary and Perspective ............................................ 718
Chapter Notes .......................................................... 719
Exercises ................................................................ 720
APPENDIX A ILOC.............................................................................. 725
A.1 Introduction ............................................................. 725
A.2 Naming Conventions ................................................... 727
A.3 Individual Operations .................................................. 728
A.3.1 Arithmetic ....................................................... 728
A.3.2 Shifts ............................................................. 729
A.3.3 Memory Operations ............................................. 729
A.3.4 Register-to-Register Copy Operations ........................ 730
A.4 Control-Flow Operations .............................................. 731
A.4.1 Alternate Comparison and Branch Syntax ................... 732
A.4.2 Jumps ............................................................. 732
A.5 Representing SSA Form ............................................... 733
APPENDIX B Data Structures................................................................ 737
B.1 Introduction ............................................................. 737
B.2 Representing Sets ....................................................... 738
B.2.1 Representing Sets as Ordered Lists ........................... 739
B.2.2 Representing Sets as Bit Vectors .............................. 741
B.2.3 Representing Sparse Sets ....................................... 741
B.3 Implementing Intermediate Representations ......................... 743
B.3.1 Graphical Intermediate Representations ...................... 743
B.3.2 Linear Intermediate Forms ..................................... 748
xviii Contents
B.4 Implementing Hash Tables ............................................ 750
B.4.1 Choosing a Hash Function ..................................... 750
B.4.2 Open Hashing ................................................... 752
B.4.3 Open Addressing ................................................ 754
B.4.4 Storing Symbol Records ....................................... 756
B.4.5 Adding Nested Lexical Scopes ................................ 757
B.5 A Flexible Symbol-Table Design ..................................... 760
BIBLIOGRAPHY ................................................................................ 765
INDEX ........................................................................................... 787
Preface to the Second Edition
The practice of compiler construction changes continually, in part because the designs of
processors and systems change. For example, when we began to write Engineering a Com-
piler (eac) in 1998, some of our colleagues questioned the wisdom of including a chapter on
instruction scheduling because out-of-order execution threatened to make scheduling largely
irrelevant. Today, as the second edition goes to press, the rise of multicore processors and the
push for more cores has made in-order execution pipelines attractive again because their smaller
footprints allow the designer to place more cores on a chip. Instruction scheduling will remain
important for the near-term future.
At the same time, the compiler construction community continues to develop new insights and
algorithms, and to rediscover older techniques that were effective but largely forgotten. Recent
research has created excitement surrounding the use of chordal graphs in register allocation
(see Section 13.5.2). That work promises to simplify some aspects of graph-coloring allocators.
Brzozowski’s algorithm is a dfa minimization technique that dates to the early 1960s but has
not been taught in compiler courses for decades (see Section 2.6.2). It provides an easy path
from an implementation of the subset construction to one that minimizes dfas. A modern course
in compiler construction might include both of these ideas.
How, then, are we to structure a curriculum in compiler construction so that it prepares students
to enter this ever changing field? We believe that the course should provide each student with
the set of base skills that they will need to build new compiler components and to modify
existing ones. Students need to understand both sweeping concepts, such as the collaboration
between the compiler, linker, loader, and operating system embodied in a linkage convention,
and minute detail, such as how the compiler writer might reduce the aggregate code space used
by the register-save code at each procedure call.
n CHANGES IN THE SECOND EDITION
The second edition of Engineering a Compiler (eac2e) presents both perspectives: big-picture
views of the problems in compiler construction and detailed discussions of algorithmic alterna-
tives. In preparing eac2e, we focused on the usability of the book, both as a textbook and as a
reference for professionals. Specifically, we
n Improved the flow of ideas to help the student who reads the book sequentially. Chapter
introductions explain the purpose of the chapter, lay out the major concepts, and provide a
high-level overview of the chapter’s subject matter. Examples have been reworked to
provide continuity across chapters. In addition, each chapter begins with a summary and a
set of keywords to aid the user who treats eac2e as a reference book.
n Added section reviews and review questions at the end of each major section. The review
questions provide a quick check as to whether or not the reader has understood the major
points of the section.
xix
Discovering Diverse Content Through
Random Scribd Documents
Wernerian Geology in North America.
The Father of American Geology.—Historical Geology begins in
America with William Maclure’s Observations on the Geology of the
United States, issued in 1809. This was the first important original
work on North American geology, and its colored geological map was
the first one of the area east of the Mississippi River. The
classification was essentially the Wernerian system. All of the strata
of the Coastal Plain, now known to range from the Lower Cretaceous
to Recent, were referred to the Alluvial. To the west, over the area of
the Piedmont, were his Primitive rocks, while the older Paleozoic
formations of the Appalachian ranges were referred to the
Transition. West of the folded area, all was Floetz or Secondary, or
what we now know as Paleozoic sedimentaries. The Triassic of the
Piedmont area and that of Connecticut he called the Old Red
Sandstone, and the coal formations of the interior region he said
rested upon the Secondary. The second edition of the work in 1817
was much improved, along with the map, which was also printed on
a more correct geographic base. (For greater detail, see Merrill,
Contributions to the History of American Geology, 1906.)
Even though Maclure’s geologic maps are much generalized, and
the scheme of classification adopted a very broad one, they are in the
main correct, even if they do emphasize unduly the rather simple
geologic structure of North America. This fact is patent all through
Maclure’s description. Cleaveland also refers to it in his treatise of
1816, and Silliman in the opening volume of the Journal (1, 7, 1818)
says: “The outlines of American geology appear to be particularly
grand, simple, and instructive.” Then, all the kinds of rocks were
comprehended under four classes, Primitive, Transition, Alluvial,
and Volcanic. It is also interesting to note here that in 1822 Maclure
had lost faith in the aqueous origin of the igneous rocks and writes of
the Wernerian system as “fast going out of fashion” (5, 197, 1822),
while Hitchcock said about the same thing in 1825 (9, 146).
The Work of Eaton.—Amos Eaton, after traveling 10,000 miles
and completing his Erie Canal Report in 1824, “reviewed the whole
line several times,” and published in 1828 in the Journal (14, 145) a
paper on Geological Nomenclature, Classes of Rocks, etc. The
broader classification is the Wernerian one of Primitive, Transition,
and Secondary classes. Under the first two he has fossiliferous early
Paleozoic formations, but does not know it, because he pays no
attention anywhere to the detail of the entombed fossils, and all of
his Secondary is what we now call Paleozoic. The correlations of the
latter are faulty throughout.
Then came his paper of 1830, Geological Prodromus (17, 63), in
which he says: “I intend to demonstrate ... that all geological strata
are arranged in five analogous series; and that each series consists of
three formations; viz., the Carboniferous [meaning mud-stones],
Quartzose, and Calcareous.” We seem to see here expressed for the
first time the idea of “cycles of sedimentation,” but Eaton does not
emphasize this idea, and the localities given for each “formation” of
“analogous series” demonstrate beyond a doubt that he did not have
a sedimentary sequence. The whole is simply a jumble of unrelated
formations that happen to agree more or less in their physical
characters.
“I intend to demonstrate,” he says further, “that the detritus of
New Jersey, embracing the marle, which contains those remarkable
fossil relics, is antediluvial, or the genuine Tertiary formation.” This
correlation had been clearly shown by Finch in 1824 (7, 31) and yet
both are in error in that they do not distinguish the included
Cretaceous marls and greensands as something apart from the
Tertiary.
One gets impatient with the later writings of Eaton, because he
does not become liberalized with the progressive ideas in
stratigraphic geology developing first in Europe and then in America,
especially among the geologists of Philadelphia. Therefore it is not
profitable to follow his work further.
Early American Text-books of Geology.—The first American text-
book of geology bears the date of Boston 1816 and is entitled An
Elementary Treatise on Mineralogy and Geology, its author being
Parker Cleaveland of Bowdoin College. The second edition appeared
in 1822. It also had a geologic map of the United States, practically a
copy of Maclure’s. To mineralogy were devoted 585 pages, and to
geology 55, of which 37 describe rocks and 5 the geology of the
United States. The chronology is Wernerian. Of “geological systems”
there are two, “primitive and secondary rocks.”
In 1818 appeared Amos Eaton’s Index to the Geology of the
Northern States, having 54 pages, and in 1820 came the second
edition, “wholly written over anew,” with 286 pages. The theory of
the later edition is still that of Werner, with “improvements of Cuvier
and Bakewell,” and yet one sees now-a-days but little in it of the far
better English text-book. Eaton did very little to advance philosophic
geology in America. What is of most value here are his personal
observations in regard to the local geology of western Massachusetts,
Connecticut, southwestern Vermont, and eastern New York (1, 69,
1819; also Merrill, p. 234).
We come now to the most comprehensive and advanced of the
early text-books used in America. This is the third English edition of
Robert Bakewell’s Introduction to Geology (400 pages, 1829), and
the first American edition “with an Appendix Containing an Outline
of his Course of Lectures on Geology at Yale College, by Benjamin
Silliman” (128 pages). Bakewell’s good book is in keeping with the
time, and while not so advanced as Conybeare and Phillips’s Outlines
of 1822, yet is far more so than Silliman’s appendix. The latter is
general and not specific as to details; it is still decidedly Wernerian,
though in a modified form. Silliman says he is “neither Wernerian
nor Huttonian,” and yet his summary on pages 120 to 126 shows
clearly that he was not only a Wernerian but a pietist as well.
Unearthing of the Cenozoic and Mesozoic in
North America.
The Discerning of the Tertiary.—The New England States, with
their essentially igneous and metamorphic formations, could not
furnish the proper geologic environment for the development of
stratigraphers and paleontologists. So in America we see the rise of
such geologists first in Philadelphia, where they had easy access to
the horizontal and highly fossiliferous strata of the coastal plain. The
first one to attract attention was Thomas Say, after him came John
Finch, followed by Lardner Vanuxem, Isaac Lea, Samuel G. Morton,
and T. A. Conrad. These men not only worked out the succession of
the Cenozoic and the upper part of the Mesozoic, but blazed the way
among the Paleozoic strata as well.
Thomas Say (1787–1834), in 1819, was the first American to point
out the chronogenetic value of fossils in his article, Observations on
some Species of Zoophytes, Shells, etc., principally Fossil (1, 381). He
correctly states that the progress of geology “must be in part founded
on a knowledge of the different genera and species of reliquiæ, which
the various accessible strata of the earth present.” Say fully realizes
the difficulties in the study of fossils, because of their fragmental
character and changed nature, and that their correct interpretation
requires a knowledge of similar living organisms.
The application of what Say pointed out came first in John Finch’s
Geological Essay on the Tertiary Formations in America (7, 31,
1824). Even though the paper is still laboring under the mineral
system and does not discern the presence of Cretaceous strata among
his Tertiary formations, yet Finch also sees that “fossils constitute
the medals of the ancient world, by which to ascertain the various
periods.”
Finch now objects to the wide misuse in America of the term
alluvial and holds that it is applied to what is elsewhere known as
Tertiary. He says:
“Geology will achieve a triumph in America, when the term alluvial shall be
banished from her Geological Essays, or confined to its legitimate domain, and
then her tertiary formations will be seen to coincide with those of Europe, and the
formations of London, Paris, and the Isle of Wight, will find kindred associations
in Virginia, the Carolinas, Georgias, the Floridas, and Louisiana.”
The formations as he has them from the bottom upwards are: (1)
Ferruginous sand, (2) Plastic clay, (3) Calcaire Silicieuse of the Paris
Basin, (4) London Clay, (5) Calcaire Ostrée, (6) Upper marine
formation, (7) Diluvial.
The grandest of these early stratigraphic papers, however, is that
by Lardner Vanuxem (1792–1848), of only three pages, entitled
“Remarks on the Characters and Classification of Certain American
Rock Formations” (16, 254, 1829). Vanuxem, a cautious man and a
profound thinker, had been educated at the Paris School of Mines.
James Hall told the writer in a conversation that while the first New
York State Survey was in operation, all of its members looked to
Vanuxem for advice.
In the paper above referred to, Vanuxem points out in a very
concise manner that:
“The alluvial of Mr. Maclure ... contains not only well characterized alluvion, but
products of the tertiary and secondary classes. Littoral shells, similar to those of
the English and Paris basins, and pelagic shells, similar to those of the chalk
deposition or latest secondary, abound in it. These two kinds of shells are not
mixed with each other; they occur in different earthy matter, and, in the southern
states particularly, are at different levels. The incoherency or earthiness of the
mass, and our former ignorance of the true position of the shells, have been the
sources of our erroneous views.”
The second error of the older geologists, according to Vanuxem,
was the extension of the secondary rocks over “the western country,
and the back and upper parts of New York.” They are now called
Paleozoic. Some had even tried to show the presence of Jurassic here
because of the existence of oölite strata. “It was taken for granted,
that all horizontal rocks are secondary, and as the rocks of these
parts of the United States are horizontal in their position, so they
were supposed to be secondary.” He then shows on the basis of
similar Ordovician fossils that the rocks of Trenton Falls, New York,
recur at Frankfort in Kentucky, and at Nashville in Tennessee.
“It is also certain that an uplifting or downfalling force, or both,
have existed, but it is not certain that either or both these forces have
acted in a uniform manner.... Innumerable are the facts, which have
fallen under my observation, which show the fallacy of adopting
inclination for the character of a class,” such as the Transition class
of strata. He then goes on to say that in the interior of our country
the so-called secondary rocks are horizontal and in the mountains to
the east the same strata are highly inclined. “The analogy, or identity
of rocks, I determine by their fossils in the first instance, and their
position and mineralogical characters in the second or last instance.”
It appears that Isaac Lea (1792–1886) in his Contributions to
Geology, 1833, was the first to transplant to America Lyell’s terms,
Pliocene, Miocene, and Eocene, proposed the previous year. The
celebrated Claiborne locality was made known to Lea in 1829, and in
the work here cited he describes from it 250 species, of which 200
are new. The horizon is correlated with the London Clay and with the
Calcaire Grossier of France, both of Eocene time (25, 413, 1834).
Timothy A. Conrad began to write about the American Tertiary in
1830, and his more important publications were issued at
Philadelphia. His papers in the Journal begin with 1833 and the last
one on the Tertiary is in 1846.
The Tertiary faunas and stratigraphy have been modernized by
William H. Dall in his monumental work of 1650 pages and 60 plates
entitled “Contributions to the Tertiary Fauna of Florida” (1885–
1903). Here more than 3160 forms of the Atlantic and Gulf deposits
are described, but in order to understand their relations to the fossil
faunas elsewhere and to the living world, the author studied over
10,000 species. Since then, many other workers have interested
themselves in the Tertiary problems. Much good work is also being
done in the Pacific States where the sequence is being rapidly
developed.
The Discerning of the Eastern Cretaceous.—The Cretaceous
sequence was first determined by that “active and acute geologist,”
Samuel G. Morton (1799–1851), but that these rocks might be
present along the Atlantic border had been surmised as early as 1824
by Edward Hitchcock (7, 216). Vanuxem, as above pointed out,
indicated the presence of the Cretaceous in 1829. In this same year
Morton proved its presence before the Philadelphia Academy of
Natural Sciences.
Between 1830 and 1835 Morton published a series of papers in the
Journal under the title “Synopsis of the Organic Remains of the
Ferruginous Sand Formation of the United States, with Geological
Remarks” (17, 274, et seq.). In these he describes the Cretaceous
fossils and demonstrates that the “Diluvial” and Tertiary strata of the
Atlantic border also have a long sequence of Cretaceous formations.
In the opening paper he writes: “I consider the marl of New Jersey as
referable to the great ferruginous sand series, which in Prof.
Buckland’s arrangement is designated by the name of green sand....
On the continent this series is called the ancient chalk ... lower
chalk,” etc. Again, the marls of New Jersey are “geologically
equivalent to those beds which in Europe are interposed between the
white chalk and the Oölites.” This correlation is with the European
Lower Cretaceous, but we now know the marls to be of Upper
Cretaceous age. Although Eaton objected strenuously to Morton’s
correlation, we find M. Dufresnoy of France saying, “Your limestone
above green sand reminds me very much of the Mæstricht beds,” a
correlation which stands to this day (22, 94, 1832). In 1833 Morton
announces that the Cretaceous is known all along the Atlantic and
Gulf border, and in the Mississippi valley. “The same species of
fossils are found throughout,” and none of them are known in the
Tertiary. He now arranges the strata of the former “Alluvial” as
follows:
Modern
Alluvial.
Diluvial.
Tertiary
Upper Tertiary (Upper Marine).
Middle Tertiary (London Clay).
Lower Tertiary (Plastic Clay).
Secondary
Calcareous
Strata Cretaceous group, or Ferruginous Sand series
(24, 128).
Ferruginous
Sand
Western Cretaceous.—In 1841 and 1843 J. N. Nicollet announced
the discovery of Cretaceous in the Rocky Mountain area. Of 20
species of fossils collected by him, 4 were said to occur on the
Atlantic border, and of the 200 forms of the Atlantic slope only 1 was
found in Europe. Here we see pointed out a specific dissimilarity
between the continents, and a similarity between the American areas
of Cretaceous deposits (41, 181; 45, 153).
The Cretaceous of the Rocky Mountains was clearly developed by
F. V. Hayden in 1855–1888 and by F. B. Meek (1857–1876). Other
workers in this field were Charles A. White (1869–1891), and R. P.
Whitfield (1877–1889). Since 1891 T. W. Stanton has been actively
interpreting its stratigraphy and faunas.
Cretaceous and Comanche of Texas.—The broader outlines of the
Cretaceous of Texas had been described by Ferdinand Roemer in
1852 in his good work, Kreidebildungen von Texas, but it was not
until 1887 that Robert T. Hill showed in the Journal (33, 291) that it
included two great series, the Gulf series, or what we now call Upper
Cretaceous, and a new one, the Comanche series. This was a very
important step in the right direction. Since then the Comanche series
has been regarded by some stratigraphers as of period value, while
others call it Lower Cretaceous; the rest of the Texas Cretaceous is
divided by Hill into Middle and Upper Cretaceous. On the other
hand, Lower Cretaceous strata had been proved even earlier in the
state of California, for here in 1869 W. M. Gabb (1839–1878) and J.
D. Whitney (1819–1896) had defined their Shasta group, which was
wholly distinct faunally from the Comanche of Texas and the
southern part of the Great Plains country.
Jurassic and Triassic of the West.—In 1864, the Geological Survey
of California proved the presence of marine Upper Triassic in that
State, and since then it has been shown that not only is all of the
Triassic present in Idaho (where it has been known since 1877),
Oregon, Nevada, and California, but that the Upper Triassic is of very
wide distribution throughout western North America. Jurassic
strata, on the other hand, were not shown to be present in California
until 1885, while in the Rocky Mountain area of the United States
there was long known an unresolved series of “Red Beds” situated
between the Carboniferous and Cretaceous. This gave rise to the
“Red Bed problem,” the history of which is given by C. A. White in
the Journal (17, 214, 1879). In 1869, F. V. Hayden announced the
discovery of marine Jurassic fossils in this series, and since then they
have come to be known as the Sundance fauna, extending from
southern Utah and Colorado into Alaska. Above lie the dinosaur-
bearing fresh-water deposits, since 1894 known as the Morrison
beds. In 1896, O. C. Marsh (1831–1899) announced the presence of
Jurassic fresh-water strata along the Atlantic coast (2, 433), but to-
day only a small part of them are regarded as of the age of the
Morrison, while the far greater part are referred to the Comanche or
Lower Cretaceous. The red beds below the Jurassic of the Rocky
Mountain area have during the past twenty years been shown to be
in part of Upper Triassic age and of fresh-water origin, while the
greater lower part is connected with the Carboniferous series and is
made up of brackish— and fresh-water deposits of probable Permian
time.
Triassic of Atlantic States.—The fresh-water Triassic of the
Atlantic border states was first mentioned by Maclure (1817), who
regarded it as the equivalent of the Old Red Sandstone of Europe. In
this he was followed by Hitchcock in 1823 (6, 39), the latter saying
that above it lies “the coal formation,” which is true for Europe, but
in America the coal strata are older than these red beds, now known
to be of Triassic age.
The first one to question this correlation was Alexandre
Brongniart, who had received from Hitchcock rock specimens and a
fossil fish which he erroneously identified with a Permian species,
and accordingly referred the strata to the Permian (3, 220, 1821; 6,
76, pl. 9, figs. 1, 2, 1823). The discerning Professor Finch in 1826
remarked that the red beds of Connecticut appear to belong “to the
new or variegated sandstone,” because of eight different criteria that
he mentions. Of these, but two are of value in correlation, their
“geological position” and the presence of bones other than fishes. In
the Connecticut area, however, the geological position cannot be
determined even to-day, and in Finch’s time the bones of dinosaurs
were unknown. Finch then goes on to point out the occurrences of
Old Red Sandstone in Pennsylvania, but all of the places he refers to
are either younger or older in time. Here we again see the fatality of
trying to make positive correlations on the basis of lithology and
color (10, 209, 1826). In 1835, however, Hitchcock showed that the
bones that had been found in 1820 were those of a saurian, and
accordingly referred the strata of the Connecticut valley to the New
Red Sandstone, a term that then covered both the Permian and the
Triassic. In 1842, W. B. Rogers referred the beds to the Jurassic, on
the basis of plants from Virginia. In 1856, W. C. Redfield (1789–
1857), because of the fishes, advocated a Lias, or Jurassic age, and
proposed the name Newark group for all the Triassic deposits of the
Atlantic border. More recently, on the basis of the plants studied by
Newberry, Fontaine, Sturr, and Ward, and the vertebrates described
by Marsh and Lull, the age has been definitely fixed as Upper
Triassic (see Dana’s Manual of Geology, 740, 1895).
Unearthing of the Paleozoic in North
America.
Permian of the United States.—In Europe, previous to 1841, the
formations now classed as Permian were included in the New Red
Sandstone, and with the Carboniferous were referred to the
Secondary. In that year Murchison proposed the period term
Permian. In 1845 came the classic Geology of Russia in Europe and
the Ural Mountains, by Murchison, Keyserling, and De Verneuil. In
this great work the authors separated out of the New Red the
Magnesian Limestone of Great Britain and the Rothliegende marls,
Kupferschiefer, and Zechstein of Germany, and with other
formations of the Urals in Russia, referred them to the Permian
system. This step, one of the most discerning in historical geology,
was all the more important because they closed the Paleozoic era
with the Permian, beginning the Secondary, or Mesozoic, with the
New Red Sandstone or the Triassic period. There is a good review of
this work by D. D. Owen (1807–1860) in the Journal for 1847 (3,
153).
Owen, though accepting the Permian system, is not satisfied with
its reference to the Paleozoic, and he sets the matter forth in the
Journal (3, 365, 1847). He doubts “the propriety of a classification
which throws the Permian and Carboniferous systems into the
Paleozoic period.” This is mainly because there is no “evidence of
disturbance or unconformability” between the Permian and Triassic
systems. Rather “there is so complete a blending of adjacent strata”
that it is only in Russia that the Permian has been distinguished from
the Triassic. This view of Owen’s was not only correct for Russia but
even more so for the Alps and for India, and it has taken a great deal
of work and discussion to fix upon the disconformable contact that
distinguishes the Paleozoic from the Mesozoic in these areas. In
other words, there was here at this time no mountain making. Then
Owen goes on to state that because the Permian of Europe has
reptiles, he sees in them decisive Mesozoic evidence. “These are
certainly strong arguments in favor of placing, not only the Permian,
but also the Carboniferous group in the Mesozoic period, and
terminating the Paleozoic division with the commencement of the
coal measures.” To this harking backward the geologists of the world
have not agreed, but have followed the better views of Murchison
and his associates.
In 1855 G. G. Shumard discovered, and in 1860 his brother B. F.
Shumard (1820–1869) announced, the presence of Permian strata in
the Guadalupe Mountains of Texas, and in 1902 George H. Girty (14,
363) confirmed this. Girty regards the faunas as younger than any
other late Paleozoic ones of America, and says: “For this reason I
propose to give them a regional name, which shall be employed in a
force similar to Mississippian and Pennsylvanian.... The term
Guadalupian is suggested.”
G. C. Swallow (1817–1899) in 1858 was the first to announce the
presence of Permian fossils in Kansas, and this led to a controversy
between himself and F. B. Meek, both claiming the discovery. It is
only in more recent years that it has been generally admitted that
there is Permian in that state, in Oklahoma, and in Texas. This
admission came the more readily through the discovery of many
reptiles in the red beds of Texas, and through the work of C. A.
White, published in 1891, The Texan Permian and its Mesozoic Types
of Fossils (Bull. U. S. Geological Survey, No. 77).
Carboniferous Formations.—The coal formations are noted in a
general way throughout the earliest volumes of the Journal. The first
accounts of the presence of coal, in Ohio, are by Caleb Atwater (1,
227, 239, 1819), and S. P. Hildreth (13, 38, 40, 1828). The first coal
plants to be described and illustrated were also from Ohio, in an
article by Ebenezer Granger in 1821 (3, 5–7). The anthracite field
was first described in 1822 by Zachariah Cist (4, 1) and then by
Benjamin Silliman (10, 331–351, 1826); that of western
Pennsylvania was described by William Meade in 1828 (13, 32).
The Lower Carboniferous was first recognized by W. W. Mather in
1838 (34, 356). Later, through the work of Alexander Winchell
(1824–1891), beginning in 1862 (33, 352) and continuing until 1871,
and through the surveys of Iowa (1855–1858), Illinois (essentially
the work of A. H. Worthen, 1858–1888), Ohio (1838, Mather, etc.),
and Indiana (Owen, etc., 1838), there was eventually worked out the
following succession:
Permian period.
Upper Barren series.
Dunkard group.
Washington group.
Pennsylvanian period.
Upper Productive Coal series. Monongahela series.
Lower Barren Coal Measures. Conemaugh series.
Lower Productive Coal Measures. Allegheny series.
Pottsville series.
The New York System.—We now come to the epochal survey of the
State of New York, one that established the principles of, and put
order into, American stratigraphy from the Upper Cambrian to the
top of the Devonian. No better area could have been selected for the
establishing of this sequence. This survey also developed a
stratigraphic nomenclature based on New York localities and rock
exposures, and made full use of the entombed fossils in correlation.
Incidentally it developed and brought into prominence James Hall,
who continued the stratigraphic work so well begun and who also
laid the foundation for paleontology in America, becoming its
leading invertebrate worker.
This work is reviewed at great length in the Journal in the volumes
for 1844–1847 by D. D. Owen. Evidently it followed too new a plan to
receive fulsome praise from conservative Owen, as it should have. He
remarks that the volumes “are not a little prolix, are voluminous and
expensive, and do not give as clear and connected a view of the
geological features of the state as could be wished.... We are of the
opinion that before this work can become generally useful and
extensively circulated, it must be condensed and arranged into one
compendious volume” (46, 144, 1844). This was never done and yet
the work was everywhere accepted at once, and to this end
undoubtedly Owen’s detailed review helped much.
The Natural History Survey of New York was organized in 1836
and completed in 1843. The state was divided into four districts, and
to these were finally assigned the following experienced geologists.
The southeastern part was named the First District, with W. W.
Mather (1804–1859) as geologist; the northeastern quarter was the
Second District, with Ebenezer Emmons (1799–1863) in charge; the
central portion was the Third District, under Lardner Vanuxem
(1792–1848); while the western part was James Hall’s (1811–1898)
Fourth District. Paleontology for a time was in charge of T. A. Conrad
(1830–1877); the mineralogical and chemical work was in the hands
of Lewis C. Beck; the botanist was John Torrey; and the zoologist
James DeKay.
The New York State Survey published six annual reports of 1675
pages octavo, and four final geological reports with 2079 pages
quarto. Finally in 1846 Emmons added another volume on the soils
and rocks of the state, in which he also discussed the Taconic and
New York systems; it has 371 pages. With the completion of the first
survey, Hall took up his life work under the auspices of the state—his
monumental work, Paleontology of New York, in fifteen quarto
volumes of 4539 pages and 1081 plates of fossils. In addition to all
this, there are his annual and other reports to the Regents of the
State, so that it is safe to say that he published not less than 10,000
pages of printed matter on the geology and paleontology of North
America.
In regard to this great series of works, all that can be presented
here is a table of formations as developed by the New York State
Survey. Practically all of its results and formation names have come
into general use, with the exception of the Taconic system of
Emmons and the division terms of the New York system. (See p. 88.)
The New York State Survey, begun in 1836, was continued by
James Hall from 1843 to 1898. During this time he was also state
geologist of Iowa (1855–1858) and Michigan (1862). Since 1898,
John M. Clarke has ably continued the Geological Survey of New
York, the state which continues to be, in science and more especially
in geology and paleontology, the foremost in America.
Western Extension of the New York system.—Before Hall finished
his final report, we find him in 1841 on “a tour of exploration through
the states of Ohio, Indiana, Illinois, a part of Michigan, Kentucky,
and Missouri, and the territories of Iowa and Wisconsin.” This tour is
described in the Journal (42, 51, 1842) under the caption “Notes
upon the Geology of the Western States.” His object was to ascertain
how far the New York system as the standard of reference “was
applicable in the western extension of the series.” In a general way he
was very successful in extending the system to the Mississippi River,
and he clearly saw “a great diminution, first of sandy matter, and
next of shale, as we go westward, and in the whole, a great increase
of calcareous matter in the same direction.” He also clearly noted the
warped nature of the strata, the “anticlinal axis,” since known as the
Cincinnati and Wabash uplifts and the Ozark dome.
Hall, however, fell into a number of flagrant errors because of a too
great reliance on lithologic correlation and supposedly similar
sequence. For instance, the Coal Measures of Pennsylvania were said
to directly overlap the Chemung group of southern New York, and
now he finds the same condition in Ohio, Indiana, and Illinois,
failing to see that in most places between the top of the New York
system and the Coal Measures lay the extensive Mississippian series,
one that he generally confounded with the Chemung, or included in
the “Carboniferous group.” He states that the Portage of New York is
the same as the Waverly of Ohio, and at Louisville the Middle
Devonian waterlime is correlated with the similar rock of the New
York Silurian. Hall was especially desirous of fixing the horizon of
the Middle Ordovician lead-bearing rocks of Illinois, Wisconsin, and
Iowa, but unfortunately correlated them with the Niagaran, while the
Middle Devonian about Columbus, Ohio, and Louisville, Kentucky,
he referred to the same horizon. The Galena-Niagaran error was
corrected in 1855, but the Devonian and Mississippian ones
remained unadjusted for a long time, and in Iowa until toward the
close of the nineteenth century.
The Geological Column of the New York Geologists of 1842–
1843, according to W. W. Mather 1842.
Quaternary system
Alluvial division.
Quaternary division.
Drift division.
Tertiary system
These strata are included in
the next lower division.
Upper Secondary system
Long Island division. Equals
the Tertiary and
Cretaceous marls, sands,
and clays of the coastal
plain of New Jersey.
New Red
system
of
Emmon
s and
Hall.
Trappean division. The
Palisades
Red Sandstone division.
Coal system of Mather, and Carboniferous system of Hall.
Old Red system of Catskill Mountains of Emmons; Catskill division of Mather
and Hall; and Catskill group of Vanuxem.
According to Hall 1843, and essentially Vanuxem 1842.
Erie division [Devonian]
Chemung, Portage or Nunda (divided
into Cashaqua, Gardeau, Portage),
Genesee, Tully, Hamilton (divided into
Ludlowville; Encrinal, Moscow), and
Marcellus.
Helderberg series
[Devonian-Silurian]
Corniferous, Onondaga, Schoharie,
Cauda-alli, Oriskany, Upper
Pentamerus, Encrinal, Delthyris,
Pentamerus, Waterlime, Onondaga
salt group.
Ontario division [Silurian] Niagara, Clinton, and Medina.
Champlain division
[Silurian-Ordovician-
Upper Cambrian]
Oneida or Shawangunk, Grey sandstone,
Hudson River group, Utica, Trenton,
Black River including Birdseye and
Chazy, Calciferous sandrock, and
Potsdam.
According to Emmons 1842, Mather 1843, Vanuxem 1842, Hall
1843.
Taconic System [Ordovician
and Lower Cambrian]
Granular quartz, Stockbridge limestone,
Magnesian slate, and Taconic slate.
Primary or Hypogene
system
Metamorphic and Primary rocks.
Correlations with Europe.—The first effort toward correlating the
New York system with those of Europe was made by Conrad in his
Notes on American Geology in 1839 (35, 243). Here he compares it
on faunal grounds with the Silurian system. A more sustained effort
was that of Hall in 1843 (45, 157), when he said that the Silurian of
Murchison was equal to the New York system and embraced the
Cambrian, Silurian, and Devonian, which he considered as forming
but one system. Hall in 1844 and Conrad earlier were erroneously
regarding the Middle Devonian of New York (Hamilton) as “an
equivalent of the Ludlow rocks of Mr. Murchison” (47, 118, 1844).
In 1846 E. P. De Verneuil spent the summer in America with a
view to correlating the formations of the New York system with those
of Europe. At this time he had had a wide field experience in France,
Germany, and Russia, was president of the Geological Society of
France, and “virtually the representative of European geology” (2,
153, 1846). Hall says, “No other person could have presented so clear
and perfect a coup d’oeil.” De Verneuil’s results were translated by
Hall and with his own comments were published in the Journal in
1848 and 1849 under the title “On the Parallelism of the Paleozoic
Deposits of North America with those of Europe.” De Verneuil was
especially struck with the complete development of American
Paleozoic deposits and said it was the best anywhere. On the other
hand, he did not agree with the detailed arrangement of the
formations in the various divisions of the New York system, and Hall
admitted altogether too readily that the terms were proposed “as a
matter of concession, and it is to be regretted that such an artificial
classification was adopted.” De Verneuil’s correlations are as follows:
The Lower Silurian system begins with the Potsdam, the analogue
of the Obolus sandstone of Russia and Sweden. The Black River and
Trenton hold the position of the Orthoceras limestones of Sweden
and Russia, while the Utica and Lorraine are represented by the
Graptolite beds of the same countries. Both correlations are in partial
error. He unites the Chazy, Birdseye, and Black River in one series,
and in another the Trenton, Utica, and Lorraine. Of species common
to Europe and America he makes out seventeen.
In the Upper Silurian system, the Oneida and Shawangunk are
taken out of the Champlain division, and, with the Medina, are
referred to the Silurian, along with all of the Ontario division plus the
Lower Helderberg. The Clinton is regarded as highest Caradoc or as
holding a stage between that and the Wenlock. The Niagara group is
held to be the exact equivalent of the Wenlock, “while the five
inferior groups of the Helderberg division represent the rocks of
Ludlow.” We now know that these Helderberg formations are Lower
Devonian in age. De Verneuil unites in one series the Waterlime,
Pentamerus, Delthyris, Encrinal, and Upper Pentamerus. Of
identical species there are forty common to Europe and America.
The Devonian system De Verneuil begins, “after much hesitation,”
with the Oriskany and certainly with the five upper members of
Hall’s Helderberg division, all of the Erie and the Old Red Sandstone.
He also adjusts Hall’s error by placing in the Devonian the Upper
Cliff limestone of Ohio and Indiana, regarded by the former as
Silurian. The Oriskany is correlated with the grauwackes of the
Rhine, and the Onondaga or Corniferous with the lower Eifelian.
Cauda-galli, Schoharie, and Onondaga are united in one series;
Marcellus, Hamilton, Tully, and Genesee in another; and Portage
and Chemung in a third. Of species common to Europe and America
there are thirty-nine.
The Waverly of Ohio and that near Louisville, Kentucky, which
Hall had called Chemung, De Verneuil correctly refers to the
Carboniferous, but to this Hall does not consent. De Verneuil points
out that there are thirty-one species in common between Europe and
America. “And as to plants, the immense quantity of terrestrial
species identical on the two sides of the Atlantic, proves that the coal
was formed in the neighborhood of lands already emerged, and
placed in similar physical conditions.”
An analysis of the Paleozoic fossils of Europe and America leads
De Verneuil to “the conviction that identical species have lived at the
same epoch in America and in Europe, that they have had nearly the
same duration, and that they succeeded each other in the same
order.” This he states is independent of the depth of the seas, and of
“the upheavings which have affected the surface of the globe.” The
species of a period begin and drop out at different levels, and toward
the top of a system the whole takes on the character of the next one.
“If it happens that in the two countries a certain number of systems,
characterized by the same fossils, are superimposed in the same
order, whatever may be, otherwise, their thickness and the number
of physical groups of which they are composed, it is philosophical to
consider these systems as parallel and synchronous.”
Because of the dominance of the sandstones and shales in eastern
New York, De Verneuil holds that a land lay to the east. The many
fucoids and ripple-marks from the Potsdam to the Portage indicated
to him shallow water and nearness to a shore.
The Oldest Geologic Eras.—We have seen in previous pages how
the Primitive rocks of Arduino and of Werner had been resolved, at
least in part, into the systems of the Paleozoic, but there still
remained many areas of ancient rocks that could not be adjusted into
the accepted scheme. One of the most extensive of these is in
Canada, where the really Primitive formations, of granites, gneisses,
schists, and even undetermined sediments, abound and are
developed on a grander scale than elsewhere, covering more than
two million square miles and overlain unconformably by the
Paleozoic and later rocks. The first to call attention to them was J. I.
Bigsby, a medical staff officer of the British Army, in 1821 (3, 254). It
was, however, William E. Logan (1798–1875), the “father of
Canadian geology,” who first unravelled their historical sequence. At
first he also called them Primary, but after much work he perceived
in them parallel structures and metamorphosed sediments,
underlain by and associated with pink granites. For the oldest
masses, essentially the granites, he proposed the term Laurentian
system (1853, 1863) and for the altered and deformed strata, the
name Huronian series (1857, 1863). Overlying these unconformably
was a third series, the copper-bearing rocks. Since his day a great
host of Canadian and American geologists have labored over this, the
most intricate of all geology, and now we have the following tentative
chronology (Schuchert and Barrell, 38, 1, 1914):
Late Proterozoic era.
Keweenawan, Animikian and Huronian periods.
Early Proterozoic era.
Sudburian period or older Huronian.
Archeozoic era.
Grenville series, etc.
Cosmic history.
The Taconic System Resurrected.
The Taconic system was first announced by Ebenezer Emmons in
1841, and clearly defined in 1842. It started the most bitter and most
protracted discussion in the annals of American geology. After
Emmons’s subsequent publications had put the Taconic system
through three phases, Barrande of Bohemia in 1860–1863 shed a
great deal of new and correct light upon it, affirming in a series of
letters to Billings that the Taconic fossils are like those of his
Primordial system, or what we now call the Middle Cambrian (31,
210, 1861, et seq.).
In a series of articles published by S. W. Ford in the Journal
between 1871 and 1886, there was developed the further new fact
that in Rensselaer and Columbia counties, New York, the so-called
Hudson River group abounds in “Primordial” fossils wholly unlike
those of the Potsdam, and which Ford later on spoke of as belonging
to “Lower Potsdam” time.
James D. Dana entered the field of the Taconic area in 1871 and
demonstrated that the system also abounds in Ordovician
fossiliferous formations. Then came the far-reaching work of Charles
D. Walcott, beginning in 1886, which showed that all through
eastern New York and into northern Vermont the Hudson River
group and the Taconic system abound not only in Ordovician but
also in Cambrian fossils. Finally in 1888 Dana presented a Brief
History of Taconic Ideas, and laid away the system with these words
(36, 27):
“It is almost fifty years since the Taconic system made its abrupt entrance into
geological science. Notwithstanding some good points, it has been through its
greater errors, long a hindrance to progress here and abroad ... But, whether the
evil or the good has predominated, we may now hope, while heartily honoring
Professor Emmons for his earnest geological labors and his discoveries, that
Taconic ideas may be allowed to be and remain part of the past.”
As an epitaph Dana placed over the remains of the Taconic system
the black-faced numerals 1841–1888. That the remains of the
system, however, and the term Taconic are still alive and demanding
a rehearing is apparent to all interested stratigraphers. This is not
the place to set the matter right, and all that can be done at the
present time is to point out what are the things that still keep alive
Emmons’s system.
In the typical area of the Taconic system, i. e., in Rensselaer
County, Emmons in 1844–1846 produced the fossils Atops
trilineatus and Elliptocephala asaphoides. S. W. Ford, as stated
above, later produced from the same general area many other fossils
that he demonstrated to be older than the Potsdam sandstone. To
this time he gave the name of Lower Potsdam, thus proving on
paleontological grounds that at least some part of the Taconic system
is older than the New York system, and therefore older than the
Hudson River group of Ordovician age.
In 1888 Walcott presented his conclusions in regard to the
sequence of the strata in the typical Taconic area and to the north
and south of it. He collected Lower Cambrian fossils at more than
one hundred localities “within the typical Taconic area,” and said
that the thickness of his “terrane No. 5” or “Cambrian (Georgia),”
now referable to the Lower Cambrian, is “14,000 feet or more.” He
demonstrated that the Lower Cambrian is infolded with the Lower
and Middle Ordovician, and confirmed Emmons’s statement that the
former rests upon his Primary or Pre-Cambrian masses. Elsewhere,
he writes: “To the west of the Taconic range the section passes down
through the limestone (3) [of Lower and Middle Ordovician age] to
the hydromica schists (2) [whose age may also be of early
Ordovician], and thence to the great development of slates and
shales with their interbedded sparry limestones, calciferous and
arenaceous strata, all of which contain more or less of the
Olenellus ... fauna.” He then knew thirty-five species in Washington
County, New York (35, 401, 1888).
Finally in 1915 Walcott said that in the Cordilleran area of America
there was a movement that brought about changes “in the
sedimentation and succession of the faunas which serve to draw a
boundary line between the Lower and Middle Cambrian series.... The
length of this period of interruption must have been considerable ...
and when connection with the Pacific was resumed a new fauna that
had been developing in the Pacific was then introduced into the
Cordilleran sea and constituted the Middle Cambrian fauna. The
change in the species from the Lower to the Middle Cambrian fauna
is very great.” He then goes on to show that in the Appalachian
geosyncline there was another movement that shut out the Middle
Cambrian Paradoxides fauna of the Atlantic realm from this trough,
and all deposition as well.
Conclusions.—Accordingly it appears that everywhere in America
the Lower Cambrian formations are separated by a land interval of
long duration from those of Middle Cambrian time. These
formations therefore unite into a natural system of rocks or a period
of time. Between Middle and Upper Cambrian time, however, there
appears to be a complete transition in the Cordilleran trough,
binding these two series of deposits into one natural or diastrophic
system. Hence the writer proposes that the Lower Cambrian of
America be known as the Taconic system. The Middle and Upper
Cambrian series can be continued for the present under the term
Cambrian system, a term, however, that is by no means in good
standing for these formations, as will be demonstrated under the
discussion of the Silurian controversy.
The Silurian Controversy.
Just as in America the base of the Paleozoic was involved in a
protracted controversy, so in England the Cambrian-Silurian
succession was a subject of long debate between Sedgwick and
Murchison, and among the succeeding geologists of Europe. The
history of the solution is so well and justly stated in the Journal by
James D. Dana under the title “Sedgwick and Murchison: Cambrian
and Silurian” (39, 167, 1890), and by Sir Archibald Geikie in his
Text-book of Geology, 1903, that all that is here required is to briefly
restate it and to bring the solution up to date.
Adam Sedgwick (1785–1873) and R. I. Murchison (1792–1871)
each began to work in the areas of Cambria (Wales) and Siluria
(England) in 1831, but the terms Cambrian and Silurian were not
published until 1835. Murchison was the first to satisfactorily work
out the sequence of the Silurian system because of the simpler
structural and more fossiliferous condition of his area. Sedgwick, on
the other hand, had his academic duties to perform at Cambridge
University, and being an older and more conservative man, delayed
publishing his final results, because of the further fact that his area
was far more deformed and less fossiliferous. In 1834 they were
working in concert in the Silurian area, and Sedgwick said: “I was so
struck by the clearness of the natural sections and the perfection of
his workmanship that I received, I might say, with implicit faith
everything which he then taught me.... The whole ‘Silurian system’
was by its author placed above the great undulating slate-rocks of
South Wales.” At that time Murchison told Sedgwick that the Bala
group of the latter, now known to be in the middle of the Lower
Silurian, could not be brought within the limits of the Silurian
system, and added, “I believe it to plunge under the true Llandeilo-
flags,” now placed next below the Bala and above the Arenig, which
at the present is regarded as at the base of the Ordovician.
The Silurian system was defined in print by Murchison in July,
1835, the Upper Silurian embracing the Ludlow and Wenlock, while
the Lower Silurian was based on the Caradoc and Llandeilo.
Murchison’s monumental work, The Silurian System, of 100 pages
and many plates of fossils, appeared in 1838.
The Cambrian system was described for the first time by Sedgwick
in August, 1835, but the completed work—a classic in geology—
Synopsis of the Classification of the British Palæozoic Rocks, along
with M’Coy’s Descriptions of British Palæozoic Fossils, did not
appear until 1852–1855. Sedgwick’s original Upper Cambrian
included the greater part of the chain of the Berwyns, where he said
it was connected with the Llandeilo flags of the Silurian. The Middle
Cambrian comprised the higher mountains of Cærnarvonshire and
Merionethshire, and the Lower Cambrian was said to occupy the
southwest coast of Cærnarvonshire, and to consist of chlorite and
mica schists, and some serpentine and granular limestone. In 1853 it
was seen that the fossiliferous Upper Cambrian included the Arenig,
Llandeilo, Bala, Caradoc, Coniston, Hirnant, and Lower Llandovery.
On the other hand, it was not until long after Murchison and
Sedgwick passed away that the Middle and Lower Cambrian were
shown to have fossils, but few of those that characterize what is now
called Lower, Middle, and Upper Cambrian time.
Not until long after the original announcement of the Cambrian
system did Sedgwick become aware “of the unfortunate mischief-
involving fact” that the most fossiliferous portion of the Cambrian—
the Upper Cambrian—and at that time the only part yielding
determinable fossils, when compared with the Lower Silurian was
seen to be an equivalent formation but with very different lithologic
conditions. He began to see in 1842 that his Cambrian was in conflict
with the Silurian system, and four years later there were serious
divergencies of views between himself and Murchison. The climax of
the controversy was attained in 1852, when Sedgwick was extending
his Cambrian system upwards to include the Bala, Llandeilo, and
Caradoc, a proceeding not unlike that of Murchison, who earlier had
been extending his Silurian downward through all of the fossiliferous
Cambrian to the base of the Lingula flags.
Dana in his review of the Silurian-Cambrian controversy states:
“The claim of a worker to affix a name to a series of rocks first
studied and defined by him cannot be disputed.” We have seen that
Murchison had priority of publication in his term Silurian over
Sedgwick’s Cambrian, but that in a complete presentation, both
stratigraphically and faunally, the former had years of prior
definition. What has even more weight is that geologists nearly
everywhere had accepted Murchison’s Silurian system as founded
upon the Lower and Upper Silurian formations. A nomenclature
once widely accepted is almost impossible to dislodge. However, in
regard to the controversy it should not be forgotten that it was only
Murchison’s Lower Silurian that was in conflict with Sedgwick’s
Upper Cambrian. As for the rest of the Cambrian, that was not
involved in the controversy.
Dana goes on to state that science may accept a name, or not,
according as it is, or is not, needed. In the progress of geology, he
thought that the time had finally been reached when the name
Cambrian was a necessity, and he included both Cambrian and
Silurian in the geological record. The “Silurian,” however, included
the Lower and Upper Silurian—not one system of rocks, but two.
It is now twenty-seven years since Dana came to this conclusion, at
a time when it was believed that there was more or less continuous
deposition not only between the formations of a system but between
the systems themselves as well. To-day many geologists hold that in
the course of time the oceans pulsate back and forth over the
continents, and accordingly that the sequence of marine
sedimentation in most places must be much broken, and to-day we
know that the breaks or land intervals in the marine record are most
marked between the eras, and shorter between all or at least most of
the periods. Furthermore, in North America, we have learned that
the breaks between the systems are most marked in the interior of
the continent and less so on or toward its margins.
Hardly any one now questions the fact of a long land interval
between the Lower Silurian and Upper Silurian in England, and it is
to Sedgwick’s credit that he was the first to point out this fact and
also the presence of an unconformity. It therefore follows that we
cannot continue to use Silurian system in the sense proposed by
Murchison, since it includes two distinct systems or periods. Dana, in
the last edition of his Manual of Geology (1895), also recognizes two
systems, but curiously he saw nothing incongruous in calling them
“Lower Silurian era” and “Upper Silurian era.” It certainly is not
conducive to clear thinking, however, to refer to two systems by the
one name of Silurian and to speak of them individually as Lower and
Upper Silurian, thus giving the impression that the two systems are
but parts of one—the Silurian. Each one of the parts has its
independent faunal and physical characters.
We must digress a little here and note the work of Joachim
Barrande (1799–1883) in Bohemia. In 1846 he published a short
account of the “Silurian system” of Bohemia, dividing it into étages
lettered C to H. Between 1852 and 1883 he issued his “Système
Silurien du Centre de la Bohème,” in eighteen quarto volumes with
5568 pages of text and 798 plates of fossils—a monumental work
unrivalled in paleontology. In the first volume the geology of
Bohemia is set forth, and here we see that étages A and B are Azoic or
pre-Cambrian, and C to H make up his Silurian system. Etage C has
his “Primordial fauna,” now known to be of Paradoxides or Middle
Cambrian time, while D is Lower Silurian, E is Upper Silurian, F is
Lower Devonian, and G and H are Middle Devonian. From this it
appears that Barrande’s Silurian system is far more extensive than
that of Murchison, embracing twice as many periods as that of
England and Wales.
About 1879 there was in England a nearly general agreement that
Cambrian should embrace Barrande’s Primordial or Paradoxides
faunas, and in the North Wales area be continued up to the top of the
Tremadoc slates. To-day we would include Middle and Upper
Cambrian. Lower Cambrian in the sense of containing the Olenellus
faunas was then unknown in Great Britain.
Lapworth, recognizing the distinctness of the Lower Silurian as a
system, proposed in 1879 to recognize it as such, and named it
Ordovician, restricting Silurian to Murchison’s Upper Silurian. This
term has not been widely used either in Great Britain or on the
Continent, but in the last twenty years has been accepted more and
more widely in America. Even here, however, it is in direct conflict
with the term Champlain, proposed by the New York State Geologist
in 1842.
In 1897 the International Geological Congress published E.
Renevier’s Chronographie Géologique, wherein we find the
following:
Silurian
Period.
Upper or Silurian (Murchison,
restricted, 1835).
Ludlowian (Murchison
1839).
Wenlockian (Murchison
1839).
Landoverian (Murchison).
Middle or Ordovician (Lapworth
1879).
Caradocian (Murchison
1839).
Landeilian (Murchison
1839).
Arenigian (Sedgwick
1847).
Lower or Cambrian (Sedgwick,
restricted, 1835).
Potsdamian (Emmons
1838).
Menevian (Salter and
Hicks 1865).
Georgian (Hitchcock
1861).
Regarding this period, which, by the way, is not very unlike that of
Barrande, Renevier remarks that it is “as important as the
Cretaceous or the Jurassic. Lapworth even gives it a value of the first
order equal to the Protozoic era.”
In the above there is an obvious objection in the double usage of
the term Silurian, and this difficulty was met later on in Lapparent’s
Traité by the proposal to substitute Gothlandian for Silurian. Of this
change Geikie remarks: “Such an arrangement ... might be adopted if
it did not involve so serious an alteration of the nomenclature in
general use.” On the other hand, if diastrophism and breaks in the
stratigraphic and faunal sequence are to be the basis for geologic
time divisions, we cannot accept the above scheme, for it recognizes
but one period where there are at least four in nature.
Conclusions.—We have arrived at a time when our knowledge of
the stratigraphic and faunal sequence, plus the orogenic record as
recognized in the principle of diastrophism, should be reflected in
the terminology of the geologic time-table. It would be easy to offer a
satisfactory nomenclature if we were not bound by the law of priority
in publication, and if no one had the geologic chronology of his own
time ingrained in his memory. In addition, the endless literature,
with its accepted nomenclature, bars our way. Therefore with a view
of creating the least change in geologic nomenclature, and of doing
the greatest justice to our predecessors that the present conditions of
our knowledge will allow, the following scheme is offered:
Silurian period. Llandovery to top of Ludlow in Europe. Alexandrian-Cataract-
Medina to top of Manlius in America.
Champlain (1842) or Ordovician (1879) period. Arenig to top of Caradoc in
Europe. Beekmantown to top of Richmondian in America.
Cambrian period. In the Atlantic realm, begins with the Paradoxides, and in the
Pacific, with the Bathyuriscus and Ogygopsis faunas. The close is involved in
Ulrich’s provisionally defined Ozarkian system. When the latter is established, the
Ozarkian period will hold the time between the Ordovician and the Cambrian.
Taconic period. For the world-wide Olenellus or Mesonacidæ faunas.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
Let us accompany you on the journey of exploring knowledge and
personal growth!
ebookfinal.com

More Related Content

PDF
Engineering a Compiler 2nd Edition Keith Cooper
PDF
(Ebook) Engineering a Compiler by Keith Cooper, Linda Torczon ISBN 155860698X
PDF
Understanding And Writing Compilers A Doityourself Guide Richard Bornat
PDF
The compiler design handbook optimizations and machine code generation 1st Ed...
PDF
The compiler design handbook optimizations and machine code generation 1st Ed...
PDF
Modern Compiler Design 2e.pdf
PDF
IRJET- Online Programming Environment
PDF
Software Engineering Update 8th Edition Ian Sommerville
Engineering a Compiler 2nd Edition Keith Cooper
(Ebook) Engineering a Compiler by Keith Cooper, Linda Torczon ISBN 155860698X
Understanding And Writing Compilers A Doityourself Guide Richard Bornat
The compiler design handbook optimizations and machine code generation 1st Ed...
The compiler design handbook optimizations and machine code generation 1st Ed...
Modern Compiler Design 2e.pdf
IRJET- Online Programming Environment
Software Engineering Update 8th Edition Ian Sommerville

Similar to Engineering a Compiler 2nd Edition Keith Cooper (20)

PDF
Software Engineering Update 8th Edition Ian Sommerville
PDF
Engineering Problem Solving with C Delores M. Etter
PDF
Software Engineering 8ed. Edition Sommerville I.
PDF
Modern Compiler Implementation in Java 2Ed 2nd Edition Andrew W. Appel
PDF
Design and Implementation of the Morehead-azalea Compiler (MAC)
PDF
Software Engineering 8ed. Edition Sommerville I.
PDF
Software Engineering 8ed. Edition Sommerville I.
PDF
Engineering Problem Solving with C Delores M. Etter
PDF
Modular and Didactic Compiler Design with Xml Inter-Phases Communication
PDF
MODULAR AND DIDACTIC COMPILER DESIGN WITH XML INTER-PHASES COMMUNICATION
PDF
MODULAR AND DIDACTIC COMPILER DESIGN WITH XML INTER-PHASES COMMUNICATION
PDF
MODULAR AND DIDACTIC COMPILER DESIGN WITH XML INTER-PHASES COMMUNICATION
DOCX
SOFTWARE ENGINEERINGNinth EditionIan SommervilleAddi.docx
PDF
Brief introduction to system engineering approach
PDF
Modern Compiler Implementation In Java Second Edition 2nd Andrew W Appel
PDF
A Programming Course Including C And Matlab For Mechanical Engineering Students
PDF
Oh the compilers you'll build
PDF
Building Python Programs 1st Edition Stuart Reges Marty Stepp
PDF
Software Engineering 8ed. Edition Sommerville I.
PDF
Creating a compiler for your own language
Software Engineering Update 8th Edition Ian Sommerville
Engineering Problem Solving with C Delores M. Etter
Software Engineering 8ed. Edition Sommerville I.
Modern Compiler Implementation in Java 2Ed 2nd Edition Andrew W. Appel
Design and Implementation of the Morehead-azalea Compiler (MAC)
Software Engineering 8ed. Edition Sommerville I.
Software Engineering 8ed. Edition Sommerville I.
Engineering Problem Solving with C Delores M. Etter
Modular and Didactic Compiler Design with Xml Inter-Phases Communication
MODULAR AND DIDACTIC COMPILER DESIGN WITH XML INTER-PHASES COMMUNICATION
MODULAR AND DIDACTIC COMPILER DESIGN WITH XML INTER-PHASES COMMUNICATION
MODULAR AND DIDACTIC COMPILER DESIGN WITH XML INTER-PHASES COMMUNICATION
SOFTWARE ENGINEERINGNinth EditionIan SommervilleAddi.docx
Brief introduction to system engineering approach
Modern Compiler Implementation In Java Second Edition 2nd Andrew W Appel
A Programming Course Including C And Matlab For Mechanical Engineering Students
Oh the compilers you'll build
Building Python Programs 1st Edition Stuart Reges Marty Stepp
Software Engineering 8ed. Edition Sommerville I.
Creating a compiler for your own language
Ad

Recently uploaded (20)

PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PDF
Insiders guide to clinical Medicine.pdf
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PDF
RMMM.pdf make it easy to upload and study
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PPTX
Institutional Correction lecture only . . .
PPTX
master seminar digital applications in india
PDF
Pre independence Education in Inndia.pdf
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
TR - Agricultural Crops Production NC III.pdf
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
Complications of Minimal Access Surgery at WLH
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
PPH.pptx obstetrics and gynecology in nursing
PPTX
Lesson notes of climatology university.
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
Insiders guide to clinical Medicine.pdf
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
102 student loan defaulters named and shamed – Is someone you know on the list?
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
RMMM.pdf make it easy to upload and study
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Institutional Correction lecture only . . .
master seminar digital applications in india
Pre independence Education in Inndia.pdf
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
TR - Agricultural Crops Production NC III.pdf
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
Complications of Minimal Access Surgery at WLH
Anesthesia in Laparoscopic Surgery in India
Module 4: Burden of Disease Tutorial Slides S2 2025
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
VCE English Exam - Section C Student Revision Booklet
PPH.pptx obstetrics and gynecology in nursing
Lesson notes of climatology university.
Ad

Engineering a Compiler 2nd Edition Keith Cooper

  • 1. Visit ebookfinal.com to download the full version and explore more ebooks or textbooks Engineering a Compiler 2nd Edition Keith Cooper _____ Click the link below to download _____ https://ebookfinal.com/download/engineering-a-compiler-2nd- edition-keith-cooper/ Explore and download more ebooks or textbook at ebookfinal.com
  • 2. Here are some recommended products that we believe you will be interested in. You can click the link to download. Inverse engineering handbook 1st Edition Keith A Woodbury https://ebookfinal.com/download/inverse-engineering-handbook-1st- edition-keith-a-woodbury/ An Introduction to Rehabilitation Engineering 1st Edition Rory A Cooper https://ebookfinal.com/download/an-introduction-to-rehabilitation- engineering-1st-edition-rory-a-cooper/ Advanced ASIC chip synthesis using Synopsys Design Compiler Physical Compiler and PrimeTime 2nd Edition Himanshu Bhatnagar https://ebookfinal.com/download/advanced-asic-chip-synthesis-using- synopsys-design-compiler-physical-compiler-and-primetime-2nd-edition- himanshu-bhatnagar/ Modern Compiler Implementation in Java 2Ed 2nd Edition Andrew W. Appel https://ebookfinal.com/download/modern-compiler-implementation-in- java-2ed-2nd-edition-andrew-w-appel/
  • 3. Biophysical Chemistry RSC 2nd ed Edition Alan Cooper https://ebookfinal.com/download/biophysical-chemistry-rsc-2nd-ed- edition-alan-cooper/ The World since 1945 A Concise History Opus 2nd Edition Keith Robbins https://ebookfinal.com/download/the-world-since-1945-a-concise- history-opus-2nd-edition-keith-robbins/ Integrated Optomechanical Analysis 2nd Edition Keith B. Doyle https://ebookfinal.com/download/integrated-optomechanical- analysis-2nd-edition-keith-b-doyle/ Acoustic and Auditory Phonetics 2nd Edition Keith Johnson https://ebookfinal.com/download/acoustic-and-auditory-phonetics-2nd- edition-keith-johnson/ The Making of Cabaret 2nd Edition Keith Garebian https://ebookfinal.com/download/the-making-of-cabaret-2nd-edition- keith-garebian/
  • 5. Engineering a Compiler 2nd Edition Keith Cooper Digital Instant Download Author(s): Keith Cooper, Linda Torczon ISBN(s): 9780120884780, 012088478X Edition: 2 File Details: PDF, 8.27 MB Year: 2011 Language: english
  • 7. In Praise of Engineering a Compiler Second Edition Compilers are a rich area of study, drawing together the whole world of computer science in one, elegant construction. Cooper and Torczon have succeeded in creating a welcoming guide to these software systems, enhancing this new edition with clear lessons and the details you simply must get right, all the while keeping the big picture firmly in view. Engineering a Compiler is an invaluable companion for anyone new to the subject. Michael D. Smith Dean of the Faculty of Arts and Sciences John H. Finley, Jr. Professor of Engineering and Applied Sciences, Harvard University The Second Edition of Engineering a Compiler is an excellent introduction to the construction of modern optimizing compilers. The authors draw from a wealth of experience in compiler construction in order to help students grasp the big picture while at the same time guiding them through many important but subtle details that must be addressed to construct an effec- tive optimizing compiler. In particular, this book contains the best introduction to Static Single Assignment Form that I’ve seen. Jeffery von Ronne Assistant Professor Department of Computer Science The University of Texas at San Antonio Engineering a Compiler increases its value as a textbook with a more regular and consistent structure, and with a host of instructional aids: review questions, extra examples, sidebars, and marginal notes. It also includes a wealth of technical updates, including more on nontraditional languages, real-world compilers, and nontraditional uses of compiler technology. The optimi- zation material—already a signature strength—has become even more accessible and clear. Michael L. Scott Professor Computer Science Department University of Rochester Author of Programming Language Pragmatics Keith Cooper and Linda Torczon present an effective treatment of the history as well as a practitioner’s perspective of how compilers are developed. Theory as well as practical real world examples of existing compilers (i.e. LISP, FORTRAN, etc.) comprise a multitude of effec- tive discussions and illustrations. Full circle discussion of introductory along with advanced “allocation” and “optimization” concepts encompass an effective “life-cycle” of compiler engineering. This text should be on every bookshelf of computer science students as well as professionals involved with compiler engineering and development. David Orleans Nova Southeastern University
  • 10. About the Authors Keith D. Cooper is the Doerr Professor of Computational Engineering at Rice University. He has worked on a broad collection of problems in optimization of compiled code, including inter- procedural data-flow analysis and its applications, value numbering, algebraic reassociation, register allocation, and instruction scheduling. His recent work has focused on a fundamental reexamination of the structure and behavior of traditional compilers. He has taught a variety of courses at the undergraduate level, from introductory programming through code optimization at the graduate level. He is a Fellow of the ACM. Linda Torczon, Senior Research Scientist, Department of Computer Science at Rice Uni- versity, is a principal investigator on the Platform-Aware Compilation Environment project (PACE), a DARPA-sponsored project that is developing an optimizing compiler environment which automatically adjusts its optimizations and strategies to new platforms. From 1990 to 2000, Dr. Torczon served as executive director of the Center for Research on Parallel Compu- tation (CRPC), a National Science Foundation Science and Technology Center. She also served as the executive director of HiPerSoft, of the Los Alamos Computer Science Institute, and of the Virtual Grid Application Development Software Project (VGrADS).
  • 11. Engineering a Compiler Second Edition Keith D. Cooper Linda Torczon Rice University Houston, Texas AMSTERDAM • BOSTON • HEIDELBERG • LONDON NEW YORK • OXFORD • PARIS • SAN DIEGO SAN FRANCISCO • SINGAPORE • SYDNEY • TOKYO Morgan Kaufmann Publishers is an imprint of Elsevier
  • 12. Acquiring Editor: Todd Green Development Editor: Nate McFadden Project Manager: Andre Cuello Designer: Alisa Andreola Cover Image: “The Landing of the Ark,” a vaulted ceiling-design whose iconography was narrated, designed, and drawn by John Outram of John Outram Associates, Architects and City Planners, London, England. To read more visit www.johnoutram.com/rice.html. Morgan Kaufmann is an imprint of Elsevier. 30 Corporate Drive, Suite 400, Burlington, MA 01803, USA Copyright © 2012 Elsevier, Inc. All rights reserved. No part of this publication may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or any information storage and retrieval system, without permission in writing from the publisher. Details on how to seek permission, further information about the Publisher’s permissions policies and our arrangements with organizations such as the Copyright Clearance Center and the Copyright Licensing Agency, can be found at our website: www.elsevier.com/permissions. This book and the individual contributions contained in it are protected under copyright by the Publisher (other than as may be noted herein). Notices Knowledge and best practice in this field are constantly changing. As new research and experience broaden our understanding, changes in research methods or professional practices may become necessary. Practitioners and researchers must always rely on their own experience and knowledge in evaluating and using any information or methods described herein. In using such information or methods they should be mindful of their own safety and the safety of others, including parties for whom they have a professional responsibility. To the fullest extent of the law, neither the Publisher nor the authors, contributors, or editors, assume any liability for any injury and/or damage to persons or property as a matter of products liability, negligence or otherwise, or from any use or operation of any methods, products, instructions, or ideas contained in the material herein. Library of Congress Cataloging-in-Publication Data Application submitted British Library Cataloguing-in-Publication Data A catalogue record for this book is available from the British Library. ISBN: 978-0-12-088478-0 For information on all Morgan Kaufmann publications visit our website at www.mkp.com Printed in the United States of America 11 12 13 14 10 9 8 7 6 5 4 3 2 1
  • 13. We dedicate this volume to n our parents, who instilled in us the thirst for knowledge and supported us as we developed the skills to follow our quest for knowledge; n our children, who have shown us again how wonderful the process of learning and growing can be; and n our spouses, without whom this book would never have been written.
  • 14. About the Cover The cover of this book features a portion of the drawing, “The Landing of the Ark,” which decorates the ceiling of Duncan Hall at Rice University. Both Duncan Hall and its ceiling were designed by British architect John Outram. Duncan Hall is an outward expression of architec- tural, decorative, and philosophical themes developed over Outram’s career as an architect. The decorated ceiling of the ceremonial hall plays a central role in the building’s decorative scheme. Outram inscribed the ceiling with a set of significant ideas—a creation myth. By expressing those ideas in an allegorical drawing of vast size and intense color, Outram created a signpost that tells visitors who wander into the hall that, indeed, this building is not like other buildings. By using the same signpost on the cover of Engineering a Compiler, the authors intend to signal that this work contains significant ideas that are at the core of their discipline. Like Outram’s building, this volume is the culmination of intellectual themes developed over the authors’ professional careers. Like Outram’s decorative scheme, this book is a device for communicating ideas. Like Outram’s ceiling, it presents significant ideas in new ways. By connecting the design and construction of compilers with the design and construction of buildings, we intend to convey the many similarities in these two distinct activities. Our many long discussions with Outram introduced us to the Vitruvian ideals for architecture: commodity, firmness, and delight. These ideals apply to many kinds of construction. Their analogs for com- piler construction are consistent themes of this text: function, structure, and elegance. Function matters; a compiler that generates incorrect code is useless. Structure matters; engineering detail determines a compiler’s efficiency and robustness. Elegance matters; a well-designed compiler, in which the algorithms and data structures flow smoothly from one pass to another, can be a thing of beauty. We are delighted to have John Outram’s work grace the cover of this book. Duncan Hall’s ceiling is an interesting technological artifact. Outram drew the original design on one sheet of paper. It was photographed and scanned at 1200 dpi yielding roughly 750 mb of data. The image was enlarged to form 234 distinct 2 × 8 foot panels, creating a 52 × 72 foot image. The panels were printed onto oversize sheets of perforated vinyl using a 12 dpi acrylic- ink printer. These sheets were precision mounted onto 2 × 8 foot acoustic tiles and hung on the vault’s aluminum frame. viii
  • 15. Contents About the Authors ........................................................................ iv About the Cover .......................................................................... viii Preface ..................................................................................... xix CHAPTER 1 Overview of Compilation ................................................... 1 1.1 Introduction .......................................................... 1 1.2 Compiler Structure ................................................... 6 1.3 Overview of Translation ............................................. 9 1.3.1 The Front End ................................................. 10 1.3.2 The Optimizer ................................................. 14 1.3.3 The Back End ................................................. 15 1.4 Summary and Perspective ........................................... 21 Chapter Notes ........................................................ 22 Exercises ............................................................. 23 CHAPTER 2 Scanners...................................................................... 25 2.1 Introduction .......................................................... 25 2.2 Recognizing Words .................................................. 27 2.2.1 A Formalism for Recognizers ................................ 29 2.2.2 Recognizing More Complex Words .......................... 31 2.3 Regular Expressions ................................................. 34 2.3.1 Formalizing the Notation ..................................... 35 2.3.2 Examples ...................................................... 36 2.3.3 Closure Properties of REs .................................... 39 2.4 From Regular Expression to Scanner ............................... 42 2.4.1 Nondeterministic Finite Automata ........................... 43 2.4.2 Regular Expression to NFA: Thompson’s Construction ................................................... 45 2.4.3 NFA to DFA: The Subset Construction ...................... 47 2.4.4 DFA to Minimal DFA: Hopcroft’s Algorithm ............... 53 2.4.5 Using a DFA as a Recognizer ............................... 57 2.5 Implementing Scanners .............................................. 59 2.5.1 Table-Driven Scanners ........................................ 60 2.5.2 Direct-Coded Scanners ....................................... 65 2.5.3 Hand-Coded Scanners ........................................ 69 2.5.4 Handling Keywords ........................................... 72 ix
  • 16. x Contents 2.6 Advanced Topics ..................................................... 74 2.6.1 DFA to Regular Expression .................................. 74 2.6.2 Another Approach to DFA Minimization: Brzozowski’s Algorithm ...................................... 75 2.6.3 Closure-Free Regular Expressions ........................... 77 2.7 Chapter Summary and Perspective .................................. 78 Chapter Notes ........................................................ 78 Exercises ............................................................. 80 CHAPTER 3 Parsers........................................................................ 83 3.1 Introduction .......................................................... 83 3.2 Expressing Syntax ................................................... 85 3.2.1 Why Not Regular Expressions? .............................. 85 3.2.2 Context-Free Grammars ...................................... 86 3.2.3 More Complex Examples ..................................... 89 3.2.4 Encoding Meaning into Structure ............................ 92 3.2.5 Discovering a Derivation for an Input String ................ 95 3.3 Top-Down Parsing ................................................... 96 3.3.1 Transforming a Grammar for Top-Down Parsing ........... 98 3.3.2 Top-Down Recursive-Descent Parsers ....................... 108 3.3.3 Table-Driven LL(1) Parsers .................................. 110 3.4 Bottom-Up Parsing .................................................. 116 3.4.1 The LR(1) Parsing Algorithm ................................ 118 3.4.2 Building LR(1) Tables ........................................ 124 3.4.3 Errors in the Table Construction ............................. 136 3.5 Practical Issues ....................................................... 141 3.5.1 Error Recovery ................................................ 141 3.5.2 Unary Operators .............................................. 142 3.5.3 Handling Context-Sensitive Ambiguity ..................... 143 3.5.4 Left versus Right Recursion .................................. 144 3.6 Advanced Topics ..................................................... 147 3.6.1 Optimizing a Grammar ....................................... 148 3.6.2 Reducing the Size of LR(1) Tables .......................... 150 3.7 Summary and Perspective ........................................... 155 Chapter Notes ........................................................ 156 Exercises ............................................................. 157
  • 17. Contents xi CHAPTER 4 Context-Sensitive Analysis.................................................. 161 4.1 Introduction .......................................................... 161 4.2 An Introduction to Type Systems ................................... 164 4.2.1 The Purpose of Type Systems ................................ 165 4.2.2 Components of a Type System ............................... 170 4.3 The Attribute-Grammar Framework ................................ 182 4.3.1 Evaluation Methods ........................................... 186 4.3.2 Circularity ..................................................... 187 4.3.3 Extended Examples ........................................... 187 4.3.4 Problems with the Attribute-Grammar Approach ........... 194 4.4 Ad Hoc Syntax-Directed Translation ............................... 198 4.4.1 Implementing Ad Hoc Syntax-Directed Translation ........ 199 4.4.2 Examples ...................................................... 202 4.5 Advanced Topics ..................................................... 211 4.5.1 Harder Problems in Type Inference .......................... 211 4.5.2 Changing Associativity ....................................... 213 4.6 Summary and Perspective ........................................... 215 Chapter Notes ........................................................ 216 Exercises ............................................................. 217 CHAPTER 5 Intermediate Representations ............................................. 221 5.1 Introduction .......................................................... 221 5.1.1 A Taxonomy of Intermediate Representations .............. 223 5.2 Graphical IRs ......................................................... 226 5.2.1 Syntax-Related Trees ......................................... 226 5.2.2 Graphs ......................................................... 230 5.3 Linear IRs ............................................................ 235 5.3.1 Stack-Machine Code .......................................... 237 5.3.2 Three-Address Code .......................................... 237 5.3.3 Representing Linear Codes ................................... 238 5.3.4 Building a Control-Flow Graph from a Linear Code ........ 241 5.4 Mapping Values to Names ........................................... 243 5.4.1 Naming Temporary Values ................................... 244 5.4.2 Static Single-Assignment Form .............................. 246 5.4.3 Memory Models .............................................. 250
  • 18. xii Contents 5.5 Symbol Tables ........................................................ 253 5.5.1 Hash Tables ................................................... 254 5.5.2 Building a Symbol Table ..................................... 255 5.5.3 Handling Nested Scopes ...................................... 256 5.5.4 The Many Uses for Symbol Tables .......................... 261 5.5.5 Other Uses for Symbol Table Technology ................... 263 5.6 Summary and Perspective ........................................... 264 Chapter Notes ........................................................ 264 Exercises ............................................................. 265 CHAPTER 6 The Procedure Abstraction ................................................. 269 6.1 Introduction .......................................................... 269 6.2 Procedure Calls ...................................................... 272 6.3 Name Spaces ......................................................... 276 6.3.1 Name Spaces of Algol-like Languages ...................... 276 6.3.2 Runtime Structures to Support Algol-like Languages ..................................................... 280 6.3.3 Name Spaces of Object-Oriented Languages ................ 285 6.3.4 Runtime Structures to Support Object-Oriented Languages ..................................................... 290 6.4 Communicating Values Between Procedures ....................... 297 6.4.1 Passing Parameters ............................................ 297 6.4.2 Returning Values .............................................. 301 6.4.3 Establishing Addressability .................................. 301 6.5 Standardized Linkages ............................................... 308 6.6 Advanced Topics ..................................................... 312 6.6.1 Explicit Heap Management ................................... 313 6.6.2 Implicit Deallocation ......................................... 317 6.7 Summary and Perspective ........................................... 322 Chapter Notes ........................................................ 323 Exercises ............................................................. 324 CHAPTER 7 Code Shape................................................................... 331 7.1 Introduction .......................................................... 331 7.2 Assigning Storage Locations ........................................ 334 7.2.1 Placing Runtime Data Structures ............................. 335 7.2.2 Layout for Data Areas ........................................ 336 7.2.3 Keeping Values in Registers .................................. 340 7.3 Arithmetic Operators ................................................ 342 7.3.1 Reducing Demand for Registers ............................. 344
  • 19. Contents xiii 7.3.2 Accessing Parameter Values .................................. 345 7.3.3 Function Calls in an Expression .............................. 347 7.3.4 Other Arithmetic Operators .................................. 348 7.3.5 Mixed-Type Expressions ..................................... 348 7.3.6 Assignment as an Operator ................................... 349 7.4 Boolean and Relational Operators .................................. 350 7.4.1 Representations ............................................... 351 7.4.2 Hardware Support for Relational Operations ................ 353 7.5 Storing and Accessing Arrays ....................................... 359 7.5.1 Referencing a Vector Element ................................ 359 7.5.2 Array Storage Layout ......................................... 361 7.5.3 Referencing an Array Element ............................... 362 7.5.4 Range Checking ............................................... 367 7.6 Character Strings ..................................................... 369 7.6.1 String Representations ........................................ 370 7.6.2 String Assignment ............................................ 370 7.6.3 String Concatenation .......................................... 372 7.6.4 String Length .................................................. 373 7.7 Structure References ................................................. 374 7.7.1 Understanding Structure Layouts ............................ 375 7.7.2 Arrays of Structures ........................................... 376 7.7.3 Unions and Runtime Tags .................................... 377 7.7.4 Pointers and Anonymous Values ............................. 378 7.8 Control-Flow Constructs ............................................ 380 7.8.1 Conditional Execution ........................................ 381 7.8.2 Loops and Iteration ........................................... 384 7.8.3 Case Statements ............................................... 388 7.9 Procedure Calls ...................................................... 392 7.9.1 Evaluating Actual Parameters ................................ 393 7.9.2 Saving and Restoring Registers .............................. 394 7.10 Summary and Perspective ........................................... 396 Chapter Notes ........................................................ 397 Exercises ............................................................. 398 CHAPTER 8 Introduction to Optimization .............................................. 405 8.1 Introduction .......................................................... 405 8.2 Background ........................................................... 407 8.2.1 Examples ...................................................... 408 8.2.2 Considerations for Optimization ............................. 412 8.2.3 Opportunities for Optimization ............................... 415
  • 20. xiv Contents 8.3 Scope of Optimization ............................................... 417 8.4 Local Optimization .................................................. 420 8.4.1 Local Value Numbering ...................................... 420 8.4.2 Tree-Height Balancing ........................................ 428 8.5 Regional Optimization ............................................... 437 8.5.1 Superlocal Value Numbering ................................. 437 8.5.2 Loop Unrolling ................................................ 441 8.6 Global Optimization ................................................. 445 8.6.1 Finding Uninitialized Variables with Live Information .................................................... 445 8.6.2 Global Code Placement ....................................... 451 8.7 Interprocedural Optimization ........................................ 457 8.7.1 Inline Substitution ............................................ 458 8.7.2 Procedure Placement .......................................... 462 8.7.3 Compiler Organization for Interprocedural Optimization .................................................. 467 8.8 Summary and Perspective ........................................... 469 Chapter Notes ........................................................ 470 Exercises ............................................................. 471 CHAPTER 9 Data-Flow Analysis .......................................................... 475 9.1 Introduction .......................................................... 475 9.2 Iterative Data-Flow Analysis ........................................ 477 9.2.1 Dominance .................................................... 478 9.2.2 Live-Variable Analysis ....................................... 482 9.2.3 Limitations on Data-Flow Analysis .......................... 487 9.2.4 Other Data-Flow Problems ................................... 490 9.3 Static Single-Assignment Form ..................................... 495 9.3.1 A Simple Method for Building SSA Form .................. 496 9.3.2 Dominance Frontiers .......................................... 497 9.3.3 Placing φ-Functions .......................................... 500 9.3.4 Renaming ...................................................... 505 9.3.5 Translation Out of SSA Form ................................ 510 9.3.6 Using SSA Form .............................................. 515 9.4 Interprocedural Analysis ............................................. 519 9.4.1 Call-Graph Construction ...................................... 520 9.4.2 Interprocedural Constant Propagation ....................... 522 9.5 Advanced Topics ..................................................... 526 9.5.1 Structural Data-Flow Algorithms and Reducibility ......... 527 9.5.2 Speeding up the Iterative Dominance Framework .......... 530
  • 21. Contents xv 9.6 Summary and Perspective ........................................... 533 Chapter Notes ........................................................ 534 Exercises ............................................................. 535 CHAPTER 10 Scalar Optimizations.......................................................... 539 10.1 Introduction ............................................................. 539 10.2 Eliminating Useless and Unreachable Code ........................ 544 10.2.1 Eliminating Useless Code .................................... 544 10.2.2 Eliminating Useless Control Flow .......................... 547 10.2.3 Eliminating Unreachable Code .............................. 550 10.3 Code Motion ........................................................... 551 10.3.1 Lazy Code Motion ............................................ 551 10.3.2 Code Hoisting ................................................. 559 10.4 Specialization .......................................................... 560 10.4.1 Tail-Call Optimization ........................................ 561 10.4.2 Leaf-Call Optimization ....................................... 562 10.4.3 Parameter Promotion ......................................... 563 10.5 Redundancy Elimination .............................................. 565 10.5.1 Value Identity versus Name Identity ........................ 565 10.5.2 Dominator-based Value Numbering ......................... 566 10.6 Enabling Other Transformations ..................................... 569 10.6.1 Superblock Cloning ........................................... 570 10.6.2 Procedure Cloning ............................................ 571 10.6.3 Loop Unswitching ............................................ 572 10.6.4 Renaming ...................................................... 573 10.7 Advanced Topics ....................................................... 575 10.7.1 Combining Optimizations .................................... 575 10.7.2 Strength Reduction ............................................ 580 10.7.3 Choosing an Optimization Sequence ........................ 591 10.8 Summary and Perspective ............................................ 592 Chapter Notes .......................................................... 593 Exercises ................................................................ 594 CHAPTER 11 Instruction Selection ......................................................... 597 11.1 Introduction ............................................................. 597 11.2 Code Generation ....................................................... 600 11.3 Extending the Simple Treewalk Scheme ............................ 603 11.4 Instruction Selection via Tree-Pattern Matching ................... 610 11.4.1 Rewrite Rules .................................................. 611 11.4.2 Finding a Tiling ............................................... 616 11.4.3 Tools ............................................................ 620
  • 22. xvi Contents 11.5 Instruction Selection via Peephole Optimization ................... 621 11.5.1 Peephole Optimization ....................................... 622 11.5.2 Peephole Transformers ....................................... 629 11.6 Advanced Topics ....................................................... 632 11.6.1 Learning Peephole Patterns .................................. 632 11.6.2 Generating Instruction Sequences ........................... 633 11.7 Summary and Perspective ............................................ 634 Chapter Notes .......................................................... 635 Exercises ................................................................ 637 CHAPTER 12 Instruction Scheduling ....................................................... 639 12.1 Introduction ............................................................. 639 12.2 The Instruction-Scheduling Problem ................................ 643 12.2.1 Other Measures of Schedule Quality ........................ 648 12.2.2 What Makes Scheduling Hard? .............................. 649 12.3 Local List Scheduling ................................................. 651 12.3.1 The Algorithm ................................................. 651 12.3.2 Scheduling Operations with Variable Delays .............. 654 12.3.3 Extending the Algorithm ..................................... 655 12.3.4 Tie Breaking in the List-Scheduling Algorithm ...................................................... 655 12.3.5 Forward versus Backward List Scheduling ................ 656 12.3.6 Improving the Efficiency of List Scheduling .............. 660 12.4 Regional Scheduling ................................................... 661 12.4.1 Scheduling Extended Basic Blocks ......................... 661 12.4.2 Trace Scheduling .............................................. 663 12.4.3 Cloning for Context ........................................... 664 12.5 Advanced Topics ....................................................... 666 12.5.1 The Strategy of Software Pipelining ........................ 666 12.5.2 An Algorithm for Software Pipelining ...................... 670 12.6 Summary and Perspective ............................................ 673 Chapter Notes .......................................................... 673 Exercises ................................................................ 675 CHAPTER 13 Register Allocation............................................................ 679 13.1 Introduction ............................................................. 679 13.2 Background Issues ..................................................... 681 13.2.1 Memory versus Registers .................................... 681 13.2.2 Allocation versus Assignment ............................... 682 13.2.3 Register Classes ............................................... 683 13.3 Local Register Allocation and Assignment ......................... 684 13.3.1 Top-Down Local Register Allocation ....................... 685
  • 23. Contents xvii 13.3.2 Bottom-Up Local Register Allocation ...................... 686 13.3.3 Moving Beyond Single Blocks .............................. 689 13.4 Global Register Allocation and Assignment ........................ 693 13.4.1 Discovering Global Live Ranges ............................ 696 13.4.2 Estimating Global Spill Costs ............................... 697 13.4.3 Interferences and the Interference Graph ................... 699 13.4.4 Top-Down Coloring .......................................... 702 13.4.5 Bottom-Up Coloring .......................................... 704 13.4.6 Coalescing Copies to Reduce Degree ....................... 706 13.4.7 Comparing Top-Down and Bottom-Up Global Allocators ............................................. 708 13.4.8 Encoding Machine Constraints in the Interference Graph ............................................ 711 13.5 Advanced Topics ....................................................... 713 13.5.1 Variations on Graph-Coloring Allocation .................. 713 13.5.2 Global Register Allocation over SSA Form ................ 717 13.6 Summary and Perspective ............................................ 718 Chapter Notes .......................................................... 719 Exercises ................................................................ 720 APPENDIX A ILOC.............................................................................. 725 A.1 Introduction ............................................................. 725 A.2 Naming Conventions ................................................... 727 A.3 Individual Operations .................................................. 728 A.3.1 Arithmetic ....................................................... 728 A.3.2 Shifts ............................................................. 729 A.3.3 Memory Operations ............................................. 729 A.3.4 Register-to-Register Copy Operations ........................ 730 A.4 Control-Flow Operations .............................................. 731 A.4.1 Alternate Comparison and Branch Syntax ................... 732 A.4.2 Jumps ............................................................. 732 A.5 Representing SSA Form ............................................... 733 APPENDIX B Data Structures................................................................ 737 B.1 Introduction ............................................................. 737 B.2 Representing Sets ....................................................... 738 B.2.1 Representing Sets as Ordered Lists ........................... 739 B.2.2 Representing Sets as Bit Vectors .............................. 741 B.2.3 Representing Sparse Sets ....................................... 741 B.3 Implementing Intermediate Representations ......................... 743 B.3.1 Graphical Intermediate Representations ...................... 743 B.3.2 Linear Intermediate Forms ..................................... 748
  • 24. xviii Contents B.4 Implementing Hash Tables ............................................ 750 B.4.1 Choosing a Hash Function ..................................... 750 B.4.2 Open Hashing ................................................... 752 B.4.3 Open Addressing ................................................ 754 B.4.4 Storing Symbol Records ....................................... 756 B.4.5 Adding Nested Lexical Scopes ................................ 757 B.5 A Flexible Symbol-Table Design ..................................... 760 BIBLIOGRAPHY ................................................................................ 765 INDEX ........................................................................................... 787
  • 25. Preface to the Second Edition The practice of compiler construction changes continually, in part because the designs of processors and systems change. For example, when we began to write Engineering a Com- piler (eac) in 1998, some of our colleagues questioned the wisdom of including a chapter on instruction scheduling because out-of-order execution threatened to make scheduling largely irrelevant. Today, as the second edition goes to press, the rise of multicore processors and the push for more cores has made in-order execution pipelines attractive again because their smaller footprints allow the designer to place more cores on a chip. Instruction scheduling will remain important for the near-term future. At the same time, the compiler construction community continues to develop new insights and algorithms, and to rediscover older techniques that were effective but largely forgotten. Recent research has created excitement surrounding the use of chordal graphs in register allocation (see Section 13.5.2). That work promises to simplify some aspects of graph-coloring allocators. Brzozowski’s algorithm is a dfa minimization technique that dates to the early 1960s but has not been taught in compiler courses for decades (see Section 2.6.2). It provides an easy path from an implementation of the subset construction to one that minimizes dfas. A modern course in compiler construction might include both of these ideas. How, then, are we to structure a curriculum in compiler construction so that it prepares students to enter this ever changing field? We believe that the course should provide each student with the set of base skills that they will need to build new compiler components and to modify existing ones. Students need to understand both sweeping concepts, such as the collaboration between the compiler, linker, loader, and operating system embodied in a linkage convention, and minute detail, such as how the compiler writer might reduce the aggregate code space used by the register-save code at each procedure call. n CHANGES IN THE SECOND EDITION The second edition of Engineering a Compiler (eac2e) presents both perspectives: big-picture views of the problems in compiler construction and detailed discussions of algorithmic alterna- tives. In preparing eac2e, we focused on the usability of the book, both as a textbook and as a reference for professionals. Specifically, we n Improved the flow of ideas to help the student who reads the book sequentially. Chapter introductions explain the purpose of the chapter, lay out the major concepts, and provide a high-level overview of the chapter’s subject matter. Examples have been reworked to provide continuity across chapters. In addition, each chapter begins with a summary and a set of keywords to aid the user who treats eac2e as a reference book. n Added section reviews and review questions at the end of each major section. The review questions provide a quick check as to whether or not the reader has understood the major points of the section. xix
  • 26. Discovering Diverse Content Through Random Scribd Documents
  • 27. Wernerian Geology in North America. The Father of American Geology.—Historical Geology begins in America with William Maclure’s Observations on the Geology of the United States, issued in 1809. This was the first important original work on North American geology, and its colored geological map was the first one of the area east of the Mississippi River. The classification was essentially the Wernerian system. All of the strata of the Coastal Plain, now known to range from the Lower Cretaceous to Recent, were referred to the Alluvial. To the west, over the area of the Piedmont, were his Primitive rocks, while the older Paleozoic formations of the Appalachian ranges were referred to the Transition. West of the folded area, all was Floetz or Secondary, or what we now know as Paleozoic sedimentaries. The Triassic of the Piedmont area and that of Connecticut he called the Old Red Sandstone, and the coal formations of the interior region he said rested upon the Secondary. The second edition of the work in 1817 was much improved, along with the map, which was also printed on a more correct geographic base. (For greater detail, see Merrill, Contributions to the History of American Geology, 1906.) Even though Maclure’s geologic maps are much generalized, and the scheme of classification adopted a very broad one, they are in the main correct, even if they do emphasize unduly the rather simple geologic structure of North America. This fact is patent all through Maclure’s description. Cleaveland also refers to it in his treatise of 1816, and Silliman in the opening volume of the Journal (1, 7, 1818) says: “The outlines of American geology appear to be particularly grand, simple, and instructive.” Then, all the kinds of rocks were comprehended under four classes, Primitive, Transition, Alluvial, and Volcanic. It is also interesting to note here that in 1822 Maclure had lost faith in the aqueous origin of the igneous rocks and writes of the Wernerian system as “fast going out of fashion” (5, 197, 1822), while Hitchcock said about the same thing in 1825 (9, 146). The Work of Eaton.—Amos Eaton, after traveling 10,000 miles and completing his Erie Canal Report in 1824, “reviewed the whole line several times,” and published in 1828 in the Journal (14, 145) a
  • 28. paper on Geological Nomenclature, Classes of Rocks, etc. The broader classification is the Wernerian one of Primitive, Transition, and Secondary classes. Under the first two he has fossiliferous early Paleozoic formations, but does not know it, because he pays no attention anywhere to the detail of the entombed fossils, and all of his Secondary is what we now call Paleozoic. The correlations of the latter are faulty throughout. Then came his paper of 1830, Geological Prodromus (17, 63), in which he says: “I intend to demonstrate ... that all geological strata are arranged in five analogous series; and that each series consists of three formations; viz., the Carboniferous [meaning mud-stones], Quartzose, and Calcareous.” We seem to see here expressed for the first time the idea of “cycles of sedimentation,” but Eaton does not emphasize this idea, and the localities given for each “formation” of “analogous series” demonstrate beyond a doubt that he did not have a sedimentary sequence. The whole is simply a jumble of unrelated formations that happen to agree more or less in their physical characters. “I intend to demonstrate,” he says further, “that the detritus of New Jersey, embracing the marle, which contains those remarkable fossil relics, is antediluvial, or the genuine Tertiary formation.” This correlation had been clearly shown by Finch in 1824 (7, 31) and yet both are in error in that they do not distinguish the included Cretaceous marls and greensands as something apart from the Tertiary. One gets impatient with the later writings of Eaton, because he does not become liberalized with the progressive ideas in stratigraphic geology developing first in Europe and then in America, especially among the geologists of Philadelphia. Therefore it is not profitable to follow his work further. Early American Text-books of Geology.—The first American text- book of geology bears the date of Boston 1816 and is entitled An Elementary Treatise on Mineralogy and Geology, its author being Parker Cleaveland of Bowdoin College. The second edition appeared in 1822. It also had a geologic map of the United States, practically a copy of Maclure’s. To mineralogy were devoted 585 pages, and to geology 55, of which 37 describe rocks and 5 the geology of the
  • 29. United States. The chronology is Wernerian. Of “geological systems” there are two, “primitive and secondary rocks.” In 1818 appeared Amos Eaton’s Index to the Geology of the Northern States, having 54 pages, and in 1820 came the second edition, “wholly written over anew,” with 286 pages. The theory of the later edition is still that of Werner, with “improvements of Cuvier and Bakewell,” and yet one sees now-a-days but little in it of the far better English text-book. Eaton did very little to advance philosophic geology in America. What is of most value here are his personal observations in regard to the local geology of western Massachusetts, Connecticut, southwestern Vermont, and eastern New York (1, 69, 1819; also Merrill, p. 234). We come now to the most comprehensive and advanced of the early text-books used in America. This is the third English edition of Robert Bakewell’s Introduction to Geology (400 pages, 1829), and the first American edition “with an Appendix Containing an Outline of his Course of Lectures on Geology at Yale College, by Benjamin Silliman” (128 pages). Bakewell’s good book is in keeping with the time, and while not so advanced as Conybeare and Phillips’s Outlines of 1822, yet is far more so than Silliman’s appendix. The latter is general and not specific as to details; it is still decidedly Wernerian, though in a modified form. Silliman says he is “neither Wernerian nor Huttonian,” and yet his summary on pages 120 to 126 shows clearly that he was not only a Wernerian but a pietist as well.
  • 30. Unearthing of the Cenozoic and Mesozoic in North America. The Discerning of the Tertiary.—The New England States, with their essentially igneous and metamorphic formations, could not furnish the proper geologic environment for the development of stratigraphers and paleontologists. So in America we see the rise of such geologists first in Philadelphia, where they had easy access to the horizontal and highly fossiliferous strata of the coastal plain. The first one to attract attention was Thomas Say, after him came John Finch, followed by Lardner Vanuxem, Isaac Lea, Samuel G. Morton, and T. A. Conrad. These men not only worked out the succession of the Cenozoic and the upper part of the Mesozoic, but blazed the way among the Paleozoic strata as well. Thomas Say (1787–1834), in 1819, was the first American to point out the chronogenetic value of fossils in his article, Observations on some Species of Zoophytes, Shells, etc., principally Fossil (1, 381). He correctly states that the progress of geology “must be in part founded on a knowledge of the different genera and species of reliquiæ, which the various accessible strata of the earth present.” Say fully realizes the difficulties in the study of fossils, because of their fragmental character and changed nature, and that their correct interpretation requires a knowledge of similar living organisms. The application of what Say pointed out came first in John Finch’s Geological Essay on the Tertiary Formations in America (7, 31, 1824). Even though the paper is still laboring under the mineral system and does not discern the presence of Cretaceous strata among his Tertiary formations, yet Finch also sees that “fossils constitute the medals of the ancient world, by which to ascertain the various periods.” Finch now objects to the wide misuse in America of the term alluvial and holds that it is applied to what is elsewhere known as Tertiary. He says:
  • 31. “Geology will achieve a triumph in America, when the term alluvial shall be banished from her Geological Essays, or confined to its legitimate domain, and then her tertiary formations will be seen to coincide with those of Europe, and the formations of London, Paris, and the Isle of Wight, will find kindred associations in Virginia, the Carolinas, Georgias, the Floridas, and Louisiana.” The formations as he has them from the bottom upwards are: (1) Ferruginous sand, (2) Plastic clay, (3) Calcaire Silicieuse of the Paris Basin, (4) London Clay, (5) Calcaire Ostrée, (6) Upper marine formation, (7) Diluvial. The grandest of these early stratigraphic papers, however, is that by Lardner Vanuxem (1792–1848), of only three pages, entitled “Remarks on the Characters and Classification of Certain American Rock Formations” (16, 254, 1829). Vanuxem, a cautious man and a profound thinker, had been educated at the Paris School of Mines. James Hall told the writer in a conversation that while the first New York State Survey was in operation, all of its members looked to Vanuxem for advice. In the paper above referred to, Vanuxem points out in a very concise manner that: “The alluvial of Mr. Maclure ... contains not only well characterized alluvion, but products of the tertiary and secondary classes. Littoral shells, similar to those of the English and Paris basins, and pelagic shells, similar to those of the chalk deposition or latest secondary, abound in it. These two kinds of shells are not mixed with each other; they occur in different earthy matter, and, in the southern states particularly, are at different levels. The incoherency or earthiness of the mass, and our former ignorance of the true position of the shells, have been the sources of our erroneous views.” The second error of the older geologists, according to Vanuxem, was the extension of the secondary rocks over “the western country, and the back and upper parts of New York.” They are now called Paleozoic. Some had even tried to show the presence of Jurassic here because of the existence of oölite strata. “It was taken for granted, that all horizontal rocks are secondary, and as the rocks of these parts of the United States are horizontal in their position, so they were supposed to be secondary.” He then shows on the basis of
  • 32. similar Ordovician fossils that the rocks of Trenton Falls, New York, recur at Frankfort in Kentucky, and at Nashville in Tennessee. “It is also certain that an uplifting or downfalling force, or both, have existed, but it is not certain that either or both these forces have acted in a uniform manner.... Innumerable are the facts, which have fallen under my observation, which show the fallacy of adopting inclination for the character of a class,” such as the Transition class of strata. He then goes on to say that in the interior of our country the so-called secondary rocks are horizontal and in the mountains to the east the same strata are highly inclined. “The analogy, or identity of rocks, I determine by their fossils in the first instance, and their position and mineralogical characters in the second or last instance.” It appears that Isaac Lea (1792–1886) in his Contributions to Geology, 1833, was the first to transplant to America Lyell’s terms, Pliocene, Miocene, and Eocene, proposed the previous year. The celebrated Claiborne locality was made known to Lea in 1829, and in the work here cited he describes from it 250 species, of which 200 are new. The horizon is correlated with the London Clay and with the Calcaire Grossier of France, both of Eocene time (25, 413, 1834). Timothy A. Conrad began to write about the American Tertiary in 1830, and his more important publications were issued at Philadelphia. His papers in the Journal begin with 1833 and the last one on the Tertiary is in 1846. The Tertiary faunas and stratigraphy have been modernized by William H. Dall in his monumental work of 1650 pages and 60 plates entitled “Contributions to the Tertiary Fauna of Florida” (1885– 1903). Here more than 3160 forms of the Atlantic and Gulf deposits are described, but in order to understand their relations to the fossil faunas elsewhere and to the living world, the author studied over 10,000 species. Since then, many other workers have interested themselves in the Tertiary problems. Much good work is also being done in the Pacific States where the sequence is being rapidly developed. The Discerning of the Eastern Cretaceous.—The Cretaceous sequence was first determined by that “active and acute geologist,” Samuel G. Morton (1799–1851), but that these rocks might be present along the Atlantic border had been surmised as early as 1824 by Edward Hitchcock (7, 216). Vanuxem, as above pointed out,
  • 33. indicated the presence of the Cretaceous in 1829. In this same year Morton proved its presence before the Philadelphia Academy of Natural Sciences. Between 1830 and 1835 Morton published a series of papers in the Journal under the title “Synopsis of the Organic Remains of the Ferruginous Sand Formation of the United States, with Geological Remarks” (17, 274, et seq.). In these he describes the Cretaceous fossils and demonstrates that the “Diluvial” and Tertiary strata of the Atlantic border also have a long sequence of Cretaceous formations. In the opening paper he writes: “I consider the marl of New Jersey as referable to the great ferruginous sand series, which in Prof. Buckland’s arrangement is designated by the name of green sand.... On the continent this series is called the ancient chalk ... lower chalk,” etc. Again, the marls of New Jersey are “geologically equivalent to those beds which in Europe are interposed between the white chalk and the Oölites.” This correlation is with the European Lower Cretaceous, but we now know the marls to be of Upper Cretaceous age. Although Eaton objected strenuously to Morton’s correlation, we find M. Dufresnoy of France saying, “Your limestone above green sand reminds me very much of the Mæstricht beds,” a correlation which stands to this day (22, 94, 1832). In 1833 Morton announces that the Cretaceous is known all along the Atlantic and Gulf border, and in the Mississippi valley. “The same species of fossils are found throughout,” and none of them are known in the Tertiary. He now arranges the strata of the former “Alluvial” as follows: Modern Alluvial. Diluvial. Tertiary Upper Tertiary (Upper Marine). Middle Tertiary (London Clay). Lower Tertiary (Plastic Clay). Secondary Calcareous Strata Cretaceous group, or Ferruginous Sand series (24, 128). Ferruginous Sand Western Cretaceous.—In 1841 and 1843 J. N. Nicollet announced the discovery of Cretaceous in the Rocky Mountain area. Of 20 species of fossils collected by him, 4 were said to occur on the Atlantic border, and of the 200 forms of the Atlantic slope only 1 was
  • 34. found in Europe. Here we see pointed out a specific dissimilarity between the continents, and a similarity between the American areas of Cretaceous deposits (41, 181; 45, 153). The Cretaceous of the Rocky Mountains was clearly developed by F. V. Hayden in 1855–1888 and by F. B. Meek (1857–1876). Other workers in this field were Charles A. White (1869–1891), and R. P. Whitfield (1877–1889). Since 1891 T. W. Stanton has been actively interpreting its stratigraphy and faunas. Cretaceous and Comanche of Texas.—The broader outlines of the Cretaceous of Texas had been described by Ferdinand Roemer in 1852 in his good work, Kreidebildungen von Texas, but it was not until 1887 that Robert T. Hill showed in the Journal (33, 291) that it included two great series, the Gulf series, or what we now call Upper Cretaceous, and a new one, the Comanche series. This was a very important step in the right direction. Since then the Comanche series has been regarded by some stratigraphers as of period value, while others call it Lower Cretaceous; the rest of the Texas Cretaceous is divided by Hill into Middle and Upper Cretaceous. On the other hand, Lower Cretaceous strata had been proved even earlier in the state of California, for here in 1869 W. M. Gabb (1839–1878) and J. D. Whitney (1819–1896) had defined their Shasta group, which was wholly distinct faunally from the Comanche of Texas and the southern part of the Great Plains country. Jurassic and Triassic of the West.—In 1864, the Geological Survey of California proved the presence of marine Upper Triassic in that State, and since then it has been shown that not only is all of the Triassic present in Idaho (where it has been known since 1877), Oregon, Nevada, and California, but that the Upper Triassic is of very wide distribution throughout western North America. Jurassic strata, on the other hand, were not shown to be present in California until 1885, while in the Rocky Mountain area of the United States there was long known an unresolved series of “Red Beds” situated between the Carboniferous and Cretaceous. This gave rise to the “Red Bed problem,” the history of which is given by C. A. White in the Journal (17, 214, 1879). In 1869, F. V. Hayden announced the discovery of marine Jurassic fossils in this series, and since then they have come to be known as the Sundance fauna, extending from southern Utah and Colorado into Alaska. Above lie the dinosaur-
  • 35. bearing fresh-water deposits, since 1894 known as the Morrison beds. In 1896, O. C. Marsh (1831–1899) announced the presence of Jurassic fresh-water strata along the Atlantic coast (2, 433), but to- day only a small part of them are regarded as of the age of the Morrison, while the far greater part are referred to the Comanche or Lower Cretaceous. The red beds below the Jurassic of the Rocky Mountain area have during the past twenty years been shown to be in part of Upper Triassic age and of fresh-water origin, while the greater lower part is connected with the Carboniferous series and is made up of brackish— and fresh-water deposits of probable Permian time. Triassic of Atlantic States.—The fresh-water Triassic of the Atlantic border states was first mentioned by Maclure (1817), who regarded it as the equivalent of the Old Red Sandstone of Europe. In this he was followed by Hitchcock in 1823 (6, 39), the latter saying that above it lies “the coal formation,” which is true for Europe, but in America the coal strata are older than these red beds, now known to be of Triassic age. The first one to question this correlation was Alexandre Brongniart, who had received from Hitchcock rock specimens and a fossil fish which he erroneously identified with a Permian species, and accordingly referred the strata to the Permian (3, 220, 1821; 6, 76, pl. 9, figs. 1, 2, 1823). The discerning Professor Finch in 1826 remarked that the red beds of Connecticut appear to belong “to the new or variegated sandstone,” because of eight different criteria that he mentions. Of these, but two are of value in correlation, their “geological position” and the presence of bones other than fishes. In the Connecticut area, however, the geological position cannot be determined even to-day, and in Finch’s time the bones of dinosaurs were unknown. Finch then goes on to point out the occurrences of Old Red Sandstone in Pennsylvania, but all of the places he refers to are either younger or older in time. Here we again see the fatality of trying to make positive correlations on the basis of lithology and color (10, 209, 1826). In 1835, however, Hitchcock showed that the bones that had been found in 1820 were those of a saurian, and accordingly referred the strata of the Connecticut valley to the New Red Sandstone, a term that then covered both the Permian and the Triassic. In 1842, W. B. Rogers referred the beds to the Jurassic, on
  • 36. the basis of plants from Virginia. In 1856, W. C. Redfield (1789– 1857), because of the fishes, advocated a Lias, or Jurassic age, and proposed the name Newark group for all the Triassic deposits of the Atlantic border. More recently, on the basis of the plants studied by Newberry, Fontaine, Sturr, and Ward, and the vertebrates described by Marsh and Lull, the age has been definitely fixed as Upper Triassic (see Dana’s Manual of Geology, 740, 1895).
  • 37. Unearthing of the Paleozoic in North America. Permian of the United States.—In Europe, previous to 1841, the formations now classed as Permian were included in the New Red Sandstone, and with the Carboniferous were referred to the Secondary. In that year Murchison proposed the period term Permian. In 1845 came the classic Geology of Russia in Europe and the Ural Mountains, by Murchison, Keyserling, and De Verneuil. In this great work the authors separated out of the New Red the Magnesian Limestone of Great Britain and the Rothliegende marls, Kupferschiefer, and Zechstein of Germany, and with other formations of the Urals in Russia, referred them to the Permian system. This step, one of the most discerning in historical geology, was all the more important because they closed the Paleozoic era with the Permian, beginning the Secondary, or Mesozoic, with the New Red Sandstone or the Triassic period. There is a good review of this work by D. D. Owen (1807–1860) in the Journal for 1847 (3, 153). Owen, though accepting the Permian system, is not satisfied with its reference to the Paleozoic, and he sets the matter forth in the Journal (3, 365, 1847). He doubts “the propriety of a classification which throws the Permian and Carboniferous systems into the Paleozoic period.” This is mainly because there is no “evidence of disturbance or unconformability” between the Permian and Triassic systems. Rather “there is so complete a blending of adjacent strata” that it is only in Russia that the Permian has been distinguished from the Triassic. This view of Owen’s was not only correct for Russia but even more so for the Alps and for India, and it has taken a great deal of work and discussion to fix upon the disconformable contact that distinguishes the Paleozoic from the Mesozoic in these areas. In other words, there was here at this time no mountain making. Then Owen goes on to state that because the Permian of Europe has reptiles, he sees in them decisive Mesozoic evidence. “These are certainly strong arguments in favor of placing, not only the Permian,
  • 38. but also the Carboniferous group in the Mesozoic period, and terminating the Paleozoic division with the commencement of the coal measures.” To this harking backward the geologists of the world have not agreed, but have followed the better views of Murchison and his associates. In 1855 G. G. Shumard discovered, and in 1860 his brother B. F. Shumard (1820–1869) announced, the presence of Permian strata in the Guadalupe Mountains of Texas, and in 1902 George H. Girty (14, 363) confirmed this. Girty regards the faunas as younger than any other late Paleozoic ones of America, and says: “For this reason I propose to give them a regional name, which shall be employed in a force similar to Mississippian and Pennsylvanian.... The term Guadalupian is suggested.” G. C. Swallow (1817–1899) in 1858 was the first to announce the presence of Permian fossils in Kansas, and this led to a controversy between himself and F. B. Meek, both claiming the discovery. It is only in more recent years that it has been generally admitted that there is Permian in that state, in Oklahoma, and in Texas. This admission came the more readily through the discovery of many reptiles in the red beds of Texas, and through the work of C. A. White, published in 1891, The Texan Permian and its Mesozoic Types of Fossils (Bull. U. S. Geological Survey, No. 77).
  • 39. Carboniferous Formations.—The coal formations are noted in a general way throughout the earliest volumes of the Journal. The first accounts of the presence of coal, in Ohio, are by Caleb Atwater (1, 227, 239, 1819), and S. P. Hildreth (13, 38, 40, 1828). The first coal plants to be described and illustrated were also from Ohio, in an article by Ebenezer Granger in 1821 (3, 5–7). The anthracite field was first described in 1822 by Zachariah Cist (4, 1) and then by Benjamin Silliman (10, 331–351, 1826); that of western Pennsylvania was described by William Meade in 1828 (13, 32).
  • 40. The Lower Carboniferous was first recognized by W. W. Mather in 1838 (34, 356). Later, through the work of Alexander Winchell (1824–1891), beginning in 1862 (33, 352) and continuing until 1871, and through the surveys of Iowa (1855–1858), Illinois (essentially the work of A. H. Worthen, 1858–1888), Ohio (1838, Mather, etc.), and Indiana (Owen, etc., 1838), there was eventually worked out the following succession: Permian period. Upper Barren series. Dunkard group. Washington group. Pennsylvanian period. Upper Productive Coal series. Monongahela series. Lower Barren Coal Measures. Conemaugh series. Lower Productive Coal Measures. Allegheny series. Pottsville series. The New York System.—We now come to the epochal survey of the State of New York, one that established the principles of, and put order into, American stratigraphy from the Upper Cambrian to the top of the Devonian. No better area could have been selected for the establishing of this sequence. This survey also developed a stratigraphic nomenclature based on New York localities and rock exposures, and made full use of the entombed fossils in correlation. Incidentally it developed and brought into prominence James Hall, who continued the stratigraphic work so well begun and who also laid the foundation for paleontology in America, becoming its leading invertebrate worker. This work is reviewed at great length in the Journal in the volumes for 1844–1847 by D. D. Owen. Evidently it followed too new a plan to receive fulsome praise from conservative Owen, as it should have. He remarks that the volumes “are not a little prolix, are voluminous and expensive, and do not give as clear and connected a view of the geological features of the state as could be wished.... We are of the opinion that before this work can become generally useful and extensively circulated, it must be condensed and arranged into one compendious volume” (46, 144, 1844). This was never done and yet the work was everywhere accepted at once, and to this end undoubtedly Owen’s detailed review helped much.
  • 41. The Natural History Survey of New York was organized in 1836 and completed in 1843. The state was divided into four districts, and to these were finally assigned the following experienced geologists. The southeastern part was named the First District, with W. W. Mather (1804–1859) as geologist; the northeastern quarter was the Second District, with Ebenezer Emmons (1799–1863) in charge; the central portion was the Third District, under Lardner Vanuxem (1792–1848); while the western part was James Hall’s (1811–1898) Fourth District. Paleontology for a time was in charge of T. A. Conrad (1830–1877); the mineralogical and chemical work was in the hands of Lewis C. Beck; the botanist was John Torrey; and the zoologist James DeKay. The New York State Survey published six annual reports of 1675 pages octavo, and four final geological reports with 2079 pages quarto. Finally in 1846 Emmons added another volume on the soils and rocks of the state, in which he also discussed the Taconic and New York systems; it has 371 pages. With the completion of the first survey, Hall took up his life work under the auspices of the state—his monumental work, Paleontology of New York, in fifteen quarto volumes of 4539 pages and 1081 plates of fossils. In addition to all this, there are his annual and other reports to the Regents of the State, so that it is safe to say that he published not less than 10,000 pages of printed matter on the geology and paleontology of North America. In regard to this great series of works, all that can be presented here is a table of formations as developed by the New York State Survey. Practically all of its results and formation names have come into general use, with the exception of the Taconic system of Emmons and the division terms of the New York system. (See p. 88.) The New York State Survey, begun in 1836, was continued by James Hall from 1843 to 1898. During this time he was also state geologist of Iowa (1855–1858) and Michigan (1862). Since 1898, John M. Clarke has ably continued the Geological Survey of New York, the state which continues to be, in science and more especially in geology and paleontology, the foremost in America. Western Extension of the New York system.—Before Hall finished his final report, we find him in 1841 on “a tour of exploration through the states of Ohio, Indiana, Illinois, a part of Michigan, Kentucky,
  • 42. and Missouri, and the territories of Iowa and Wisconsin.” This tour is described in the Journal (42, 51, 1842) under the caption “Notes upon the Geology of the Western States.” His object was to ascertain how far the New York system as the standard of reference “was applicable in the western extension of the series.” In a general way he was very successful in extending the system to the Mississippi River, and he clearly saw “a great diminution, first of sandy matter, and next of shale, as we go westward, and in the whole, a great increase of calcareous matter in the same direction.” He also clearly noted the warped nature of the strata, the “anticlinal axis,” since known as the Cincinnati and Wabash uplifts and the Ozark dome. Hall, however, fell into a number of flagrant errors because of a too great reliance on lithologic correlation and supposedly similar sequence. For instance, the Coal Measures of Pennsylvania were said to directly overlap the Chemung group of southern New York, and now he finds the same condition in Ohio, Indiana, and Illinois, failing to see that in most places between the top of the New York system and the Coal Measures lay the extensive Mississippian series, one that he generally confounded with the Chemung, or included in the “Carboniferous group.” He states that the Portage of New York is the same as the Waverly of Ohio, and at Louisville the Middle Devonian waterlime is correlated with the similar rock of the New York Silurian. Hall was especially desirous of fixing the horizon of the Middle Ordovician lead-bearing rocks of Illinois, Wisconsin, and Iowa, but unfortunately correlated them with the Niagaran, while the Middle Devonian about Columbus, Ohio, and Louisville, Kentucky, he referred to the same horizon. The Galena-Niagaran error was corrected in 1855, but the Devonian and Mississippian ones remained unadjusted for a long time, and in Iowa until toward the close of the nineteenth century.
  • 43. The Geological Column of the New York Geologists of 1842– 1843, according to W. W. Mather 1842. Quaternary system Alluvial division. Quaternary division. Drift division. Tertiary system These strata are included in the next lower division. Upper Secondary system Long Island division. Equals the Tertiary and Cretaceous marls, sands, and clays of the coastal plain of New Jersey. New Red system of Emmon s and Hall. Trappean division. The Palisades Red Sandstone division. Coal system of Mather, and Carboniferous system of Hall. Old Red system of Catskill Mountains of Emmons; Catskill division of Mather and Hall; and Catskill group of Vanuxem. According to Hall 1843, and essentially Vanuxem 1842. Erie division [Devonian] Chemung, Portage or Nunda (divided into Cashaqua, Gardeau, Portage), Genesee, Tully, Hamilton (divided into Ludlowville; Encrinal, Moscow), and Marcellus. Helderberg series [Devonian-Silurian] Corniferous, Onondaga, Schoharie, Cauda-alli, Oriskany, Upper Pentamerus, Encrinal, Delthyris, Pentamerus, Waterlime, Onondaga salt group. Ontario division [Silurian] Niagara, Clinton, and Medina. Champlain division [Silurian-Ordovician- Upper Cambrian] Oneida or Shawangunk, Grey sandstone, Hudson River group, Utica, Trenton, Black River including Birdseye and Chazy, Calciferous sandrock, and Potsdam.
  • 44. According to Emmons 1842, Mather 1843, Vanuxem 1842, Hall 1843. Taconic System [Ordovician and Lower Cambrian] Granular quartz, Stockbridge limestone, Magnesian slate, and Taconic slate. Primary or Hypogene system Metamorphic and Primary rocks. Correlations with Europe.—The first effort toward correlating the New York system with those of Europe was made by Conrad in his Notes on American Geology in 1839 (35, 243). Here he compares it on faunal grounds with the Silurian system. A more sustained effort was that of Hall in 1843 (45, 157), when he said that the Silurian of Murchison was equal to the New York system and embraced the Cambrian, Silurian, and Devonian, which he considered as forming but one system. Hall in 1844 and Conrad earlier were erroneously regarding the Middle Devonian of New York (Hamilton) as “an equivalent of the Ludlow rocks of Mr. Murchison” (47, 118, 1844). In 1846 E. P. De Verneuil spent the summer in America with a view to correlating the formations of the New York system with those of Europe. At this time he had had a wide field experience in France, Germany, and Russia, was president of the Geological Society of France, and “virtually the representative of European geology” (2, 153, 1846). Hall says, “No other person could have presented so clear and perfect a coup d’oeil.” De Verneuil’s results were translated by Hall and with his own comments were published in the Journal in 1848 and 1849 under the title “On the Parallelism of the Paleozoic Deposits of North America with those of Europe.” De Verneuil was especially struck with the complete development of American Paleozoic deposits and said it was the best anywhere. On the other hand, he did not agree with the detailed arrangement of the formations in the various divisions of the New York system, and Hall admitted altogether too readily that the terms were proposed “as a matter of concession, and it is to be regretted that such an artificial classification was adopted.” De Verneuil’s correlations are as follows: The Lower Silurian system begins with the Potsdam, the analogue of the Obolus sandstone of Russia and Sweden. The Black River and Trenton hold the position of the Orthoceras limestones of Sweden and Russia, while the Utica and Lorraine are represented by the Graptolite beds of the same countries. Both correlations are in partial
  • 45. error. He unites the Chazy, Birdseye, and Black River in one series, and in another the Trenton, Utica, and Lorraine. Of species common to Europe and America he makes out seventeen. In the Upper Silurian system, the Oneida and Shawangunk are taken out of the Champlain division, and, with the Medina, are referred to the Silurian, along with all of the Ontario division plus the Lower Helderberg. The Clinton is regarded as highest Caradoc or as holding a stage between that and the Wenlock. The Niagara group is held to be the exact equivalent of the Wenlock, “while the five inferior groups of the Helderberg division represent the rocks of Ludlow.” We now know that these Helderberg formations are Lower Devonian in age. De Verneuil unites in one series the Waterlime, Pentamerus, Delthyris, Encrinal, and Upper Pentamerus. Of identical species there are forty common to Europe and America. The Devonian system De Verneuil begins, “after much hesitation,” with the Oriskany and certainly with the five upper members of Hall’s Helderberg division, all of the Erie and the Old Red Sandstone. He also adjusts Hall’s error by placing in the Devonian the Upper Cliff limestone of Ohio and Indiana, regarded by the former as Silurian. The Oriskany is correlated with the grauwackes of the Rhine, and the Onondaga or Corniferous with the lower Eifelian. Cauda-galli, Schoharie, and Onondaga are united in one series; Marcellus, Hamilton, Tully, and Genesee in another; and Portage and Chemung in a third. Of species common to Europe and America there are thirty-nine. The Waverly of Ohio and that near Louisville, Kentucky, which Hall had called Chemung, De Verneuil correctly refers to the Carboniferous, but to this Hall does not consent. De Verneuil points out that there are thirty-one species in common between Europe and America. “And as to plants, the immense quantity of terrestrial species identical on the two sides of the Atlantic, proves that the coal was formed in the neighborhood of lands already emerged, and placed in similar physical conditions.” An analysis of the Paleozoic fossils of Europe and America leads De Verneuil to “the conviction that identical species have lived at the same epoch in America and in Europe, that they have had nearly the same duration, and that they succeeded each other in the same order.” This he states is independent of the depth of the seas, and of
  • 46. “the upheavings which have affected the surface of the globe.” The species of a period begin and drop out at different levels, and toward the top of a system the whole takes on the character of the next one. “If it happens that in the two countries a certain number of systems, characterized by the same fossils, are superimposed in the same order, whatever may be, otherwise, their thickness and the number of physical groups of which they are composed, it is philosophical to consider these systems as parallel and synchronous.” Because of the dominance of the sandstones and shales in eastern New York, De Verneuil holds that a land lay to the east. The many fucoids and ripple-marks from the Potsdam to the Portage indicated to him shallow water and nearness to a shore. The Oldest Geologic Eras.—We have seen in previous pages how the Primitive rocks of Arduino and of Werner had been resolved, at least in part, into the systems of the Paleozoic, but there still remained many areas of ancient rocks that could not be adjusted into the accepted scheme. One of the most extensive of these is in Canada, where the really Primitive formations, of granites, gneisses, schists, and even undetermined sediments, abound and are developed on a grander scale than elsewhere, covering more than two million square miles and overlain unconformably by the Paleozoic and later rocks. The first to call attention to them was J. I. Bigsby, a medical staff officer of the British Army, in 1821 (3, 254). It was, however, William E. Logan (1798–1875), the “father of Canadian geology,” who first unravelled their historical sequence. At first he also called them Primary, but after much work he perceived in them parallel structures and metamorphosed sediments, underlain by and associated with pink granites. For the oldest masses, essentially the granites, he proposed the term Laurentian system (1853, 1863) and for the altered and deformed strata, the name Huronian series (1857, 1863). Overlying these unconformably was a third series, the copper-bearing rocks. Since his day a great host of Canadian and American geologists have labored over this, the most intricate of all geology, and now we have the following tentative chronology (Schuchert and Barrell, 38, 1, 1914): Late Proterozoic era. Keweenawan, Animikian and Huronian periods. Early Proterozoic era.
  • 47. Sudburian period or older Huronian. Archeozoic era. Grenville series, etc. Cosmic history.
  • 48. The Taconic System Resurrected. The Taconic system was first announced by Ebenezer Emmons in 1841, and clearly defined in 1842. It started the most bitter and most protracted discussion in the annals of American geology. After Emmons’s subsequent publications had put the Taconic system through three phases, Barrande of Bohemia in 1860–1863 shed a great deal of new and correct light upon it, affirming in a series of letters to Billings that the Taconic fossils are like those of his Primordial system, or what we now call the Middle Cambrian (31, 210, 1861, et seq.). In a series of articles published by S. W. Ford in the Journal between 1871 and 1886, there was developed the further new fact that in Rensselaer and Columbia counties, New York, the so-called Hudson River group abounds in “Primordial” fossils wholly unlike those of the Potsdam, and which Ford later on spoke of as belonging to “Lower Potsdam” time. James D. Dana entered the field of the Taconic area in 1871 and demonstrated that the system also abounds in Ordovician fossiliferous formations. Then came the far-reaching work of Charles D. Walcott, beginning in 1886, which showed that all through eastern New York and into northern Vermont the Hudson River group and the Taconic system abound not only in Ordovician but also in Cambrian fossils. Finally in 1888 Dana presented a Brief History of Taconic Ideas, and laid away the system with these words (36, 27): “It is almost fifty years since the Taconic system made its abrupt entrance into geological science. Notwithstanding some good points, it has been through its greater errors, long a hindrance to progress here and abroad ... But, whether the evil or the good has predominated, we may now hope, while heartily honoring Professor Emmons for his earnest geological labors and his discoveries, that Taconic ideas may be allowed to be and remain part of the past.”
  • 49. As an epitaph Dana placed over the remains of the Taconic system the black-faced numerals 1841–1888. That the remains of the system, however, and the term Taconic are still alive and demanding a rehearing is apparent to all interested stratigraphers. This is not the place to set the matter right, and all that can be done at the present time is to point out what are the things that still keep alive Emmons’s system. In the typical area of the Taconic system, i. e., in Rensselaer County, Emmons in 1844–1846 produced the fossils Atops trilineatus and Elliptocephala asaphoides. S. W. Ford, as stated above, later produced from the same general area many other fossils that he demonstrated to be older than the Potsdam sandstone. To this time he gave the name of Lower Potsdam, thus proving on paleontological grounds that at least some part of the Taconic system is older than the New York system, and therefore older than the Hudson River group of Ordovician age. In 1888 Walcott presented his conclusions in regard to the sequence of the strata in the typical Taconic area and to the north and south of it. He collected Lower Cambrian fossils at more than one hundred localities “within the typical Taconic area,” and said that the thickness of his “terrane No. 5” or “Cambrian (Georgia),” now referable to the Lower Cambrian, is “14,000 feet or more.” He demonstrated that the Lower Cambrian is infolded with the Lower and Middle Ordovician, and confirmed Emmons’s statement that the former rests upon his Primary or Pre-Cambrian masses. Elsewhere, he writes: “To the west of the Taconic range the section passes down through the limestone (3) [of Lower and Middle Ordovician age] to the hydromica schists (2) [whose age may also be of early Ordovician], and thence to the great development of slates and shales with their interbedded sparry limestones, calciferous and arenaceous strata, all of which contain more or less of the Olenellus ... fauna.” He then knew thirty-five species in Washington County, New York (35, 401, 1888). Finally in 1915 Walcott said that in the Cordilleran area of America there was a movement that brought about changes “in the sedimentation and succession of the faunas which serve to draw a boundary line between the Lower and Middle Cambrian series.... The length of this period of interruption must have been considerable ...
  • 50. and when connection with the Pacific was resumed a new fauna that had been developing in the Pacific was then introduced into the Cordilleran sea and constituted the Middle Cambrian fauna. The change in the species from the Lower to the Middle Cambrian fauna is very great.” He then goes on to show that in the Appalachian geosyncline there was another movement that shut out the Middle Cambrian Paradoxides fauna of the Atlantic realm from this trough, and all deposition as well. Conclusions.—Accordingly it appears that everywhere in America the Lower Cambrian formations are separated by a land interval of long duration from those of Middle Cambrian time. These formations therefore unite into a natural system of rocks or a period of time. Between Middle and Upper Cambrian time, however, there appears to be a complete transition in the Cordilleran trough, binding these two series of deposits into one natural or diastrophic system. Hence the writer proposes that the Lower Cambrian of America be known as the Taconic system. The Middle and Upper Cambrian series can be continued for the present under the term Cambrian system, a term, however, that is by no means in good standing for these formations, as will be demonstrated under the discussion of the Silurian controversy.
  • 51. The Silurian Controversy. Just as in America the base of the Paleozoic was involved in a protracted controversy, so in England the Cambrian-Silurian succession was a subject of long debate between Sedgwick and Murchison, and among the succeeding geologists of Europe. The history of the solution is so well and justly stated in the Journal by James D. Dana under the title “Sedgwick and Murchison: Cambrian and Silurian” (39, 167, 1890), and by Sir Archibald Geikie in his Text-book of Geology, 1903, that all that is here required is to briefly restate it and to bring the solution up to date. Adam Sedgwick (1785–1873) and R. I. Murchison (1792–1871) each began to work in the areas of Cambria (Wales) and Siluria (England) in 1831, but the terms Cambrian and Silurian were not published until 1835. Murchison was the first to satisfactorily work out the sequence of the Silurian system because of the simpler structural and more fossiliferous condition of his area. Sedgwick, on the other hand, had his academic duties to perform at Cambridge University, and being an older and more conservative man, delayed publishing his final results, because of the further fact that his area was far more deformed and less fossiliferous. In 1834 they were working in concert in the Silurian area, and Sedgwick said: “I was so struck by the clearness of the natural sections and the perfection of his workmanship that I received, I might say, with implicit faith everything which he then taught me.... The whole ‘Silurian system’ was by its author placed above the great undulating slate-rocks of South Wales.” At that time Murchison told Sedgwick that the Bala group of the latter, now known to be in the middle of the Lower Silurian, could not be brought within the limits of the Silurian system, and added, “I believe it to plunge under the true Llandeilo- flags,” now placed next below the Bala and above the Arenig, which at the present is regarded as at the base of the Ordovician. The Silurian system was defined in print by Murchison in July, 1835, the Upper Silurian embracing the Ludlow and Wenlock, while the Lower Silurian was based on the Caradoc and Llandeilo.
  • 52. Murchison’s monumental work, The Silurian System, of 100 pages and many plates of fossils, appeared in 1838. The Cambrian system was described for the first time by Sedgwick in August, 1835, but the completed work—a classic in geology— Synopsis of the Classification of the British Palæozoic Rocks, along with M’Coy’s Descriptions of British Palæozoic Fossils, did not appear until 1852–1855. Sedgwick’s original Upper Cambrian included the greater part of the chain of the Berwyns, where he said it was connected with the Llandeilo flags of the Silurian. The Middle Cambrian comprised the higher mountains of Cærnarvonshire and Merionethshire, and the Lower Cambrian was said to occupy the southwest coast of Cærnarvonshire, and to consist of chlorite and mica schists, and some serpentine and granular limestone. In 1853 it was seen that the fossiliferous Upper Cambrian included the Arenig, Llandeilo, Bala, Caradoc, Coniston, Hirnant, and Lower Llandovery. On the other hand, it was not until long after Murchison and Sedgwick passed away that the Middle and Lower Cambrian were shown to have fossils, but few of those that characterize what is now called Lower, Middle, and Upper Cambrian time. Not until long after the original announcement of the Cambrian system did Sedgwick become aware “of the unfortunate mischief- involving fact” that the most fossiliferous portion of the Cambrian— the Upper Cambrian—and at that time the only part yielding determinable fossils, when compared with the Lower Silurian was seen to be an equivalent formation but with very different lithologic conditions. He began to see in 1842 that his Cambrian was in conflict with the Silurian system, and four years later there were serious divergencies of views between himself and Murchison. The climax of the controversy was attained in 1852, when Sedgwick was extending his Cambrian system upwards to include the Bala, Llandeilo, and Caradoc, a proceeding not unlike that of Murchison, who earlier had been extending his Silurian downward through all of the fossiliferous Cambrian to the base of the Lingula flags. Dana in his review of the Silurian-Cambrian controversy states: “The claim of a worker to affix a name to a series of rocks first studied and defined by him cannot be disputed.” We have seen that Murchison had priority of publication in his term Silurian over Sedgwick’s Cambrian, but that in a complete presentation, both
  • 53. stratigraphically and faunally, the former had years of prior definition. What has even more weight is that geologists nearly everywhere had accepted Murchison’s Silurian system as founded upon the Lower and Upper Silurian formations. A nomenclature once widely accepted is almost impossible to dislodge. However, in regard to the controversy it should not be forgotten that it was only Murchison’s Lower Silurian that was in conflict with Sedgwick’s Upper Cambrian. As for the rest of the Cambrian, that was not involved in the controversy. Dana goes on to state that science may accept a name, or not, according as it is, or is not, needed. In the progress of geology, he thought that the time had finally been reached when the name Cambrian was a necessity, and he included both Cambrian and Silurian in the geological record. The “Silurian,” however, included the Lower and Upper Silurian—not one system of rocks, but two. It is now twenty-seven years since Dana came to this conclusion, at a time when it was believed that there was more or less continuous deposition not only between the formations of a system but between the systems themselves as well. To-day many geologists hold that in the course of time the oceans pulsate back and forth over the continents, and accordingly that the sequence of marine sedimentation in most places must be much broken, and to-day we know that the breaks or land intervals in the marine record are most marked between the eras, and shorter between all or at least most of the periods. Furthermore, in North America, we have learned that the breaks between the systems are most marked in the interior of the continent and less so on or toward its margins. Hardly any one now questions the fact of a long land interval between the Lower Silurian and Upper Silurian in England, and it is to Sedgwick’s credit that he was the first to point out this fact and also the presence of an unconformity. It therefore follows that we cannot continue to use Silurian system in the sense proposed by Murchison, since it includes two distinct systems or periods. Dana, in the last edition of his Manual of Geology (1895), also recognizes two systems, but curiously he saw nothing incongruous in calling them “Lower Silurian era” and “Upper Silurian era.” It certainly is not conducive to clear thinking, however, to refer to two systems by the one name of Silurian and to speak of them individually as Lower and
  • 54. Upper Silurian, thus giving the impression that the two systems are but parts of one—the Silurian. Each one of the parts has its independent faunal and physical characters. We must digress a little here and note the work of Joachim Barrande (1799–1883) in Bohemia. In 1846 he published a short account of the “Silurian system” of Bohemia, dividing it into étages lettered C to H. Between 1852 and 1883 he issued his “Système Silurien du Centre de la Bohème,” in eighteen quarto volumes with 5568 pages of text and 798 plates of fossils—a monumental work unrivalled in paleontology. In the first volume the geology of Bohemia is set forth, and here we see that étages A and B are Azoic or pre-Cambrian, and C to H make up his Silurian system. Etage C has his “Primordial fauna,” now known to be of Paradoxides or Middle Cambrian time, while D is Lower Silurian, E is Upper Silurian, F is Lower Devonian, and G and H are Middle Devonian. From this it appears that Barrande’s Silurian system is far more extensive than that of Murchison, embracing twice as many periods as that of England and Wales. About 1879 there was in England a nearly general agreement that Cambrian should embrace Barrande’s Primordial or Paradoxides faunas, and in the North Wales area be continued up to the top of the Tremadoc slates. To-day we would include Middle and Upper Cambrian. Lower Cambrian in the sense of containing the Olenellus faunas was then unknown in Great Britain. Lapworth, recognizing the distinctness of the Lower Silurian as a system, proposed in 1879 to recognize it as such, and named it Ordovician, restricting Silurian to Murchison’s Upper Silurian. This term has not been widely used either in Great Britain or on the Continent, but in the last twenty years has been accepted more and more widely in America. Even here, however, it is in direct conflict with the term Champlain, proposed by the New York State Geologist in 1842. In 1897 the International Geological Congress published E. Renevier’s Chronographie Géologique, wherein we find the following:
  • 55. Silurian Period. Upper or Silurian (Murchison, restricted, 1835). Ludlowian (Murchison 1839). Wenlockian (Murchison 1839). Landoverian (Murchison). Middle or Ordovician (Lapworth 1879). Caradocian (Murchison 1839). Landeilian (Murchison 1839). Arenigian (Sedgwick 1847). Lower or Cambrian (Sedgwick, restricted, 1835). Potsdamian (Emmons 1838). Menevian (Salter and Hicks 1865). Georgian (Hitchcock 1861). Regarding this period, which, by the way, is not very unlike that of Barrande, Renevier remarks that it is “as important as the Cretaceous or the Jurassic. Lapworth even gives it a value of the first order equal to the Protozoic era.” In the above there is an obvious objection in the double usage of the term Silurian, and this difficulty was met later on in Lapparent’s Traité by the proposal to substitute Gothlandian for Silurian. Of this change Geikie remarks: “Such an arrangement ... might be adopted if it did not involve so serious an alteration of the nomenclature in general use.” On the other hand, if diastrophism and breaks in the stratigraphic and faunal sequence are to be the basis for geologic time divisions, we cannot accept the above scheme, for it recognizes but one period where there are at least four in nature. Conclusions.—We have arrived at a time when our knowledge of the stratigraphic and faunal sequence, plus the orogenic record as recognized in the principle of diastrophism, should be reflected in the terminology of the geologic time-table. It would be easy to offer a satisfactory nomenclature if we were not bound by the law of priority in publication, and if no one had the geologic chronology of his own time ingrained in his memory. In addition, the endless literature, with its accepted nomenclature, bars our way. Therefore with a view of creating the least change in geologic nomenclature, and of doing
  • 56. the greatest justice to our predecessors that the present conditions of our knowledge will allow, the following scheme is offered: Silurian period. Llandovery to top of Ludlow in Europe. Alexandrian-Cataract- Medina to top of Manlius in America. Champlain (1842) or Ordovician (1879) period. Arenig to top of Caradoc in Europe. Beekmantown to top of Richmondian in America. Cambrian period. In the Atlantic realm, begins with the Paradoxides, and in the Pacific, with the Bathyuriscus and Ogygopsis faunas. The close is involved in Ulrich’s provisionally defined Ozarkian system. When the latter is established, the Ozarkian period will hold the time between the Ordovician and the Cambrian. Taconic period. For the world-wide Olenellus or Mesonacidæ faunas.
  • 57. Welcome to our website – the ideal destination for book lovers and knowledge seekers. With a mission to inspire endlessly, we offer a vast collection of books, ranging from classic literary works to specialized publications, self-development books, and children's literature. Each book is a new journey of discovery, expanding knowledge and enriching the soul of the reade Our website is not just a platform for buying books, but a bridge connecting readers to the timeless values of culture and wisdom. With an elegant, user-friendly interface and an intelligent search system, we are committed to providing a quick and convenient shopping experience. Additionally, our special promotions and home delivery services ensure that you save time and fully enjoy the joy of reading. Let us accompany you on the journey of exploring knowledge and personal growth! ebookfinal.com