Commit d5dc8bc2 authored by Achilles Benetopoulos's avatar Achilles Benetopoulos

Add annotations table

parent a55aba05
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
\usepackage[svgnames]{xcolor} \usepackage[svgnames]{xcolor}
\usepackage{color} \usepackage{color}
\usepackage{caption} \usepackage{caption}
\usepackage{array}
\DeclareCaptionLabelFormat{algocaption}{Algorithm} % defines a new caption label as Algorithm x.y \DeclareCaptionLabelFormat{algocaption}{Algorithm} % defines a new caption label as Algorithm x.y
\lstnewenvironment{algorithm}[1][] %defines the algorithm listing environment \lstnewenvironment{algorithm}[1][] %defines the algorithm listing environment
...@@ -718,7 +719,8 @@ biz() -> ...@@ -718,7 +719,8 @@ biz() ->
τύπους. τύπους.
\end{itemize} \end{itemize}
Για μια ανάλυση του τρόπου με τον οποίο δουλεύει ο Dialyzer, ο αναγνώστης παραπέμπεται στα []. Για μια ανάλυση του τρόπου με τον οποίο δουλεύει ο Dialyzer, ο αναγνώστης παραπέμπεται στα \cite{dialyzer-reference-manual}
και \cite{practical-success-typings} \cite{lsp-scala}.
Χρησιμοποιούμε μια έκδοση του Dialyzer βασισμένη σε αυτήν που περιέχεται στην έκδοση 19.0 του Erlang/OTP, ελαφρώς Χρησιμοποιούμε μια έκδοση του Dialyzer βασισμένη σε αυτήν που περιέχεται στην έκδοση 19.0 του Erlang/OTP, ελαφρώς
τροποποιημένη για τους σκοπούς μας, ώστε να διατηρεί την πληροφορία που σχετίζεται με τους τύπους δεδομένων των τροποποιημένη για τους σκοπούς μας, ώστε να διατηρεί την πληροφορία που σχετίζεται με τους τύπους δεδομένων των
...@@ -777,6 +779,34 @@ session type της μιας στο session type της άλλης θα οδηγ ...@@ -777,6 +779,34 @@ session type της μιας στο session type της άλλης θα οδηγ
οποία μπορεί να περιγράψει τον αναμενόμενο τύπο συνεδρίας για μια συνάρτηση, όπως φαίνεται στο σχήμα 5.3. Τα annotations οποία μπορεί να περιγράψει τον αναμενόμενο τύπο συνεδρίας για μια συνάρτηση, όπως φαίνεται στο σχήμα 5.3. Τα annotations
αυτά αντιστοιχούν στις συναρτήσεις $server/0$, $simple\_client/1$ και $recursive\_client/2$ του σχήματος 5.1. αυτά αντιστοιχούν στις συναρτήσεις $server/0$, $simple\_client/1$ και $recursive\_client/2$ του σχήματος 5.1.
\begin{center}
\begin{tabular}{ | m{3cm} | m{3cm} | m{3cm} | m{3cm} | }
\hline
\multicolumn{4}{|c|}{$sestype$ Annotations} \\
\hline
Action Tag& First Argument & Second Argument &Explanation\\
\hline
?f\_rec\_tag(T, E) & $T$: fix reference στην αναδρομική συν/ση & $E$: session type της συν/σης& Περιγράφει τον
τύπο συνεδρίας μιας αναδρομικής συνάρτησης\\
?sa\_recv\_tag(DT1, DT2) & $DT1$: τύπος δεδομένων του σώματος του receive clause & $DT2$: τύπος δεδομένων που
θα κάνει match με το receive clause & Session Type ενός receive clause \\
?sa\_send\_tag(P, DT) & $P$: pid reference του παραλήπτη & $DT$: τύπος δεδομένων του μηνύματος που αποστέλεται
& Session Type ενός send clause \\
?sa\_offer\_tag(L) & $L$: λίστα με session types των receive clauses & - & Session Type ενός multi-branch receive statement \\
?sa\_choice\_tag(L) & $L$: λίστα με session types των send clauses & - & Session Type ενός branching execution όπου
το πρώτο session action κάθε branch είναι ένα send clause \\
?sa\_rec\_tag(T) & $T$: reference σε μια αναδρομική συν/ση & - & Session Type αναδρομικής κλήσης συν/σης \\
\hline
\end{tabular}
\end{center}
%%\begin{center} %%\begin{center}
%% \begin{tabular}{||c c c c||} %% \begin{tabular}{||c c c c||}
%% \hline %% \hline
...@@ -795,7 +825,6 @@ session type της μιας στο session type της άλλης θα οδηγ ...@@ -795,7 +825,6 @@ session type της μιας στο session type της άλλης θα οδηγ
%% \end{tabular} %% \end{tabular}
%%\end{center} %%\end{center}
%% TODO add data types to macros
\begin{lstlisting}[language=Erlang, caption=-sestype() annotation, basicstyle=\tiny] \begin{lstlisting}[language=Erlang, caption=-sestype() annotation, basicstyle=\tiny]
-sestype({{server, 0}, -sestype({{server, 0},
?f_rec_tag(1, [?sa_offer_tag([{?dt_any_tag, [?sa_recv_tag(?dt_any_tag, ?f_rec_tag(1, [?sa_offer_tag([{?dt_any_tag, [?sa_recv_tag(?dt_any_tag,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment