Context Navigation


Changeset 13


Ignore:
Timestamp:
Nov 22, 2007, 7:23:57 PM (18 years ago)
Author:
neil.c.c.brown
Message:

Lots of small spelling/grammar/formatting corrections.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • docs/trunk/200711-tock-seminars/200711-tock-slides.tex

    r12 r13
    132132
    133133\begin{frame}
    134\frametitle{Why \occampi(削除) ' (削除ここまで)s interesting}
    134\frametitle{Why \occampi(追記) i (追記ここまで)s interesting}
    135135\begin{itemize}
    136136 \item Parallelism!
    137137 \item Indentation-based syntax
    138138 \item Parser needs lots of lookahead
    139 \item Compile(削除) r (削除ここまで)-time usage checks
    139 \item Compile(追記) (追記ここまで)-time usage checks
    140140 \begin{itemize}
    141141 \item Parallel safety
    142142 \item Definedness
    143143 \end{itemize}
    144 \item Abb(削除) (削除ここまで)eviations
    144 \item Abb(追記) r (追記ここまで)eviations
    145145\end{itemize}
    146146\end{frame}
    177177\begin{itemize}
    178178 \item 42 -- Matt, Christian and Damian's experimental Scheme
    179 \occam(削除) (削除ここまで)compiler
    179 \occam(追記) ~ (追記ここまで)compiler
    180180 \begin{itemize}
    181181 \item Based on ideas from nanopass course
    227227\frametitle{Representing the AST}
    228228\begin{itemize}
    229 \item Scheme(削除) ' (削除ここまで)s dynamically-typed\ldots
    229 \item Scheme(追記) i (追記ここまで)s dynamically-typed\ldots
    230230 \item First attempt had just one data type
    231231 \item Easy to write code to pattern-match over
    368368 \item In particular, higher-order types are awkward to work with
    369369 \begin{itemize}
    370 \item e.g. (削除) |Rep a = One a || Many [Rep a]| (削除ここまで)
    371 \end{itemize}(削除) (削除ここまで)
    372 \item (削除) W (削除ここまで)e haven't found a good workaround!
    370 \item e.g. (追記) \lstinline#Rep a = One a | Many [Rep a]# (追記ここまで)
    371 \end{itemize}(追記) (追記ここまで)
    372 \item (追記) Problem -- w (追記ここまで)e haven't found a good workaround!
    373373 \item As a result, the AST types aren't quite as neat as they should be\ldots
    374374\end{itemize}
    411411 \item Generates random input data
    412412 \item Checks that properties hold on the output
    413 \item Best for tests where (削除) the (削除ここまで)properties of the output can be
    413 \item Best for tests where (追記) (追記ここまで)properties of the output can be
    414414 simply expressed
    415415 \end{itemize}
    444444 \item e.g. is this variable the same as that variable?
    445445 \end{itemize}
    446 \item Want to avoid having (削除) to (削除ここまで)duplicate code
    446 \item Want to avoid having (追記) (追記ここまで)duplicate code
    447447 \end{itemize}
    448448\end{itemize}
    589589\end{lstlisting}
    590590\begin{itemize}
    591\item All (削除) (削除ここまで)items with the same name must match
    591\item All (追記) |Named| (追記ここまで)items with the same name must match
    592592\end{itemize}
    593593\end{frame}
    668668 \item Functions are trickier
    669669 \end{itemize}
    670 \item Patterns are type-checked at run(削除) time (削除ここまで)
    670 \item Patterns are type-checked at run(追記) -time (i.e. test-time) (追記ここまで)
    671671\end{itemize}
    672672\end{frame}
    802802 \item Productions are monadic operations that return the thing they parsed
    803803 \begin{itemize}
    804 \item (削除) |reserved :: String -> Parser String| (削除ここまで)
    804 \item (追記) \lstinline#reserved :: String -> Parser String# (追記ここまで)
    805805 \end{itemize}
    806806 \item Operators combine productions into bigger productions
    807807 \begin{itemize}
    808 \item (削除) |<||> :: Parser a -> Parser a -> Parser a| (削除ここまで) -- choice
    808 \item (追記) \lstinline#<|> :: Parser a -> Parser a -> Parser a# (追記ここまで) -- choice
    809809 \end{itemize}
    810810 \end{itemize}
    822822 \item Can pass state around for awkward languages
    823823 \begin{itemize}
    824 \item \occam(削除) (削除ここまで)parser uses this to track types of symbols
    824 \item \occam(追記) ~ (追記ここまで)parser uses this to track types of symbols
    825825 \begin{itemize}
    826826 \item e.g. "expected integer constant"
    894894\frametitle{Usage checking}
    895895\begin{itemize}
    896 \item As in other \occam(削除) (削除ここまで)compilers, array indexing makes usage checking hard
    896 \item As in other \occam(追記) ~ (追記ここまで)compilers, array indexing makes usage checking hard
    897897 \item For now, this problem has been skipped
    898898\end{itemize}
    939939 \item Must support recursion
    940940 \begin{itemize}
    941 \item e.g. |genWhile -> genProcess -> cppGenCall|
    941 \item e.g. |genWhile| -> |genProcess| -> |cppGenCall|
    942 %Note: don't want the above -> arrows to be highlighted as
    943 %if they were Haskell code!
    942944 \end{itemize}
    943945 \item Use "virtual function tables"
    10001002 \item Can't tell directly, because we're not doing the code generation
    10011003 \item Could use a size that's ``always big enough'' -- but that's inefficient
    1004(追記) \begin{itemize} (追記ここまで)
    1005(追記) \item C++CSP has to do this (追記ここまで)
    1006(追記) \end{itemize} (追記ここまで)
    10021007 \end{itemize}
    10031008\end{itemize}
    10161021 \begin{itemize}
    10171022 \item Recursion, alloca, exceptions, virtual functions\ldots
    1018 \item But we can be careful not to generate these!
    1023 \item But we can be careful not to generate these (for C)!
    1024 %Note: we can't avoid exceptions or virtual functions in C++,
    1025 %because they are part of C++CSP itself!
    10191026 \end{itemize}
    10201027\end{itemize}
    10251032\section{Language features}
    10261033
    1034(追記) %TODO define a syntax-highlighting mode for occam, and change the occam (追記ここまで)
    1035(追記) %code fragments to use it (追記ここまで)
    1036(追記) (追記ここまで)
    10271037\begin{frame}[fragile]
    10281038\frametitle{Abbreviations}
    10291039\begin{itemize}
    1030 \item \occam(削除) (削除ここまで)doesn't have pointers
    1040 \item \occam(追記) ~ (追記ここまで)doesn't have pointers
    10311041 \item Instead, it has a very powerful reference (``abbreviation'') system
    10321042\end{itemize}
    10791089 \begin{itemize}
    10801090 \item Can't just use the STL vector class -- no slicing!
    1081 \item Wrote our own class to provide the \occam(削除) (削除ここまで)array semantics
    1091 \item Wrote our own class to provide the \occam(追記) ~ (追記ここまで)array semantics
    10821092 \end{itemize}
    10831093\end{itemize}
Note: See TracChangeset for help on using the changeset viewer.

AltStyle によって変換されたページ (->オリジナル) /