<commit_before>\section{Konkret Sprog Design}
\setlength{\grammarindent}{100pt}
\subsection{Expressions}
\begin{frame}
	\frametitle{Expressions - Grammatik}
	\dots
	\begin{grammar}
	<OP2> ::= <OP2> <Poneoperator> <OP1>
  \alt <OP1>
  
	<OP1> ::= <Pzerooperator> <OP1>
  \alt <OP0>

  <OP0> ::= <Operand>
  \alt '(' <Expression> ')'
  \end{grammar}
	\dots
	\begin{grammar}
	<PTWOOPERATOR> ::= '*' | '/' | '\%'
	
	<PTHREEOPERATOR> ::= '+' | '-'
	
	<PFOUROPERATOR> ::= '=' | '!=' | '$\textless$' | '$\textless$=' | '$\textgreater$' | '$\textgreater$='
	\end{grammar}
	\dots
\end{frame}

\begin{frame}
	\frametitle{Expressions - Grammatik}
	\begin{grammar}
  <Operand> ::= <Block>
    \alt <Integer>
    \alt <Real>
    \alt <Boolean>
    \alt <Literals>
    \alt <Invocation>
  \end{grammar}
\end{frame}

\subsection{Typesystem}
\begin{frame}
	\frametitle{Typesystem - Block}
	\begin{align*}
  &\inference[BLOCK]{\Tenv s_1: \Tt & \Tenv s_2: \Tt'}
                    {\Tenv \{s_1; s_2\} : \Tt'}
	\\\\
  &\inference[BLOCK]{\Tenv s_1: \Tt & \Tenv s_2: \Tt' & \Tenv s_3: \Tt''}
                    {\Tenv \{s_1; \;\Treturn\; s_2; s_3\} : \Tt'}
  \end{align*}
\end{frame}

\subsection{Statements}
\begin{frame}
  \frametitle{Statements - Grammartik}
	\begin{grammar}
  <Statement> ::= <Declaration>
    \alt <Reassignment>
    \alt <Expression>
    \alt <Receive>
    \alt <Spawn>
    \alt <Return>
    \alt <Die>
    \alt <Send>
    \alt <If>
    \alt <IfElse>
    \alt <While>
    \alt <ForIn>
  \end{grammar}
\end{frame}

\subsection{Semantik}
\begin{frame}
	\frametitle{Semantik - Transitions System}
	\begin{center}	
  $at = \text{ActorTypes} \rightharpoonup \text{Stm}$
	
	$aEnv = \text{Anames} \cup {next} \rightharpoonup sEnv$
	
	$sEnv = \text{Symbols} \rightharpoonup \text{Stm} \times \text{Symbols}$
  \end{center}
\end{frame}

\begin{frame}
	\frametitle{Semantik - Invoke}
	\begin{align*}
	&\inference[$\text{INVOKE}_{A1}$]{}
                  {\Braket{x,sEnv} \Rightarrow_A v}
                  {,sEnv(x) = \Braket{n,\epsilon}, \mathcal{N}(n) = v}
	\\\\
	&\inference[$\text{INVOKE}_{A1}$]{}
                  {\Braket{x,sEnv} \Rightarrow_A \top}
                  {,sEnv(x) = \Braket{true,\epsilon}}
	\\\\
	&\inference[$\text{INVOKE}_{A1}$]{}
                  {\Braket{x,sEnv} \Rightarrow_A \bot}
                  {,sEnv(x) = \Braket{false,\epsilon}}
  \\\\
	&\inference[$\text{INVOKE}_{A1}$]{}
                  {\Braket{x,sEnv} \Rightarrow_A \Braket{\{S\},\epsilon}}
                  {,sEnv(x) = \Braket{\{S\},\epsilon}}
	\\\\
	&\inference[$\text{INVOKE}_{A1}$]{}
                  {\Braket{x(y),sEnv} \Rightarrow_A \Braket{S_1,sEnv[z \mapsto \Braket{S_2,s}]}}
                  \\
					        &{,sEnv(x) = \Braket{\{S_1\},z},sEnv(y) = \Braket{S_2,s}}
	\end{align*}
\end{frame}<commit_msg>Slides<commit_after>\section{Konkret Sprog Design}
\setlength{\grammarindent}{100pt}
\subsection{Expressions}
\begin{frame}
	\frametitle{Expressions - Grammatik}
	\dots
	\begin{grammar}
	<OP2> ::= <OP2> <Poneoperator> <OP1>
  \alt <OP1>
  
	<OP1> ::= <Pzerooperator> <OP1>
  \alt <OP0>

  <OP0> ::= <Operand>
  \alt '(' <Expression> ')'
  \end{grammar}
	\dots
	\begin{grammar}
	<PTWOOPERATOR> ::= '*' | '/' | '\%'
	
	<PTHREEOPERATOR> ::= '+' | '-'
	
	<PFOUROPERATOR> ::= '=' | '!=' | '$\textless$' | '$\textless$=' | '$\textgreater$' | '$\textgreater$='
	\end{grammar}
	\dots
\end{frame}

\begin{frame}
	\frametitle{Expressions - Grammatik}
	\begin{grammar}
  <Operand> ::= <Block>
    \alt <Integer>
    \alt <Real>
    \alt <Boolean>
    \alt <Literals>
    \alt <Invocation>
  \end{grammar}
\end{frame}

\subsection{Typesystem}
\begin{frame}
	\frametitle{Typesystem - Block}
	\begin{align*}
  &\inference[BLOCK]{\Tenv s_1: \Tt & \Tenv s_2: \Tt'}
                    {\Tenv \{s_1; s_2\} : \Tt'}
	\\\\
  &\inference[BLOCK]{\Tenv s_1: \Tt & \Tenv s_2: \Tt' & \Tenv s_3: \Tt''}
                    {\Tenv \{s_1; \;\Treturn\; s_2; s_3\} : \Tt'}
  \end{align*}
\end{frame}

\subsection{Statements}
\begin{frame}
  \frametitle{Statements - Grammartik}
	\begin{grammar}
  <Statement> ::= <Declaration>
    \alt <Reassignment>
    \alt <Expression>
    \alt <Receive>
    \alt <Spawn>
    \alt <Return>
    \alt <Die>
    \alt <Send>
    \alt <If>
    \alt <IfElse>
    \alt <While>
    \alt <ForIn>
  \end{grammar}
\end{frame}

\subsection{Semantik}
\begin{frame}
	\frametitle{Semantik - Transitions System}
	\begin{center}	
  $at = \text{ActorTypes} \rightharpoonup \text{Stm}$
	
	$aEnv = \text{Anames} \cup {next} \rightharpoonup aEnv,sEnv$
	
	$aEnv,sEnv = \text{Symbols} \rightharpoonup \text{Stm} \times \text{Symbols}$
  \end{center}
\end{frame}

\begin{frame}
	\frametitle{Semantik - Invoke}
	\begin{align*}
	&\inference[$\text{INVOKE}_{A}$]{}
                  {\Braket{x,aEnv,sEnv} \Rightarrow_A v}
                  \\
									&{,aEnv,sEnv(x) = \Braket{n,\epsilon}, \mathcal{N}(n) = v}
	\\\\
	&\inference[$\text{INVOKE}_{B\top}$]{}
                  {\Braket{x,aEnv,sEnv} \Rightarrow_A \top}
                  {,aEnv,sEnv(x) = \Braket{true,\epsilon}}
	\\\\
	&\inference[$\text{INVOKE}_{B\bot}$]{}
                  {\Braket{x,aEnv,sEnv} \Rightarrow_A \bot}
                  {,aEnv,sEnv(x) = \Braket{false,\epsilon}}
	\end{align*}
\end{frame}

\begin{frame}
  \frametitle{Semantik - Invoke}
  \begin{align*}
	&\inference[$\text{INVOKE}_{S1}$]{}
                  {\Braket{x,aEnv,sEnv} \Rightarrow_A \Braket{\{S\},s}}
									\\
                  &{sEnv(x) = \Braket{\{S\},s}}
	\\\\
	&\inference[$\text{INVOKE}_{S2}$]{}
                  {\Braket{x(),aEnv,sEnv} \Rightarrow_A \Braket{\{S\},aEnv,sEnv}}
									\\
                  &{sEnv(x) = \Braket{\{S\},\epsilon}}
	\\\\
	&\inference[$\text{INVOKE}_{S3}$]{}
                  {\Braket{x(y),aEnv,sEnv} \Rightarrow_A \Braket{\{S_1\},aEnv,sEnv[z \mapsto \Braket{S_2,s}]}}
                  \\
					        &{sEnv(x) = \Braket{\{S_1\},z}, sEnv(y) = \Braket{S_2,s}}
	\end{align*}
\end{frame}
{'fraction_non_alphanumeric': 0.2246888664648503, 'fraction_numerical': 0.009754456777665657, 'mean_word_length': 2.5168539325842696, 'pattern_counts': {'":': 0, '<': 73, '<?xml version=': 0, '>': 73, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4417608', 'n_tokens_mistral': 2696, 'n_tokens_neox': 2512, 'n_words': 380}