From 0caf37adc5f8c1600f13d80aaf77361f407c9694 Mon Sep 17 00:00:00 2001 From: Dibyendu Majumdar Date: Thu, 2 May 2024 22:08:06 +0100 Subject: Documentation updates (#76) * More clearly explain why we do not have an AST in the implementation * Improve the description of type lattice. Cross reference to future chapters. * Minor update * Add lattice visual Revise the text describing meet. * minor update * Add a lattice visual to the text * Update the lattice visual. Add description of the new edges in the SoN graph --- chapter01/README.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'chapter01') diff --git a/chapter01/README.md b/chapter01/README.md index 62f142e6..fef83683 100644 --- a/chapter01/README.md +++ b/chapter01/README.md @@ -25,11 +25,8 @@ If necessary the reader can consult a standard compiler text book. ## Architecture -We design our parser and compiler to illustrate some key aspects of the Sea of Nodes -Intermediate Representation: - -* We construct the intermediate Sea of Nodes representation directly as we parse the language. There is no Abstract Syntax Tree representation. -* The compiler will perform a few basic local optimizations as we build the IR; this is a key benefit of the Sea of Nodes IR. This aspect is more fully explored from [Chapter 2](../chapter02/README.md) onwards. +We construct the intermediate Sea of Nodes (SoN) representation directly as we parse the language. There is no Abstract Syntax Tree representation. The reason for this is to demonstrate a key benefit of the SoN IR: +a number of pessimistic peephole optimizations can be performed while parsing a language. This aspect is more fully explored from [Chapter 2](../chapter02/README.md) onwards. ## Data Structures @@ -121,7 +118,7 @@ at very little cost (nearly always small constant time) because all dependencies Each node is assigned a unique dense integer Node ID when created. This ID is useful for debugging, efficiently computing equality and e.g. as an index into a bit vector, which in turn is used to efficiently visit a (possibly cyclic) -graph. We discuss Node equality in Chapter 9 Global Value Numbering. +graph. We discuss Node equality in [Chapter 9](../chapter09/README.md). ### Start Node @@ -148,7 +145,7 @@ The Return node has two inputs. The first input is a control node and the second is the data node that supplies the return value. In this presentation, Return functions as a Stop node, since multiple `return` statements are not possible. -The Stop node will be introduced in Chapter 5 when we implement `if` statements. +The Stop node will be introduced in [Chapter 5](../chapter05/README.md) when we implement `if` statements. The Return's output is the value from the data node. -- cgit v1.2.3