diff --git a/content/mimiumの多段階計算.md b/content/mimiumの多段階計算.md index 1a66d894..22b07d8a 100644 --- a/content/mimiumの多段階計算.md +++ b/content/mimiumの多段階計算.md @@ -10,6 +10,49 @@ シンプルに構文木レベルでのインタプリタを別途作ることで実現できそう。 +## 構文の拡張 + +### Type + +Code Type $\langle t\rangle$を加える +$$ +\begin{align} +\tau ::= + &\quad R \quad &\\ + |&\quad I_n \quad &n \in \mathbb{N} \\ + |&\quad \tau → \tau &\\ + |&\quad \langle \tau \rangle +\end{align} +$$ + +### Expression + +$$ +\begin{align} +e ::= + &\quad R & R \in \mathbb{R} [number]&\\ + |&\quad e \ e \quad& [app]&\\ + |&\quad \lambda x.e& [abs]&\\ + |&\quad let\; x\; =\; e\; in\; e& [let]&\\ + |&\quad delay(x,e_{time},v_{bound})&[delay]&\\ + |&\quad mem(e) &[mem]&\\ + |&\quad feed\ x.e &[feed]&\\ + |&\quad `(e) &[quote]&\\ + |&\quad $(e) &[splice]& +\end{align} +$$ + +### Value + +$$ +\begin{align} +v ::= + |&\quad R & R \in \mathbb{R} [number]&\\ + |&\quad cls(e,E) &[closure]&\\ + |&\quad \langle v \rangle &[code]&\\ +\end{align} +$$ + ## 課題