Mercurial > hg > Papers > 2012 > aplas
changeset 8:a9c4eb2b29b8
modify
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 12 Jun 2012 12:38:48 +0900 (2012-06-12) |
parents | bcacfe595c2a |
children | 2016fd4e0191 |
files | paper/aplas2012.tex |
diffstat | 1 files changed, 33 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/aplas2012.tex Tue Jun 12 01:03:27 2012 +0900 +++ b/paper/aplas2012.tex Tue Jun 12 12:38:48 2012 +0900 @@ -39,15 +39,46 @@ \subsection{subsection} -\subsubsection{subsubsection} +\subsubsection{sub-subsection} \paragraph{paragraph} \section{Continuation based C} +\begin{figure}[htpb] + \begin{center} +\scalebox{0.35}{\includegraphics{figure/codesegment.pdf}} + \end{center} + \caption{} + \label{fig:codesegment} +\end{figure} + + + \section{recursive type syntax} -We implemeted \verb+__rectype+ syntax on GCC. +We implemented \verb+__rectype+ syntax in GCC. \verb+__rectype+ syntax is declare a recursive type. +This example is using \verb+__rectype+. + +\begin{lstlisting} +__code csA( __rectype *p) { + goto p(csB); +} +\end{lstlisting} + +*p represent pointer of csA at this example. +p's argument type is same csA that function pointer. +It is the same as the following. + +\begin{lstlisting} +void csA( void (*p)(void*)) { + p(csB); +} +\end{lstlisting} + +Type checking can be performed if this declaration. + + \subsection{What is recursive type} Recursive type is @@ -63,12 +94,6 @@ This example is rectype syntax: -\begin{lstlisting} -__code csA( __rectype *p) { - goto p(csB); -} -\end{lstlisting} - \begin{figure}[htpb] \begin{minipage}{0.5\hsize}