From 34766f1a2e9e60626eb1bd5a08140fc41a3770c8 Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Tue, 26 Nov 2024 17:00:45 -0800 Subject: Upgrades to the Type lattice diagrams --- chapter10/docs/lattice.svg | 1052 +++++++++++++++++++++++--------------------- 1 file changed, 554 insertions(+), 498 deletions(-) (limited to 'chapter10/docs/lattice.svg') diff --git a/chapter10/docs/lattice.svg b/chapter10/docs/lattice.svg index 2fe05bbf..02f3ce69 100644 --- a/chapter10/docs/lattice.svg +++ b/chapter10/docs/lattice.svg @@ -1,498 +1,554 @@ - - - - - - -Lattice - - - -TOP - -⊤ - - - -XCTRL - -~Ctrl - - - -TOP->XCTRL - - - - -INT_TOP - -IntTop - - - -TOP->INT_TOP - - - - -TUPLE - -TUPLE - - - -TOP->TUPLE - - - - -STRUCT_TOP - -$TOP - - - -TOP->STRUCT_TOP - - - - -PTR_TOP - -*$TOP - - - -TOP->PTR_TOP - - - - -MEM_TOP - -MEM#TOP - - - -TOP->MEM_TOP - - - - -BOT - -⊥ - - - -CTRL - -Ctrl - - - -XCTRL->CTRL - - - - -CTRL->BOT - - - - -INT_MIN - --n - - - -INT_TOP->INT_MIN - - - - -INT_MINDOTS -... - - - -INT_TOP->INT_MINDOTS - - - - -INT_ZERO - -0 - - - -INT_TOP->INT_ZERO - - - - -INT_MAXDOTS -... - - - -INT_TOP->INT_MAXDOTS - - - - -INT_MAX - -+n - - - -INT_TOP->INT_MAX - - - - -INT_BOT - -IntBot - - - -INT_BOT->BOT - - - - -INT_MIN->INT_BOT - - - - - -INT_MINDOTS->INT_BOT - - - - - -INT_ZERO->INT_BOT - - - - - -INT_MAXDOTS->INT_BOT - - - - - -INT_MAX->INT_BOT - - - - -TUPLE->BOT - - - - -STRUCT_S1 - -S1 - - - -STRUCT_TOP->STRUCT_S1 - - - - -STRUCT_DOTS -... - - - -STRUCT_TOP->STRUCT_DOTS - - - - -STRUCT_SN - -Sn - - - -STRUCT_TOP->STRUCT_SN - - - - - -STRUCT_BOT - -$BOT - - - -STRUCT_S1->STRUCT_BOT - - - - - -STRUCT_DOTS->STRUCT_BOT - - - - -STRUCT_SN->STRUCT_BOT - - - - -STRUCT_BOT->BOT - - - - -PTR_NULL - -null - - - -PTR_TOP->PTR_NULL - - - - -PTR_VOIDPTR - -*void - - - -PTR_TOP->PTR_VOIDPTR - - - - -PTR_S1 - -*S1 - - - -PTR_TOP->PTR_S1 - - - - -PTR_SDOTS -... - - - -PTR_TOP->PTR_SDOTS - - - - -PTR_SN - -*SN - - - -PTR_TOP->PTR_SN - - - - -PTR_S1OPT - -*S1? - - - -PTR_NULL->PTR_S1OPT - - - - -PTR_SOPTDOTS -... - - - -PTR_NULL->PTR_SOPTDOTS - - - - -PTR_SNOPT - -*SN? - - - -PTR_NULL->PTR_SNOPT - - - - -PTR_BOT - -*$BOT? - - - -PTR_NULL->PTR_BOT - - - - -PTR_VOIDPTR->PTR_BOT - - - - -PTR_S1->PTR_VOIDPTR - - - - - -PTR_S1->PTR_S1OPT - - - - -PTR_SDOTS->PTR_VOIDPTR - - - - - -PTR_SDOTS->PTR_SOPTDOTS - - - - -PTR_SN->PTR_VOIDPTR - - - - -PTR_SN->PTR_SNOPT - - - - - -PTR_S1OPT->PTR_BOT - - - - - -PTR_SOPTDOTS->PTR_BOT - - - - -PTR_SNOPT->PTR_BOT - - - - -PTR_BOT->BOT - - - - -MEM_ALIAS1 - -#1 - - - -MEM_TOP->MEM_ALIAS1 - - - - -MEM_ALIAS2 - -#2 - - - -MEM_TOP->MEM_ALIAS2 - - - - -MEM_ALIASDOTS -... - - - -MEM_TOP->MEM_ALIASDOTS - - - - -MEM_ALIASN - -#n - - - -MEM_TOP->MEM_ALIASN - - - - - -MEM_BOT - -MEM#BOT - - - -MEM_ALIAS1->MEM_BOT - - - - - -MEM_ALIAS2->MEM_BOT - - - - - -MEM_ALIASDOTS->MEM_BOT - - - - -MEM_ALIASN->MEM_BOT - - - - -MEM_BOT->BOT - - - - + + + + + + +Lattice + + + +TOP + +⊤ + + + +XCTRL + +⊤ +:ctrl + + + +TOP->XCTRL + + + + + +INT_TOP + +⊤ +:int + + + +TOP->INT_TOP + + + + + +PTR + + + +*ptr + + +struct + + + +TOP->PTR + + + + + +STRUCT_TOP + +⊤ +:struct + + + +TOP->STRUCT_TOP + + + + + +MEM_TOP + +⊤ +:mem + + + +TOP->MEM_TOP + + + + + +TUPLE_TOP + +⊤ +:tuple + + + +TOP->TUPLE_TOP + + + + + +BOT + +⊥ + + + +CTRL + +⊥ +:ctrl + + + +XCTRL->CTRL + + + + + +CTRL->BOT + + + + + +INT_MIN + +-n + + + +INT_TOP->INT_MIN + + + + + +INT_MINDOTS + +... + + + +INT_TOP->INT_MINDOTS + + + + + +INT_ZERO + +0 + + + +INT_TOP->INT_ZERO + + + + + +INT_MAXDOTS + +... + + + +INT_TOP->INT_MAXDOTS + + + + + +INT_MAX + ++n + + + +INT_TOP->INT_MAX + + + + + +INT_BOT + +⊥ +:int + + + +INT_BOT->BOT + + + + + +INT_MIN->INT_BOT + + + + + + +INT_MINDOTS->INT_BOT + + + + + + +INT_ZERO->INT_BOT + + + + + + +INT_MAXDOTS->INT_BOT + + + + + + +INT_MAX->INT_BOT + + + + + +PTR0 + + + +*ptr? + + +struct + + + +PTR->PTR0 + + + + + +PTR0->BOT + + + + + +STRUCT_S1 + + + +field + + + + + + + + +int:ptr + + + +STRUCT_TOP->STRUCT_S1 + + + + + +STRUCT_S2 + + + +field + + + + + + + + +int:ptr + + +field + + + + + + + + +int:ptr + + + +STRUCT_TOP->STRUCT_S2 + + + + + +STRUCT_SN + + + +field + + + + + + + + +int:ptr + + +...   + + + + + + + + +int:ptr + + +field + + + + + + + + +int:ptr + + + +STRUCT_TOP->STRUCT_SN + + + + + + +STRUCT_BOT + +⊥ +:struct + + + +STRUCT_S1->STRUCT_BOT + + + + + + +STRUCT_S2->STRUCT_BOT + + + + + +STRUCT_SN->STRUCT_BOT + + + + + +STRUCT_BOT->BOT + + + + + +MEM_ALIAS1 + +#1 + + + +MEM_TOP->MEM_ALIAS1 + + + + + +MEM_ALIASDOTS + +... + + + +MEM_TOP->MEM_ALIASDOTS + + + + + +MEM_ALIASN + +#n + + + +MEM_TOP->MEM_ALIASN + + + + + + +MEM_BOT + +⊥ +:mem + + + +MEM_ALIAS1->MEM_BOT + + + + + + +MEM_ALIASDOTS->MEM_BOT + + + + + +MEM_ALIASN->MEM_BOT + + + + + +MEM_BOT->BOT + + + + + +TUPLE1 + + + +Tuple + + +type + + + +TUPLE_TOP->TUPLE1 + + + + + +TUPLE2 + + + +Tuple + + +type + + +type + + + +TUPLE_TOP->TUPLE2 + + + + + +TUPLEN + + + +Tuple + + +type + + +... + + +type + + + +TUPLE_TOP->TUPLEN + + + + + +TUPLE_BOT + +⊥ +:tuple + + + +TUPLE1->TUPLE_BOT + + + + + +TUPLE2->TUPLE_BOT + + + + + +TUPLEN->TUPLE_BOT + + + + + +TUPLE_BOT->BOT + + + + + -- cgit v1.2.3