sphinxjp.themes.revealjs

TDDB44/TDDD55 Compiler Construction

Lecture 7 - Example

Created by Martin Sjölund. Press s for presenter mode and presentation notes.
digraph G {
graph [fontname = "Courier New"];
node [shape=record, fontname = "Courier New"];
edge [fontname = "Courier New"];

Grammar [xlabel="G", label="{0. \<SYS\> \ → \<list\> ⊢\l|1. \<list\> → \<list\> , \<element\>\l|2.\ \ \ \ \ \ \ \ \| \<element\>\l|3. \<element\> → a\l|4.\ \ \ \ \ \ \ \ \ \ \ \| b\l}"];

I0 [xlabel=<I<sub>0</sub>>, label="{\<SYS\> → • \<list\> ⊢\l}"];

I1 [style=invis, xlabel=<I<sub>1</sub>>, label="{\<SYS\> → \<list\> • ⊢\l|\<list\> → \<list\> • , \<element\>\l}"];

I2 [style=invis, xlabel=<I<sub>2</sub>>, label="{\<list\> → \<list\> , • \<element\>\l||\<element\> → • a\l|\<element\> → • b\l}"];

I3 [style=invis, xlabel=<I<sub>3</sub>>, label="{\<element\> → a •\l}"];
I4 [style=invis, xlabel=<I<sub>4</sub>>, label="{\<element\> → b •\l}"];
I5 [style=invis, xlabel=<I<sub>5</sub>>, label="{\<list\> → \<list\> , \<element\> •\l}"];


I6 [style=invis, xlabel=<I<sub>6</sub>>, label="{\<list\> → \<element\> •\l}"];

I0 -> I1 [style=invis, label=" <list>"];
I1 -> I2 [style=invis, label=" ,"];
I2 -> I3 [style=invis, label=" a"];
I2 -> I4 [style=invis, label=" b"];
I0 -> I3 [style=invis, label=" a"];
I0 -> I4 [style=invis, label=" b"];
I2 -> I5 [style=invis, label=" <element>"];
I0 -> I6 [style=invis, label=" <element>"];
}
digraph G {
graph [fontname = "Courier New"];
node [shape=record, fontname = "Courier New"];
edge [fontname = "Courier New"];

Grammar [xlabel="G", label="{0. \<SYS\> \ → \<list\> ⊢\l|1. \<list\> → \<list\> , \<element\>\l|2.\ \ \ \ \ \ \ \ \| \<element\>\l|3. \<element\> → a\l|4.\ \ \ \ \ \ \ \ \ \ \ \| b\l}"];

I0 [xlabel=<I<sub>0</sub>>, label="{\<SYS\> → • \<list\> ⊢\l||\<list\> → • \<list\> , \<element\>\l|\<list\> → • \<element\>\l}"];

I1 [style=invis, xlabel=<I<sub>1</sub>>, label="{\<SYS\> → \<list\> • ⊢\l|\<list\> → \<list\> • , \<element\>\l}"];

I2 [style=invis, xlabel=<I<sub>2</sub>>, label="{\<list\> → \<list\> , • \<element\>\l||\<element\> → • a\l|\<element\> → • b\l}"];

I3 [style=invis, xlabel=<I<sub>3</sub>>, label="{\<element\> → a •\l}"];
I4 [style=invis, xlabel=<I<sub>4</sub>>, label="{\<element\> → b •\l}"];
I5 [style=invis, xlabel=<I<sub>5</sub>>, label="{\<list\> → \<list\> , \<element\> •\l}"];


I6 [style=invis, xlabel=<I<sub>6</sub>>, label="{\<list\> → \<element\> •\l}"];

I0 -> I1 [style=invis, label=" <list>"];
I1 -> I2 [style=invis, label=" ,"];
I2 -> I3 [style=invis, label=" a"];
I2 -> I4 [style=invis, label=" b"];
I0 -> I3 [style=invis, label=" a"];
I0 -> I4 [style=invis, label=" b"];
I2 -> I5 [style=invis, label=" <element>"];
I0 -> I6 [style=invis, label=" <element>"];
}
digraph G {
graph [fontname = "Courier New"];
node [shape=record, fontname = "Courier New"];
edge [fontname = "Courier New"];

Grammar [xlabel="G", label="{0. \<SYS\> \ → \<list\> ⊢\l|1. \<list\> → \<list\> , \<element\>\l|2.\ \ \ \ \ \ \ \ \| \<element\>\l|3. \<element\> → a\l|4.\ \ \ \ \ \ \ \ \ \ \ \| b\l}"];

I0 [xlabel=<I<sub>0</sub>>, label="{\<SYS\> → • \<list\> ⊢\l||\<list\> → • \<list\> , \<element\>\l|\<list\> → • \<element\>\l|\<element\> → • a\l|\<element\> → • b\l}"];

I1 [style=invis, xlabel=<I<sub>1</sub>>, label="{\<SYS\> → \<list\> • ⊢\l|\<list\> → \<list\> • , \<element\>\l}"];

I2 [style=invis, xlabel=<I<sub>2</sub>>, label="{\<list\> → \<list\> , • \<element\>\l||\<element\> → • a\l|\<element\> → • b\l}"];

I3 [style=invis, xlabel=<I<sub>3</sub>>, label="{\<element\> → a •\l}"];
I4 [style=invis, xlabel=<I<sub>4</sub>>, label="{\<element\> → b •\l}"];
I5 [style=invis, xlabel=<I<sub>5</sub>>, label="{\<list\> → \<list\> , \<element\> •\l}"];


I6 [style=invis, xlabel=<I<sub>6</sub>>, label="{\<list\> → \<element\> •\l}"];

I0 -> I1 [style=invis, label=" <list>"];
I1 -> I2 [style=invis, label=" ,"];
I2 -> I3 [style=invis, label=" a"];
I2 -> I4 [style=invis, label=" b"];
I0 -> I3 [style=invis, label=" a"];
I0 -> I4 [style=invis, label=" b"];
I2 -> I5 [style=invis, label=" <element>"];
I0 -> I6 [style=invis, label=" <element>"];
}
digraph G {
graph [fontname = "Courier New"];
node [shape=record, fontname = "Courier New"];
edge [fontname = "Courier New"];

Grammar [xlabel="G", label="{0. \<SYS\> \ → \<list\> ⊢\l|1. \<list\> → \<list\> , \<element\>\l|2.\ \ \ \ \ \ \ \ \| \<element\>\l|3. \<element\> → a\l|4.\ \ \ \ \ \ \ \ \ \ \ \| b\l}"];

I0 [xlabel=<I<sub>0</sub>>, label="{\<SYS\> → • \<list\> ⊢\l||\<list\> → • \<list\> , \<element\>\l|\<list\> → • \<element\>\l|\<element\> → • a\l|\<element\> → • b\l}"];

I1 [style=invis, xlabel=<I<sub>1</sub>>, label="{\<SYS\> → \<list\> • ⊢\l|\<list\> → \<list\> • , \<element\>\l}"];

I2 [style=invis, xlabel=<I<sub>2</sub>>, label="{\<list\> → \<list\> , • \<element\>\l||\<element\> → • a\l|\<element\> → • b\l}"];

I3 [style=invis, xlabel=<I<sub>3</sub>>, label="{\<element\> → a •\l}"];
I4 [style=invis, xlabel=<I<sub>4</sub>>, label="{\<element\> → b •\l}"];
I5 [style=invis, xlabel=<I<sub>5</sub>>, label="{\<list\> → \<list\> , \<element\> •\l}"];


I6 [style=invis, xlabel=<I<sub>6</sub>>, label="{\<list\> → \<element\> •\l}"];

I0 -> I1 [label=" <list>"];
I1 -> I2 [style=invis, label=" ,"];
I2 -> I3 [style=invis, label=" a"];
I2 -> I4 [style=invis, label=" b"];
I0 -> I3 [style=invis, label=" a"];
I0 -> I4 [style=invis, label=" b"];
I2 -> I5 [style=invis, label=" <element>"];
I0 -> I6 [style=invis, label=" <element>"];
}
digraph G {
graph [fontname = "Courier New"];
node [shape=record, fontname = "Courier New"];
edge [fontname = "Courier New"];

Grammar [xlabel="G", label="{0. \<SYS\> \ → \<list\> ⊢\l|1. \<list\> → \<list\> , \<element\>\l|2.\ \ \ \ \ \ \ \ \| \<element\>\l|3. \<element\> → a\l|4.\ \ \ \ \ \ \ \ \ \ \ \| b\l}"];

I0 [xlabel=<I<sub>0</sub>>, label="{\<SYS\> → • \<list\> ⊢\l||\<list\> → • \<list\> , \<element\>\l|\<list\> → • \<element\>\l|\<element\> → • a\l|\<element\> → • b\l}"];

I1 [xlabel=<I<sub>1</sub>>, label="{\<SYS\> → \<list\> • ⊢\l|\<list\> → \<list\> • , \<element\>\l}"];

I2 [style=invis, xlabel=<I<sub>2</sub>>, label="{\<list\> → \<list\> , • \<element\>\l||\<element\> → • a\l|\<element\> → • b\l}"];

I3 [style=invis, xlabel=<I<sub>3</sub>>, label="{\<element\> → a •\l}"];
I4 [style=invis, xlabel=<I<sub>4</sub>>, label="{\<element\> → b •\l}"];
I5 [style=invis, xlabel=<I<sub>5</sub>>, label="{\<list\> → \<list\> , \<element\> •\l}"];


I6 [style=invis, xlabel=<I<sub>6</sub>>, label="{\<list\> → \<element\> •\l}"];

I0 -> I1 [label=" <list>"];
I1 -> I2 [style=invis, label=" ,"];
I2 -> I3 [style=invis, label=" a"];
I2 -> I4 [style=invis, label=" b"];
I0 -> I3 [style=invis, label=" a"];
I0 -> I4 [style=invis, label=" b"];
I2 -> I5 [style=invis, label=" <element>"];
I0 -> I6 [style=invis, label=" <element>"];
}
digraph G {
graph [fontname = "Courier New"];
node [shape=record, fontname = "Courier New"];
edge [fontname = "Courier New"];

Grammar [xlabel="G", label="{0. \<SYS\> \ → \<list\> ⊢\l|1. \<list\> → \<list\> , \<element\>\l|2.\ \ \ \ \ \ \ \ \| \<element\>\l|3. \<element\> → a\l|4.\ \ \ \ \ \ \ \ \ \ \ \| b\l}"];

I0 [xlabel=<I<sub>0</sub>>, label="{\<SYS\> → • \<list\> ⊢\l||\<list\> → • \<list\> , \<element\>\l|\<list\> → • \<element\>\l|\<element\> → • a\l|\<element\> → • b\l}"];

I1 [xlabel=<I<sub>1</sub>>, label="{\<SYS\> → \<list\> • ⊢\l|\<list\> → \<list\> • , \<element\>\l}"];

I2 [style=invis, xlabel=<I<sub>2</sub>>, label="{\<list\> → \<list\> , • \<element\>\l||\<element\> → • a\l|\<element\> → • b\l}"];

I3 [style=invis, xlabel=<I<sub>3</sub>>, label="{\<element\> → a •\l}"];
I4 [style=invis, xlabel=<I<sub>4</sub>>, label="{\<element\> → b •\l}"];
I5 [style=invis, xlabel=<I<sub>5</sub>>, label="{\<list\> → \<list\> , \<element\> •\l}"];


I6 [style=invis, xlabel=<I<sub>6</sub>>, label="{\<list\> → \<element\> •\l}"];

I0 -> I1 [label=" <list>"];
I1 -> I2 [label=" ,"];
I2 -> I3 [style=invis, label=" a"];
I2 -> I4 [style=invis, label=" b"];
I0 -> I3 [style=invis, label=" a"];
I0 -> I4 [style=invis, label=" b"];
I2 -> I5 [style=invis, label=" <element>"];
I0 -> I6 [style=invis, label=" <element>"];
}
digraph G {
graph [fontname = "Courier New"];
node [shape=record, fontname = "Courier New"];
edge [fontname = "Courier New"];

Grammar [xlabel="G", label="{0. \<SYS\> \ → \<list\> ⊢\l|1. \<list\> → \<list\> , \<element\>\l|2.\ \ \ \ \ \ \ \ \| \<element\>\l|3. \<element\> → a\l|4.\ \ \ \ \ \ \ \ \ \ \ \| b\l}"];

I0 [xlabel=<I<sub>0</sub>>, label="{\<SYS\> → • \<list\> ⊢\l||\<list\> → • \<list\> , \<element\>\l|\<list\> → • \<element\>\l|\<element\> → • a\l|\<element\> → • b\l}"];

I1 [xlabel=<I<sub>1</sub>>, label="{\<SYS\> → \<list\> • ⊢\l|\<list\> → \<list\> • , \<element\>\l}"];

I2 [xlabel=<I<sub>2</sub>>, label="{\<list\> → \<list\> , • \<element\>\l}"];

I3 [style=invis, xlabel=<I<sub>3</sub>>, label="{\<element\> → a •\l}"];
I4 [style=invis, xlabel=<I<sub>4</sub>>, label="{\<element\> → b •\l}"];
I5 [style=invis, xlabel=<I<sub>5</sub>>, label="{\<list\> → \<list\> , \<element\> •\l}"];


I6 [style=invis, xlabel=<I<sub>6</sub>>, label="{\<list\> → \<element\> •\l}"];

I0 -> I1 [label=" <list>"];
I1 -> I2 [label=" ,"];
I2 -> I3 [style=invis, label=" a"];
I2 -> I4 [style=invis, label=" b"];
I0 -> I3 [style=invis, label=" a"];
I0 -> I4 [style=invis, label=" b"];
I2 -> I5 [style=invis, label=" <element>"];
I0 -> I6 [style=invis, label=" <element>"];
}
digraph G {
graph [fontname = "Courier New"];
node [shape=record, fontname = "Courier New"];
edge [fontname = "Courier New"];

Grammar [xlabel="G", label="{0. \<SYS\> \ → \<list\> ⊢\l|1. \<list\> → \<list\> , \<element\>\l|2.\ \ \ \ \ \ \ \ \| \<element\>\l|3. \<element\> → a\l|4.\ \ \ \ \ \ \ \ \ \ \ \| b\l}"];

I0 [xlabel=<I<sub>0</sub>>, label="{\<SYS\> → • \<list\> ⊢\l||\<list\> → • \<list\> , \<element\>\l|\<list\> → • \<element\>\l|\<element\> → • a\l|\<element\> → • b\l}"];

I1 [xlabel=<I<sub>1</sub>>, label="{\<SYS\> → \<list\> • ⊢\l|\<list\> → \<list\> • , \<element\>\l}"];

I2 [xlabel=<I<sub>2</sub>>, label="{\<list\> → \<list\> , • \<element\>\l||\<element\> → • a\l|\<element\> → • b\l}"];

I3 [style=invis, xlabel=<I<sub>3</sub>>, label="{\<element\> → a •\l}"];
I4 [style=invis, xlabel=<I<sub>4</sub>>, label="{\<element\> → b •\l}"];
I5 [style=invis, xlabel=<I<sub>5</sub>>, label="{\<list\> → \<list\> , \<element\> •\l}"];


I6 [style=invis, xlabel=<I<sub>6</sub>>, label="{\<list\> → \<element\> •\l}"];

I0 -> I1 [label=" <list>"];
I1 -> I2 [label=" ,"];
I2 -> I3 [style=invis, label=" a"];
I2 -> I4 [style=invis, label=" b"];
I0 -> I3 [style=invis, label=" a"];
I0 -> I4 [style=invis, label=" b"];
I2 -> I5 [style=invis, label=" <element>"];
I0 -> I6 [style=invis, label=" <element>"];
}
digraph G {
graph [fontname = "Courier New"];
node [shape=record, fontname = "Courier New"];
edge [fontname = "Courier New"];

Grammar [xlabel="G", label="{0. \<SYS\> \ → \<list\> ⊢\l|1. \<list\> → \<list\> , \<element\>\l|2.\ \ \ \ \ \ \ \ \| \<element\>\l|3. \<element\> → a\l|4.\ \ \ \ \ \ \ \ \ \ \ \| b\l}"];

I0 [xlabel=<I<sub>0</sub>>, label="{\<SYS\> → • \<list\> ⊢\l||\<list\> → • \<list\> , \<element\>\l|\<list\> → • \<element\>\l|\<element\> → • a\l|\<element\> → • b\l}"];

I1 [xlabel=<I<sub>1</sub>>, label="{\<SYS\> → \<list\> • ⊢\l|\<list\> → \<list\> • , \<element\>\l}"];

I2 [xlabel=<I<sub>2</sub>>, label="{\<list\> → \<list\> , • \<element\>\l||\<element\> → • a\l|\<element\> → • b\l}"];

I3 [xlabel=<I<sub>3</sub>>, label="{\<element\> → a •\l}"];
I4 [style=invis, xlabel=<I<sub>4</sub>>, label="{\<element\> → b •\l}"];
I5 [style=invis, xlabel=<I<sub>5</sub>>, label="{\<list\> → \<list\> , \<element\> •\l}"];


I6 [style=invis, xlabel=<I<sub>6</sub>>, label="{\<list\> → \<element\> •\l}"];

I0 -> I1 [label=" <list>"];
I1 -> I2 [label=" ,"];
I2 -> I3 [label=" a"];
I2 -> I4 [style=invis, label=" b"];
I0 -> I3 [label=" a"];
I0 -> I4 [style=invis, label=" b"];
I2 -> I5 [style=invis, label=" <element>"];
I0 -> I6 [style=invis, label=" <element>"];
}
digraph G {
graph [fontname = "Courier New"];
node [shape=record, fontname = "Courier New"];
edge [fontname = "Courier New"];

Grammar [xlabel="G", label="{0. \<SYS\> \ → \<list\> ⊢\l|1. \<list\> → \<list\> , \<element\>\l|2.\ \ \ \ \ \ \ \ \| \<element\>\l|3. \<element\> → a\l|4.\ \ \ \ \ \ \ \ \ \ \ \| b\l}"];

I0 [xlabel=<I<sub>0</sub>>, label="{\<SYS\> → • \<list\> ⊢\l||\<list\> → • \<list\> , \<element\>\l|\<list\> → • \<element\>\l|\<element\> → • a\l|\<element\> → • b\l}"];

I1 [xlabel=<I<sub>1</sub>>, label="{\<SYS\> → \<list\> • ⊢\l|\<list\> → \<list\> • , \<element\>\l}"];

I2 [xlabel=<I<sub>2</sub>>, label="{\<list\> → \<list\> , • \<element\>\l||\<element\> → • a\l|\<element\> → • b\l}"];

I3 [xlabel=<I<sub>3</sub>>, label="{\<element\> → a •\l}"];
I4 [xlabel=<I<sub>4</sub>>, label="{\<element\> → b •\l}"];
I5 [style=invis, xlabel=<I<sub>5</sub>>, label="{\<list\> → \<list\> , \<element\> •\l}"];


I6 [style=invis, xlabel=<I<sub>6</sub>>, label="{\<list\> → \<element\> •\l}"];

I0 -> I1 [label=" <list>"];
I1 -> I2 [label=" ,"];
I2 -> I3 [label=" a"];
I2 -> I4 [label=" b"];
I0 -> I3 [label=" a"];
I0 -> I4 [label=" b"];
I2 -> I5 [style=invis, label=" <element>"];
I0 -> I6 [style=invis, label=" <element>"];
}
digraph G {
graph [fontname = "Courier New"];
node [shape=record, fontname = "Courier New"];
edge [fontname = "Courier New"];

Grammar [xlabel="G", label="{0. \<SYS\> \ → \<list\> ⊢\l|1. \<list\> → \<list\> , \<element\>\l|2.\ \ \ \ \ \ \ \ \| \<element\>\l|3. \<element\> → a\l|4.\ \ \ \ \ \ \ \ \ \ \ \| b\l}"];

I0 [xlabel=<I<sub>0</sub>>, label="{\<SYS\> → • \<list\> ⊢\l||\<list\> → • \<list\> , \<element\>\l|\<list\> → • \<element\>\l|\<element\> → • a\l|\<element\> → • b\l}"];

I1 [xlabel=<I<sub>1</sub>>, label="{\<SYS\> → \<list\> • ⊢\l|\<list\> → \<list\> • , \<element\>\l}"];

I2 [xlabel=<I<sub>2</sub>>, label="{\<list\> → \<list\> , • \<element\>\l||\<element\> → • a\l|\<element\> → • b\l}"];

I3 [xlabel=<I<sub>3</sub>>, label="{\<element\> → a •\l}"];
I4 [xlabel=<I<sub>4</sub>>, label="{\<element\> → b •\l}"];
I5 [xlabel=<I<sub>5</sub>>, label="{\<list\> → \<list\> , \<element\> •\l}"];


I6 [style=invis, xlabel=<I<sub>6</sub>>, label="{\<list\> → \<element\> •\l}"];

I0 -> I1 [label=" <list>"];
I1 -> I2 [label=" ,"];
I2 -> I3 [label=" a"];
I2 -> I4 [label=" b"];
I0 -> I3 [label=" a"];
I0 -> I4 [label=" b"];
I2 -> I5 [label=" <element>"];
I0 -> I6 [style=invis, label=" <element>"];
}
digraph G {
graph [fontname = "Courier New"];
node [shape=record, fontname = "Courier New"];
edge [fontname = "Courier New"];

Grammar [xlabel="G", label="{0. \<SYS\> \ → \<list\> ⊢\l|1. \<list\> → \<list\> , \<element\>\l|2.\ \ \ \ \ \ \ \ \| \<element\>\l|3. \<element\> → a\l|4.\ \ \ \ \ \ \ \ \ \ \ \| b\l}"];

I0 [xlabel=<I<sub>0</sub>>, label="{\<SYS\> → • \<list\> ⊢\l||\<list\> → • \<list\> , \<element\>\l|\<list\> → • \<element\>\l|\<element\> → • a\l|\<element\> → • b\l}"];

I1 [xlabel=<I<sub>1</sub>>, label="{\<SYS\> → \<list\> • ⊢\l|\<list\> → \<list\> • , \<element\>\l}"];

I2 [xlabel=<I<sub>2</sub>>, label="{\<list\> → \<list\> , • \<element\>\l||\<element\> → • a\l|\<element\> → • b\l}"];

I3 [xlabel=<I<sub>3</sub>>, label="{\<element\> → a •\l}"];
I4 [xlabel=<I<sub>4</sub>>, label="{\<element\> → b •\l}"];
I5 [xlabel=<I<sub>5</sub>>, label="{\<list\> → \<list\> , \<element\> •\l}"];


I6 [xlabel=<I<sub>6</sub>>, label="{\<list\> → \<element\> •\l}"];

I0 -> I1 [label=" <list>"];
I1 -> I2 [label=" ,"];
I2 -> I3 [label=" a"];
I2 -> I4 [label=" b"];
I0 -> I3 [label=" a"];
I0 -> I4 [label=" b"];
I2 -> I5 [label=" <element>"];
I0 -> I6 [label=" <element>"];
}