Commits

Even Wiik Thomassen  committed bb07063

Meh

  • Participants
  • Parent commits e6a8865

Comments (0)

Files changed (2)

File acronyms.tex

 
 % Kepp in alphabetic order I think
 \newacronym{abi}{ABI}{application binary interface}
+\newacronym{api}{API}{application programming interface}
 \newacronym{apc}{APC}{Advanced PHP Cache}
 \newacronym{ast}{AST}{abstract syntax tree}
 \newacronym{clr}{CLR}{Common Language Runtime}
         languages.
 \end{enumerate}
 The second goal was not realized as Haskell's syntax and semantics have never
-been formally described. The plan for the last goal was to base Haskell on,
-OL, an existing functional language. This plan was abandoned early. Haskell has
-successfully achieved the majority of the remaining goals, although some
-features such as type classes were added without regard for goal
+been formally described. The plan for the last goal was to base Haskell on an
+an existing functional language called OL. This plan was abandoned early.
+Haskell has successfully achieved the majority of the remaining goals, although
+some features such as type classes were added without regard for goal
 five~\cite{hudak}.
 
 As Haskell is designed by committee, it is a rather big language, and there are
 		compiled Haskell code, such as garbage collection, threads, and
 		exceptions.~\cite{ghc}
 \end{itemize}
-The compiler is also divided into three parts:
+The compiler itself is also divided into three parts:
 \begin{itemize}
     \item The compilation manager, which manages compilation of multiple
         Haskell files, the order of compilation and check if any modules
         does not require recompilation.
     \item The \gls{hsc}, which compiles a single Haskell file to machine code,
         depending on the selected backend.
-    \item The pipeline, which .~\cite{ghc}
+    \item The pipeline, which handles Haskell code that interface with or
+        require external programs. For example if a source file require
+        preprocessing with a C preprocessor.~\cite{ghc}
 \end{itemize}
 The compiler is also a library, called \gls{ghc} \gls{api}, which provides
-access to interal parts of \gls{ghc} and allows working with Haskell code.
+access to internal parts of \gls{ghc} and allows working with Haskell code.
 
-TODO: compiling haskell code
+\subsection{Compiling Haskell}
+Compiling Haskell source files start with parsing with a fully functional
+parser, which produces an \gls{ast} where identifiers are simple strings.
 
-\subsection{Optimizations performed by GHC}
+
+\subsection{Optimization's}
 
 \subsection{Core intermediate representation}
 
-\subsection{GHC's External Core representation}
+\subsection{External Core representation}
 Either here or its own chapter?