\[ \newcommand{\tr}{\Rightarrow} \newcommand{\trs}{\tr^{\!\ast}} \newcommand{\rlnm}[1]{\mathsf{(#1)}} \newcommand{\rred}[1]{\xrightarrow{#1}} \newcommand{\rreds}[1]{\mathrel{\xrightarrow{#1}\!\!^*}} \newcommand{\cl}{\mathsf{Cl}} \newcommand{\pow}{\mathcal{P}} \newcommand{\matches}{\mathrel{\mathsf{matches}}} \newcommand{\kw}[1]{\mathsf{#1}} \]

Concrete Syntax of Turtle Programs


In the following, $n$ may be any natural number:

\[\begin{array}{rcl} P &::=& C \mid C \mathrel{;} P\\ C &::=& \kw{up} \mid \kw{down} \mid \kw{fd}(n) \mid \kw{left}(n) \mid \kw{right}(n) \end{array}\]

For example:

\[\kw{down};\; \kw{fd}(200);\; \kw{left}(90);\; \kw{fd}(200);\; \kw{left}(90);\; \kw{fd}(200);\; \kw{left}(90);\; \kw{fd}(200);\; \kw{up}\]