Context Navigation


Changeset 104


Ignore:
Timestamp:
Dec 6, 2007, 3:03:17 PM (18 years ago)
Author:
neil.c.c.brown
Message:

A few last minute tweaks to the presentation

File:
1 edited

Legend:

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

    r103 r104
    361361\frametitle{Control-flow graphs}
    362362\begin{itemize}
    363 \item We need to analyse the (削除) AST (削除ここまで) for various purposes
    363 \item We need to analyse the (追記) program (追記ここまで) for various purposes
    364364 \begin{itemize}
    365365 \item Parallel usage checking
    413413\column{.35\textwidth}
    414414\begin{itemize}
    415 \item (削除) Compose ``paths'' (削除ここまで) as we descend the tree
    415 \item (追記) Wrap modifier functions (追記ここまで) as we descend the tree
    416416\end{itemize}
    417417\column{.65\textwidth}
    430430\end{itemize}
    431431\begin{lstlisting}
    432buildNode (While e s) (削除) route (削除ここまで)
    433 = do addNode (label e) (append (削除) route (削除ここまで)
    432buildNode (While e s) (追記) modifier (追記ここまで)
    433 = do addNode (label e) (append (追記) modifier (追記ここまで)
    434434 -- (Expr -> m Expr) -> (Statement -> m Statement)
    435435 (\f (While e s) -> do {e' <- f e ; return (While e' s)}))
    436 buildNode p (append (削除) route (削除ここまで)
    436 buildNode p (append (追記) modifier (追記ここまで)
    437437 -- (Statement -> m Statement) -> (Statement -> m Statement)
    438 (\f (While e s) -> f s >>= (削除) (削除ここまで)While e))
    438 (\f (While e s) -> f s >>= (追記) return . (追記ここまで)While e))
    439439 ...
    440440\end{lstlisting}
    448448\end{itemize}
    449449\begin{lstlisting}
    450buildNode (While e s) (削除) route (削除ここまで)
    451 = do addNode (label e) (change1of2 (削除) route (削除ここまで) While)
    452 buildNode s (change2of2 (削除) route (削除ここまで) While)
    450buildNode (While e s) (追記) modifier (追記ここまで)
    451 = do addNode (label e) (change1of2 (追記) modifier (追記ここまで) While)
    452 buildNode s (change2of2 (追記) modifier (追記ここまで) While)
    453453 ...
    454change1of2 (削除) route con f = append route (削除ここまで) (modify2 con f return)
    455change2of2 (削除) route con f = append route (削除ここまで) (modify2 con return f)
    454change1of2 (追記) modifier con f = append modifier (追記ここまで) (modify2 con f return)
    455change2of2 (追記) modifier con f = append modifier (追記ここまで) (modify2 con return f)
    456456
    457457modify2 :: Monad m =>
    506506\begin{itemize}
    507507 \item Compiler must detect and disallow unsafe parallel usage of objects
    508(追記) \item E.g. enforce CREW; Concurrent-Read, Exclusive-Write (追記ここまで)
    508509 \item Annotate AST/CFG nodes with objects used
    509510 \begin{itemize}
    550551\begin{frame}[fragile]
    551552\frametitle{Why compile to C/C++?}
    553(追記) \begin{itemize} (追記ここまで)
    554(追記) \item Want to support multiple platforms (追記ここまで)
    555(追記) \begin{itemize} (追記ここまで)
    556(追記) \item IA32, x86-64, PowerPC, Cell, ARM\ldots (追記ここまで)
    557(追記) \item Writing code generators is boring! (追記ここまで)
    558(追記) \end{itemize} (追記ここまで)
    559(追記) \item For C, use CCSP via the CIF interface (追記ここまで)
    560(追記) \item For C++, use C++CSP (追記ここまで)
    561(追記) \item Existing compilers are very mature and generate good code (追記ここまで)
    562(追記) \end{itemize} (追記ここまで)
    563(追記) \end{frame} (追記ここまで)
    564(追記) (追記ここまで)
    565(追記) \begin{frame} (追記ここまで)
    566(追記) \frametitle{Generating code} (追記ここまで)
    552567\begin{columns}
    553568\column{.4\textwidth}
    561576\end{columns}
    562577\begin{itemize}
    563(削除) \item Want to support multiple platforms (削除ここまで)
    564(削除) \begin{itemize} (削除ここまで)
    565(削除) \item IA32, x86-64, PowerPC, Cell, ARM\ldots (削除ここまで)
    566(削除) \item Writing code generators is boring! (削除ここまで)
    567(削除) \end{itemize} (削除ここまで)
    568(削除) \item Existing compilers are very mature and generate good code (削除ここまで)
    569(削除) \end{itemize} (削除ここまで)
    570(削除) \end{frame} (削除ここまで)
    571(削除) (削除ここまで)
    572(削除) \begin{frame} (削除ここまで)
    573(削除) \frametitle{Generating code} (削除ここまで)
    574(削除) \begin{itemize} (削除ここまで)
    575578 \item Generate idiomatic code -- as a human would
    576579 \begin{itemize}
    577580 \item That's what compilers are designed to handle
    578581 \end{itemize}
    579(削除) \item For C, use CCSP via the CIF interface (削除ここまで)
    580(削除) \item For C++, use C++CSP (削除ここまで)
    581582 \item Result: Tock's output is $\approx8ドルx faster than tranx86's for numeric code
    582583\end{itemize}
    650651 \item Can't tell directly, because we're not doing the code generation
    651652 \item Could use a size that's ``always big enough'' -- but that's inefficient
    652(削除) \begin{itemize} (削除ここまで)
    653(削除) \item C++CSP has to do this (削除ここまで)
    654(削除) \end{itemize} (削除ここまで)
    655653 \end{itemize}
    656654\end{itemize}
Note: See TracChangeset for help on using the changeset viewer.

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