📦 Out of Context リポジトリ

リポジトリ / emssr / independent_common_compiler

r2
r2 emssr1
# 境界と型
r2 emssr2
r2 emssr3
[← Index](../Index.md)
r2 emssr4
r2 emssr5
## 1. 境界は決まる
r2 emssr6
r2 emssr7
チェンバーは境界と層列で書く(構成語 §2.3)。
r2 emssr8
r2 emssr9
$$
r2 emssr10
\operatorname{ser}(C)=\bigl\langle(\mu,d)\mid\Gamma^-\Rightarrow\Lambda_0;\cdots;\Lambda_h\Rightarrow\Gamma^+\bigr\rangle
r2 emssr11
\tag{1.1}
r2 emssr12
$$
r2 emssr13
r2 emssr14
平文では五つの欄を書かない。
r2 emssr15
r2 emssr16
| 欄 | 平文での扱い |
r2 emssr17
|---|---|
r2 emssr18
| $\mu$ | 全体で $\infty$ |
r2 emssr19
| $d$ | 本体から出る。$d(f;g)=d(f)+d(g)$ |
r2 emssr20
| $\Gamma^-$ | $I$。文章は何も受け取らずに始まる |
r2 emssr21
| $\Gamma^+$ | 層を順に当てれば決まる(定理 2.2) |
r2 emssr22
| $\operatorname{addr}$ | $\Omega$ の箱が自分の集積点を持つ |
r2 emssr23
r2 emssr24
$\Gamma^-=I$ なので、層 0 に置けるのは $\operatorname{pin}=0$ の箱だけになる。
r2 emssr25
r2 emssr26
$$
r2 emssr27
\{\,g\mid\operatorname{pin}(g)=0\,\}
r2 emssr28
=\{\ \texttt{hu},\ \texttt{ma},\ \texttt{re},\ \texttt{wu},\ \texttt{we},\ \texttt{wo},\ \texttt{me},\ \texttt{di},\ \texttt{ya}\ \}
r2 emssr29
$$
r2 emssr30
r2 emssr31
この九つが文章の入口になる。それぞれ二進有理数・名詞・履歴・折返し・報告・閉包の開きを立てる。
r2 emssr32
r2 emssr33
## 2. 型レジストリ
r2 emssr34
r2 emssr35
| 番号 | 型 | 内容 | 複製 |
r2 emssr36
|---:|---|---|---|
r2 emssr37
| 0 | $\mathsf{Point}$ | 座標点 $(r,\omega)$ | 可 |
r2 emssr38
| 1 | $\mathsf{Trace}$ | 構成履歴 $\sigma^\varepsilon a$ | 不可 |
r2 emssr39
| 2 | $\mathsf{Reflection}$ | $D_4$ の八元 | 可 |
r2 emssr40
| 3 | $\mathsf{Dyad}$ | 二進有理数 $x/2^\delta$ | 可 |
r2 emssr41
| 4 | $\mathsf{Bit}$ | 二値 | 可 |
r2 emssr42
| 5 | $\mathcal Q$ | 影響値 | 不可 |
r2 emssr43
| 6 | $\mathsf{Mono}$ | 単項式番号 $T\subseteq[n]$ | 可 |
r2 emssr44
| 7 | $\mathsf{Noun}$ | 名詞ノード $(y,\hat x)$ | $\mu=\infty$ で不可 |
r2 emssr45
| $-2$ | $\mathsf{Rational}$ | 有理数 $a/b$、$b>0$ | 可 |
r2 emssr46
| $-3$ | $\mathsf{Chain}$ | cell 上の符号つき係数 | 可 |
r2 emssr47
| $-4$ | $\mathsf{Region}$ | cell の集合 | 可 |
r2 emssr48
| $8+k$ | $\#k$ | 正準参照したチェンバー | 参照先が決める |
r2 emssr49
r2 emssr50
$\mathsf{Trace}$ と $\mathcal Q$ が複製できないのは、構成履歴を複製すると $ij$ と $ji$ の差が壊れるためになる(構成語 §3.5)。
r2 emssr51
r2 emssr52
$\mathsf{Noun}$ の複製 `tu` は平文に置けない。平文は $\mu=\infty$ だからである(13 §1.2、07 §8.4)。
r2 emssr53
書くと両方の compiler が image を出さずに止まる。
r2 emssr54
r2 emssr55
## 3. 層を当てる
r2 emssr56
r2 emssr57
層 $r$ の frontier を $F_r$ とする。層の箱を左から順に当てる手続きは三行で終わる。
r2 emssr58
r2 emssr59
$$
r2 emssr60
\begin{aligned}
r2 emssr61
\texttt{ki} &:\quad \text{位置を一つ進める}\\
r2 emssr62
g &:\quad F_r[\,q\,..\,q+|\Gamma^-_g|\,)=\Gamma^-_g\ \text{を検め、}\ \Gamma^+_g\ \text{を出力へ積む}\\
r2 emssr63
F_{r+1} &=\ (\text{積んだ出力})\ \|\ (\text{残った位置})
r2 emssr64
\end{aligned}
r2 emssr65
\tag{3.1}
r2 emssr66
$$
r2 emssr67
r2 emssr68
型が合わなければそこで止まる。診断は構成語 §15.4 の名前で出る。
r2 emssr69
r2 emssr70
```
r2 emssr71
層 2: kukeke の入力型が合わない(型と座標の混同)
r2 emssr72
層 1: ku の入力が frontier を越える(境界不一致)
r2 emssr73
```
r2 emssr74
r2 emssr75
## 4. 出口境界の読み
r2 emssr76
r2 emssr77
$\Gamma^+$ に残った席は、成分の順で作業領域の語 $0,1,2,\ldots$ へ開く。
r2 emssr78
r2 emssr79
| 型 | 開く語 |
r2 emssr80
|---|---|
r2 emssr81
| $\mathsf{Dyad}$、$\mathsf{Bit}$ | 分子 一語 |
r2 emssr82
| $\mathsf{Point}$ | 実成分、無限成分 |
r2 emssr83
| $\mathsf{Rational}$ | 分子、分母 |
r2 emssr84
| $\mathcal Q$ | 大きさ $a$、$b$、語 $m$、$\varepsilon$、符号 |
r2 emssr85
| $\mathsf{Noun}$ | 位置四語、目印の数、プロファイル |
r2 emssr86
| $\mathsf{Region}$ | cell の数、cell 番号(昇順) |
r2 emssr87
| $\mathsf{Chain}$ | 頂点の数、各頂点の(係数、頂点数 $1$、頂点番号) |
r2 emssr88
r2 emssr89
深度は compile 時の事実なので、語には分子だけが載る。読む側が深度表から引く。
r2 emssr90
r2 emssr91
$$
r2 emssr92
\text{値}=\frac{\text{語}}{2^{\delta}},
r2 emssr93
\qquad
r2 emssr94
\delta\ \text{は build 時の型}
r2 emssr95
$$
r2 emssr96
r2 emssr97
## 参照
r2 emssr98
r2 emssr99
- [01_source](01_source.md) 音節・層・frontier
r2 emssr100
- [generators/Index](../generators/Index.md) 生成元ごとの $\Gamma^-\to\Gamma^+$