mathias lehnfeld master thesis latex files added
authorMathias Lehnfeld <s1210629013@students.fh-hagenberg.at>
Wed, 12 Mar 2014 17:43:22 +0100
changeset 55404ab97437e021a
parent 55403 d2d4125a92ad
child 55405 f6f755053660
child 55438 2d142935b3fc
mathias lehnfeld master thesis latex files added
doc-isac/mlehnfeld/master/thesis/abstract.tex
doc-isac/mlehnfeld/master/thesis/appendix_a.tex
doc-isac/mlehnfeld/master/thesis/conclusion.tex
doc-isac/mlehnfeld/master/thesis/declaration.tex
doc-isac/mlehnfeld/master/thesis/fundamentals.tex
doc-isac/mlehnfeld/master/thesis/funproglangs_mcsystems.tex
doc-isac/mlehnfeld/master/thesis/hgb.sty
doc-isac/mlehnfeld/master/thesis/hgbbib.sty
doc-isac/mlehnfeld/master/thesis/hgbheadings.sty
doc-isac/mlehnfeld/master/thesis/hgbthesis.cls
doc-isac/mlehnfeld/master/thesis/images/chip-speeds.png
doc-isac/mlehnfeld/master/thesis/introduction.tex
doc-isac/mlehnfeld/master/thesis/isabelle_isac.tex
doc-isac/mlehnfeld/master/thesis/kurzfassung.tex
doc-isac/mlehnfeld/master/thesis/literature.bib
doc-isac/mlehnfeld/master/thesis/messbox.tex
doc-isac/mlehnfeld/master/thesis/preface.tex
doc-isac/mlehnfeld/master/thesis/thesis.tex
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/doc-isac/mlehnfeld/master/thesis/abstract.tex	Wed Mar 12 17:43:22 2014 +0100
     1.3 @@ -0,0 +1,4 @@
     1.4 +\chapter{Abstract}
     1.5 +\label{cha:abstract}
     1.6 +
     1.7 +english abstract here
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/doc-isac/mlehnfeld/master/thesis/conclusion.tex	Wed Mar 12 17:43:22 2014 +0100
     2.3 @@ -0,0 +1,14 @@
     2.4 +\chapter{Conclusion and Futurework}
     2.5 +\label{cha:conclusion}
     2.6 +
     2.7 +\section{Project Outcomes}
     2.8 +text
     2.9 +
    2.10 +
    2.11 +\section{Conclusion}
    2.12 +text
    2.13 +
    2.14 +
    2.15 +\section{Futurework}
    2.16 +text
    2.17 +
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/doc-isac/mlehnfeld/master/thesis/fundamentals.tex	Wed Mar 12 17:43:22 2014 +0100
     3.3 @@ -0,0 +1,54 @@
     3.4 +\chapter{Fundamentals}
     3.5 +\label{cha:fundamentals}
     3.6 +
     3.7 +\section{Functional Programming}
     3.8 +\label{sec:funprog}
     3.9 +about 2 pages\\
    3.10 +NOTES:\\
    3.11 +declarative programming, mathematical notation: close to formal specification -> prototyping\\
    3.12 +clean\_parallel\_graph\_rewriting.pdf: lambda calculus vs. graph rewriting systems.\\
    3.13 +impure vs. pure\\
    3.14 +monads vs. linear type systems\\
    3.15 +Hindley–Milner type inference
    3.16 +
    3.17 +\subsection{History}
    3.18 +text
    3.19 +
    3.20 +\subsection{Common Features}
    3.21 +text
    3.22 +
    3.23 +
    3.24 +\section{Computer Theorem Proving}
    3.25 +\label{sec:ctp}
    3.26 +about 1 page
    3.27 +
    3.28 +
    3.29 +\section{Parallelism}
    3.30 +\label{sec:parallelism}
    3.31 +
    3.32 +\subsection{Gain, Cost and Limits}
    3.33 +about 1 page
    3.34 +
    3.35 +\subsection{Multicore Processors}
    3.36 +about 1 page\\
    3.37 +NOTES:\\
    3.38 +hyper threading
    3.39 +
    3.40 +\subsection{Operating Systems}
    3.41 +about 1 page\\
    3.42 +NOTES:\\
    3.43 +I/O, streams!
    3.44 +
    3.45 +\subsection{Functional Programming}
    3.46 +about 1 page
    3.47 +
    3.48 +
    3.49 +\section{Concurrency and Responsiveness}
    3.50 +\label{sec:concurresp}
    3.51 +about 1/2 page
    3.52 +
    3.53 +
    3.54 +\section{Refactoring Functional Programs}
    3.55 +\label{sec:refacfunprogs}
    3.56 +about 2 pages
    3.57 +
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/doc-isac/mlehnfeld/master/thesis/funproglangs_mcsystems.tex	Wed Mar 12 17:43:22 2014 +0100
     4.3 @@ -0,0 +1,51 @@
     4.4 +\chapter{Functional Programming Languages and Multicore Systems}
     4.5 +\label{cha:funproglangs_mcsystems}
     4.6 +
     4.7 +\section{Implicit Parallelism}
     4.8 +\label{sec:implicit_parallelism}
     4.9 +about half page
    4.10 +
    4.11 +
    4.12 +\section{Data Parallelism}
    4.13 +\label{sec:data_parallelism}
    4.14 +about 1 page
    4.15 +
    4.16 +
    4.17 +\section{Algorithmic Skeletons}
    4.18 +\label{sec:algoskel}
    4.19 +about 3 pages
    4.20 +
    4.21 +
    4.22 +\section{Futures and Promises}
    4.23 +\label{sec:futurespro}
    4.24 +about 2 pages
    4.25 +
    4.26 +
    4.27 +\section{Concurrent Functional Programming}
    4.28 +\label{sec:concurrentfunprog}
    4.29 +
    4.30 +\subsection{Software Transactional Memory}
    4.31 +about 2 pages
    4.32 +
    4.33 +\subsection{The Actor Model}
    4.34 +about 3 pages
    4.35 +
    4.36 +\subsection{Communication Sequential Processes}
    4.37 +about 1 page
    4.38 +
    4.39 +
    4.40 +\section{Implications on Software Design}
    4.41 +\label{sec:implications_swdesign}
    4.42 +about 3 pages
    4.43 +
    4.44 +
    4.45 +\section{Refactoring Functional Programs for Multicore Systems}
    4.46 +\label{sec:refac_funprogs4mcsystems}
    4.47 +
    4.48 +\subsection{Previous Work}
    4.49 +about 4 pages
    4.50 +\subsubsection{HaRe and ParaForming in Haskell}
    4.51 +
    4.52 +\subsection{Proposed Futurework}
    4.53 +about 1 page
    4.54 +
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/doc-isac/mlehnfeld/master/thesis/hgb.sty	Wed Mar 12 17:43:22 2014 +0100
     5.3 @@ -0,0 +1,590 @@
     5.4 +%% hgb.sty
     5.5 +%% Autor: Wilhelm Burger (wilhelm.burger@fh-hagenberg.at)
     5.6 +%% Diese Datei ist Teil des hagenberg-Package zur Erstellung von 
     5.7 +%% Bachelor- und Diplomarbeiten.
     5.8 +
     5.9 +\NeedsTeXFormat{LaTeX2e}
    5.10 +\newcommand{\hgbDate}{2013/02/19}	%Versionsdatum
    5.11 +\ProvidesPackage{hgb}[\hgbDate]
    5.12 +
    5.13 +% options german/english are passed from the class file
    5.14 +\DeclareOption{english}{\providecommand{\hgb@MainLanguage}{english}}
    5.15 +\DeclareOption{german}{\providecommand{\hgb@MainLanguage}{german}}
    5.16 +\ProcessOptions\relax
    5.17 +
    5.18 +
    5.19 +%% ------ Shadowing conflicting symbols from other packages -------
    5.20 +
    5.21 +% Macros for resolving name conflicts (from symbols.tex by Scott Pakin):
    5.22 +% There are a number of symbols (e.g., \Square) that are defined by      %
    5.23 +% multiple packages.  In order to typeset all the variants in this       %
    5.24 +% document, we have to give glyph a unique name.  To do that, we define  %
    5.25 +% \savesymbol{XXX}, which renames a symbol from \XXX to \origXXX, and    %
    5.26 +% \restoresymbol{yyy}{XXX}, which renames \origXXX back to \XXX and     %
    5.27 +% defines a new command, \yyyXXX, which corresponds to the most recently %
    5.28 +% loaded version of \XXX.   
    5.29 +% Wilbur: modified to use "orig@" instead of "orig" (not visible to users)
    5.30 +
    5.31 +% Save a symbol that we know is going to get redefined.
    5.32 +\def\@savesymbol#1{%
    5.33 +  \expandafter\let\expandafter\origsym\expandafter=\csname#1\endcsname
    5.34 +  \expandafter\let\csname orig@#1\endcsname=\origsym
    5.35 +  \expandafter\let\csname#1\endcsname=\relax
    5.36 +}
    5.37 +
    5.38 +% Restore a previously saved symbol, and rename the current one.
    5.39 +\def\@restoresymbol#1#2{%
    5.40 +  \expandafter\let\expandafter\newsym\expandafter=\csname#2\endcsname
    5.41 +  \expandafter\global\expandafter\let\csname#1#2\endcsname=\newsym
    5.42 +  \expandafter\let\expandafter\origsym\expandafter=\csname orig@#2\endcsname
    5.43 +  \expandafter\global\expandafter\let\csname#2\endcsname=\origsym
    5.44 +}
    5.45 +
    5.46 +% example:
    5.47 +%\@savesymbol{EUR}	% shadows \EUR command defined in eurosym-Package
    5.48 +%\RequirePackage{marvosym} % package defines \EUR again
    5.49 +%\@restoresymbol{eurosim}{EUR}	%original \EUR is now available as \eurosimEUR
    5.50 +
    5.51 +%% ------------------ Required Packages ----------------------
    5.52 +
    5.53 +\RequirePackage{cmap}								%utf8-change
    5.54 +%\RequirePackage[latin1]{inputenc} 	%utf8-change
    5.55 +\RequirePackage[utf8]{inputenc} 		%utf8-change
    5.56 +% see http://tex.stackexchange.com/questions/1390/latin-modern-vs-cm-super
    5.57 +\RequirePackage{lmodern}						%utf8-change, Latin Modern Fonts
    5.58 +
    5.59 +% T1-Fonts zur besseren Silbentrennung bei Umlauten etc.,
    5.60 +% verwendet automatisch die cm-super Type1 Postscript Schriften 
    5.61 +% (in MikTeX ab 2.4 installiert):
    5.62 +\RequirePackage[T1]{fontenc}
    5.63 +
    5.64 +\RequirePackage{ifthen}
    5.65 +\RequirePackage[english,german,ngerman]{babel}
    5.66 +\RequirePackage{datetime}
    5.67 +
    5.68 +\RequirePackage{eurosym} % provides \euro - conflict with marvosym on \EUR!
    5.69 +%\RequirePackage{marvosym} % provides \EUR and other unusual symbols!
    5.70 +%\@ifundefined{euro}%
    5.71 +%   {\newcommand*{\euro}{\EUR}}%
    5.72 +%	 {}
    5.73 +
    5.74 +\@ifundefined{hgb@MainLanguage}%
    5.75 +   {\newcommand*{\hgb@MainLanguage}{german}}%
    5.76 +	 {}
    5.77 +
    5.78 +% Hauptsprache einstellen (babel):
    5.79 +\ifthenelse{\equal{\hgb@MainLanguage}{german}}%
    5.80 +	{\main@language{ngerman}}{}
    5.81 +\ifthenelse{\equal{\hgb@MainLanguage}{english}}%
    5.82 +	{\main@language{english}}{}
    5.83 +	
    5.84 +%\RequirePackage[fixlanguage]{babelbib} %removed for biblatex
    5.85 +
    5.86 +%\RequirePackage[dvips]{graphicx} % zur Einbindung von EPS-Grafiken, %utf8-change
    5.87 +\RequirePackage{graphicx} 	%utf8-change, no dvips any longer
    5.88 +
    5.89 +\RequirePackage[T1,hyphens,obeyspaces,spaces,lowtilde]{url}
    5.90 +\urlstyle{sf}
    5.91 +
    5.92 +\RequirePackage{verbatim}
    5.93 +\RequirePackage{moreverb}
    5.94 +\def\verbatimtabsize{2\relax}
    5.95 +
    5.96 +%\RequirePackage[noadjust]{cite} % vermeidet zusätzliches Spacing vor [..]
    5.97 +
    5.98 +\RequirePackage{float}
    5.99 +%\floatplacement{figure}{tbp}
   5.100 +%\floatplacement{table}{tbp}
   5.101 +\floatstyle{plain}
   5.102 +
   5.103 +
   5.104 +% Captions mit Fontgroesse "small" und Abstand vom Seitenrand
   5.105 +\RequirePackage[small,bf]{caption}
   5.106 +\setlength{\captionmargin}{5mm}
   5.107 +\setlength{\abovecaptionskip}{10pt}
   5.108 +\setlength{\belowcaptionskip}{10pt}
   5.109 +
   5.110 +%\RequirePackage[small,rm,loose]{subfigure}
   5.111 +%\setlength{\subfigtopskip}{7pt}
   5.112 +%\setlength{\subfigcapskip}{7pt}
   5.113 +%\setlength{\subfigcaptopadj}{0pt} 
   5.114 +%\setlength{\subfigbottomskip}{-3pt}
   5.115 +%\setlength{\subfigcapmargin}{0pt} 
   5.116 +%\setlength{\subfiglabelskip}{0.33em plus 0.07em minus 0.03em}
   5.117 +
   5.118 +\RequirePackage{exscale}
   5.119 +% Skaliert Mathe-Modus Ausgaben in allen Umgebungen richtig.
   5.120 +
   5.121 +\RequirePackage{upquote}
   5.122 +% Setzt "richtige" Quotes in verbatim-Umgebung
   5.123 +
   5.124 +%\RequirePackage{psfrag}	%utf8-change, no psfrag no more
   5.125 +
   5.126 +% AMS-Math für mathematischen Schriftsatz
   5.127 +\RequirePackage{amsmath}
   5.128 +\RequirePackage{amsfonts}
   5.129 +\RequirePackage{amsbsy}
   5.130 +
   5.131 +%% ---------------------- Environments -------------------------
   5.132 +
   5.133 +%\newenvironment{sourcecode}%
   5.134 +%{\begin{minipage}{0.95\textwidth}%
   5.135 +%   \hrule%
   5.136 +%   \bigskip%
   5.137 +%   \begin{footnotesize}%
   5.138 +%}%
   5.139 +%{\end{footnotesize}
   5.140 +%   \hrule\end{minipage}%
   5.141 +%}
   5.142 +
   5.143 +% Umschalten von Deutsch auf Englisch (babel)
   5.144 +\newenvironment{english}%
   5.145 +{\begin{otherlanguage}{english}}%
   5.146 +{\end{otherlanguage}}
   5.147 +
   5.148 +\newenvironment{german}%
   5.149 +{\begin{otherlanguage}{ngerman}}%
   5.150 +{\end{otherlanguage}}
   5.151 +
   5.152 +
   5.153 +%% --------------------- Makros --------------------------------
   5.154 +
   5.155 +%\newcommand{\latex}{{\rm \LaTeX}\xspace} % aus Bequemlichkeit
   5.156 +%\newcommand{\latex}{{\sl La\-TeX}\xspace} % kein schnoerkeliges LaTeX mehr
   5.157 +\newcommand{\latex}{La\-TeX\xspace} % kein schnoerkeliges LaTeX mehr
   5.158 +
   5.159 +%\newcommand{\tex}{{\sl TeX}\xspace}     % kein schnoerkeliges TeX mehr
   5.160 +\newcommand{\tex}{TeX\xspace}     % kein schnoerkeliges TeX mehr
   5.161 +
   5.162 +%\newcommand{\bs}{\char '134} % Backslash character
   5.163 +\newcommand{\bs}{\textbackslash} % Backslash character
   5.164 +
   5.165 +%inline fractions
   5.166 +\def\fraction#1/#2{\leavevmode\kern.0em
   5.167 +  \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
   5.168 +  /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}
   5.169 +
   5.170 +\newcommand\trennstrich{%
   5.171 +  \nopagebreak[4]
   5.172 +  \vskip 1.5ex %
   5.173 +%  \nopagebreak[4]
   5.174 +  \noindent\makebox[\textwidth]{\rule{4cm}{0.4pt}}
   5.175 +  \vskip 2.5ex}
   5.176 +  
   5.177 +%Div. Abkürzungen (in Anlehnung an Jochen Küpper, jkthesis):
   5.178 +%\usepackage{xspace}
   5.179 +\RequirePackage{xspace}
   5.180 +
   5.181 +\newcommand{\bzgl}{bzgl.\@\xspace}
   5.182 +\newcommand{\bzw}{bzw.\@\xspace}
   5.183 +\newcommand{\ca}{ca.\@\xspace}
   5.184 +\newcommand{\dah}{d.\thinspace{}h.\@\xspace}
   5.185 +\newcommand{\Dah}{D.\thinspace{}h.\@\xspace}
   5.186 +\newcommand{\ds}{d.\thinspace{}sind\@\xspace}
   5.187 +\newcommand{\evtl}{evtl.\@\xspace}
   5.188 +\newcommand{\ia}{i.\thinspace{}Allg.\@\xspace}
   5.189 +\newcommand{\sa}{s.\ auch\@\xspace}
   5.190 +\newcommand{\so}{s.\ oben\xspace}
   5.191 +\newcommand{\su}{s.\ unten\@\xspace}
   5.192 +
   5.193 +\newcommand{\ua}{u.\thinspace{}a.\@\xspace}
   5.194 +\newcommand{\Ua}{U.\thinspace{}a.\@\xspace}
   5.195 +\newcommand{\uae}{u.\thinspace{}Ä.\@\xspace}
   5.196 +\newcommand{\usw}{usw.\@\xspace}
   5.197 +\newcommand{\uva}{u.\thinspace{}v.\thinspace{}a.\@\xspace}
   5.198 +\newcommand{\uvm}{u.\thinspace{}v.\thinspace{}m.\@\xspace}
   5.199 +\newcommand{\va}{vor allem\@\xspace}
   5.200 +\newcommand{\vgl}{vgl.\@\xspace}
   5.201 +\newcommand{\zB}{z.\thinspace{}B.\@\xspace}
   5.202 +\newcommand{\ZB}{Zum Beispiel\xspace}
   5.203 +
   5.204 +%Zeichen fuer die reellen, komplexen ... Zahlen (AMS Blackboard)
   5.205 +%\RequirePackage{amsfonts}
   5.206 +%\RequirePackage{amsbsy}
   5.207 +\newcommand{\R}{\ensuremath{\mathbb{R}}}
   5.208 +\newcommand{\Z}{\ensuremath{\mathbb{Z}}}
   5.209 +\newcommand{\N}{\ensuremath{\mathbb{N}}}
   5.210 +%\newcommand{\C}{\mathbb{C}} % utf8-change (problem with T1 encoding)
   5.211 +\newcommand{\Cpx}{\ensuremath{\mathbb{C}}}	% utf8-change
   5.212 +\newcommand{\Q}{\ensuremath{\mathbb{Q}}}
   5.213 +
   5.214 +%Messbox zur Druckkontrolle:
   5.215 +\newcommand{\Messbox}[2]{% Parameters: #1=Breite, #2=Hoehe
   5.216 +\setlength{\unitlength}{1.0mm}%
   5.217 +\begin{picture}(#1,#2)%
   5.218 +\linethickness{0.05mm}%
   5.219 +\put(0,0){\dashbox{0.2}(#1,#2)%
   5.220 +{\parbox{#1mm}{%
   5.221 +\centering\footnotesize 
   5.222 +%{\bf MESSBOX}\\ 
   5.223 +Breite $ = #1 {\rm\ mm}$\\
   5.224 +H\"ohe $ = #2 {\rm\ mm}$
   5.225 +}}}\end{picture}
   5.226 +}
   5.227 +
   5.228 +%% ------------- Einstellungen fuer's Layout --------------
   5.229 +
   5.230 +%\nonfrenchspacing    % erzeugt breitere Abstände zwischen Sätzen
   5.231 +\frenchspacing     	  % erzeugt normale Abstände zwischen Sätzen
   5.232 +%\pagestyle{headings}  % Normale Kopfzeilen
   5.233 +
   5.234 +%% div. Parameter: nur dann ändern, wenn man genau weiss was man tut!
   5.235 +%\setlength{\hoffset}{-1in}
   5.236 +%\setlength{\voffset}{-1in}
   5.237 +%\setlength{\oddsidemargin}{3cm}
   5.238 +%\setlength{\evensidemargin}{2.5cm}
   5.239 +%\setlength{\textwidth}{15.5cm}
   5.240 +%\setlength{\textheight}{22.8cm}
   5.241 +%\setlength{\topmargin}{2.54cm}
   5.242 +%\setlength{\headheight}{1ex}
   5.243 +%\setlength{\headsep}{1cm}
   5.244 +%\parindent0pt
   5.245 +%\parskip1.5ex plus0.5ex minus0.5ex % flexibler Absatzabstand
   5.246 +
   5.247 +% Make float placement easier    
   5.248 +\renewcommand{\floatpagefraction}{.9}  % vorher: .5
   5.249 +\renewcommand{\textfraction}{.01}      % vorher: .2
   5.250 +\renewcommand{\topfraction}{.9}        % vorher: .7
   5.251 +\renewcommand{\bottomfraction}{.7}     % vorher: .3
   5.252 +\setcounter{topnumber}{3}              % vorher: 2
   5.253 +\setcounter{bottomnumber}{2}           % vorher: 1
   5.254 +\setcounter{totalnumber}{5}            % vorher: 3
   5.255 +
   5.256 +%% ------------- Math Stuff --------------
   5.257 +%% Problem mit Satzzeichen im Math-Modus!
   5.258 +%% Verwende Komma (statt Punkt) als Trennzeichen in Dezimalzahlen 
   5.259 +%\DeclareMathSymbol{,}{\mathpunct}{letters}{"3B}
   5.260 +%\DeclareMathSymbol{.}{\mathord}{letters}{"3B}
   5.261 +%\DeclareMathSymbol{\decimal}{\mathord}{letters}{"3A}
   5.262 +
   5.263 +%% ------------- Algorithms Stuff ---------
   5.264 +
   5.265 +% 'algorithm' liefert die Float-Umgebung für Algorithmen (\begin{algorithm}...)
   5.266 +\@ifundefined{chapter}%
   5.267 +  {\RequirePackage[ruled]{algorithm}}%
   5.268 +	{\RequirePackage[ruled,chapter]{algorithm}}
   5.269 +
   5.270 +%\floatname{algorithm}{Algorithmus}
   5.271 +%\DeclareCaptionLabelSeparator{colon}{: } % Anpassung an den standard caption style
   5.272 +\DeclareCaptionStyle{ruled}{labelfont=bf,labelsep=colon} 
   5.273 +
   5.274 +% 'algorithmicx' liefert das Innere der Algorithmen (\begin{algorithmic}[1]...)
   5.275 +\RequirePackage{algorithmicx}
   5.276 +\RequirePackage{algpseudocode}
   5.277 +\algsetlanguage{pseudocode}
   5.278 +\renewcommand{\algorithmicprocedure}{} % use no 'Procedure' keyword
   5.279 +
   5.280 +
   5.281 +
   5.282 +%% ------------- Program environment / code listings --------------
   5.283 +
   5.284 +% define the program float environment:
   5.285 +\@ifundefined{chapter}%
   5.286 +   {\newfloat{program}{tbp}{lop}}%
   5.287 +	 {\newfloat{program}{tbp}{lop}[chapter]}
   5.288 +%\floatname{program}{Programm}
   5.289 +%\floatname{program}{\@ProgramName}
   5.290 +\floatstyle{plain}
   5.291 +\restylefloat*{program}
   5.292 +	
   5.293 +\ifthenelse{\equal{\bbl@main@language}{german} \or \equal{\bbl@main@language}{ngerman}}%
   5.294 +{	\floatname{program}{Programm}
   5.295 +  \floatname{algorithm}{Algorithmus}
   5.296 +}{}
   5.297 +
   5.298 +\ifthenelse{\equal{\bbl@main@language}{english}}%
   5.299 +{	\floatname{program}{Program}
   5.300 +  \floatname{algorithm}{Algorithm}
   5.301 +}{}
   5.302 +
   5.303 +
   5.304 +\RequirePackage{color}
   5.305 +\definecolor{lightgray}{gray}{0.9}
   5.306 +\definecolor{midgray}{gray}{0.5}
   5.307 +\color{black}
   5.308 +\newcommand{\@MissingArg}[1]{\textcolor{red}{#1}}
   5.309 +
   5.310 +%\RequirePackage{listings}			% utf8-change
   5.311 +\RequirePackage{listingsutf8} 	% utf8-change
   5.312 +\lstset{
   5.313 +%language=Java,%
   5.314 +inputencoding=utf8,	% utf8-change
   5.315 +extendedchars=true,	% utf8-change
   5.316 +basicstyle=\ttfamily\footnotesize,%
   5.317 +keywordstyle=,%\ttfamily,%\bfseries,
   5.318 +identifierstyle=,%\sffamily, %\bfseries
   5.319 +commentstyle=\normalfont\itshape,%
   5.320 +stringstyle=\ttfamily,%
   5.321 +showstringspaces=false,%
   5.322 +columns = flexible,% fixed, 
   5.323 +breaklines=true,%
   5.324 +tabsize=2, %
   5.325 +backgroundcolor=\color{lightgray},
   5.326 +xleftmargin=6mm,%
   5.327 +frame=none,
   5.328 +framexleftmargin=6mm,
   5.329 +numbers=left,%
   5.330 +numbersep=5pt,%
   5.331 +numberstyle=\normalfont\scriptsize,%
   5.332 +stepnumber=1,%
   5.333 +numberfirstline=true,%
   5.334 +numberblanklines=true,%
   5.335 +texcl=true,%		%important: read program comments as Latex content
   5.336 +mathescape=false,	%set false by default?
   5.337 +upquote=true,%
   5.338 +keepspaces=true,%
   5.339 +}
   5.340 +
   5.341 +\lstset{literate=% to allow Umlauts etc. in listed code % utf8-change
   5.342 +{Ö}{{\"O}}1
   5.343 +{Ä}{{\"A}}1
   5.344 +{Ü}{{\"U}}1
   5.345 +{ß}{{\ss}}2
   5.346 +{ü}{{\"u}}1
   5.347 +{ä}{{\"a}}1
   5.348 +{ö}{{\"o}}1
   5.349 +}
   5.350 +
   5.351 +\lstnewenvironment{JavaCode}[1][]	% code environment for Java 
   5.352 +{\lstset{%
   5.353 +	language=Java,
   5.354 +	escapeinside={/+}{+/},% makes "/+" and "+/" available for Latex escapes (labels etc.)
   5.355 +	#1}}
   5.356 +{}
   5.357 +
   5.358 +\lstnewenvironment{CCode}[1][]	% code environment for C (ANSI)
   5.359 +{\lstset{%
   5.360 +	language=[ANSI]C,
   5.361 +	escapeinside={/+}{+/},% makes "/+" and "+/" available for Latex escapes (labels etc.)
   5.362 +	#1}}
   5.363 +{}
   5.364 +
   5.365 +\lstnewenvironment{CppCode}[1][]	% code environment for C++ (ISO)
   5.366 +{\lstset{%
   5.367 +	language=[ISO]C++,
   5.368 +	escapeinside={/+}{+/},% makes "/+" and "+/" available for Latex escapes (labels etc.)
   5.369 +	#1}}
   5.370 +{}
   5.371 +
   5.372 +\lstnewenvironment{PhpCode}[1][]
   5.373 +{\lstset{%
   5.374 +  language=PHP,
   5.375 +%  mathescape=false,
   5.376 +  escapeinside={/+}{+/},
   5.377 +  #1}}%
   5.378 +{}
   5.379 +
   5.380 +\lstnewenvironment{HtmlCode}[1][]
   5.381 +{\lstset{%
   5.382 +  language=HTML,
   5.383 +%  mathescape=false,
   5.384 +  escapeinside={/+}{+/},
   5.385 +  #1}}%
   5.386 +{}
   5.387 +
   5.388 +\lstdefinelanguage{CSS}
   5.389 +{	morekeywords={color,background,margin,padding,font,weight,display,position,top,%
   5.390 +			left,right,bottom,list,style,border,size,white,space,min,width},
   5.391 +	sensitive=false,
   5.392 +	morecomment=[l]{//},
   5.393 +	morecomment=[s]{/*}{*/},
   5.394 +	morestring=[b]"
   5.395 +}
   5.396 +
   5.397 +\lstnewenvironment{CssCode}[1][]
   5.398 +{\lstset{%
   5.399 +  language=CSS,
   5.400 +%  mathescape=false,
   5.401 +  escapeinside={/+}{+/},
   5.402 +  #1}}%
   5.403 +{}
   5.404 +
   5.405 +\lstnewenvironment{XmlCode}[1][]
   5.406 +{\lstset{%
   5.407 +  language=XML,
   5.408 +%  mathescape=false,
   5.409 +  escapeinside={/+}{+/},
   5.410 +  #1}}%
   5.411 +{}
   5.412 +
   5.413 +\lstdefinelanguage{JavaScript}
   5.414 +{	keywords={attributes, class, classend, do, empty, endif, endwhile, fail, function,% 
   5.415 +			functionend, if, implements, in, inherit, inout, not, of, operations, out, 
   5.416 +			return, set, then, types, while, use},
   5.417 +	sensitive=false,
   5.418 +	morecomment=[l]{//},
   5.419 +	morecomment=[s]{/*}{*/}
   5.420 +}
   5.421 +
   5.422 +\lstnewenvironment{JsCode}[1][]
   5.423 +{\lstset{%
   5.424 +  language=JavaScript,
   5.425 +  mathescape=false,
   5.426 +  escapeinside={/+}{+/},
   5.427 +  #1}}%
   5.428 +{}
   5.429 +
   5.430 +\lstnewenvironment{LaTeXCode}[1][]	% code environment for Latex
   5.431 +{\lstset{%
   5.432 +	language=[LaTeX]TeX,
   5.433 +	commentstyle={},
   5.434 +	texcl=false,
   5.435 +	escapechar={},
   5.436 +	%	mathescape=false,
   5.437 +	escapeinside={/+}{+/},
   5.438 +	#1}}%
   5.439 +{}
   5.440 +
   5.441 +\lstnewenvironment{GenericCode}[1][]	% generic code environment
   5.442 +{\lstset{%
   5.443 +	language={},
   5.444 +	keepspaces=true,
   5.445 +	commentstyle={},
   5.446 +	texcl=false,
   5.447 +	escapechar={},
   5.448 +	escapeinside={},
   5.449 +%	mathescape=false,
   5.450 +	#1}}
   5.451 +{}
   5.452 +
   5.453 +%% ------------- Experimental --------------
   5.454 +
   5.455 +\newenvironment{NarrowList}%
   5.456 +{\begin{list}{}%
   5.457 +{\setlength{\leftmargin}{2.5em}
   5.458 + \setlength{\labelwidth}{1em}
   5.459 + \setlength{\labelsep}{0.5em}
   5.460 + \setlength{\itemsep}{0.5ex}
   5.461 + \setlength{\parsep}{0ex}
   5.462 + \setlength{\topsep}{0ex}
   5.463 +\raggedright
   5.464 +}}%
   5.465 +{\end{list}}
   5.466 +
   5.467 +\newenvironment{FileList}[1]%
   5.468 +{\paragraph{Pfad:} \url{#1}
   5.469 + \begin{list}{}%
   5.470 +{\setlength{\leftmargin}{5cm}
   5.471 + \setlength{\labelwidth}{4cm}
   5.472 + \setlength{\labelsep}{0.25cm}
   5.473 + \setlength{\rightmargin}{0cm}
   5.474 + \setlength{\itemindent}{0cm}
   5.475 + \setlength{\itemsep}{0.5ex}
   5.476 + \setlength{\parsep}{0ex}
   5.477 + \setlength{\topsep}{1ex}
   5.478 +\raggedright
   5.479 +}}%
   5.480 +{\end{list}}
   5.481 +
   5.482 +\def\widedotfill{\leaders\hbox to 8pt{\hfil.\hfil}\hfill}
   5.483 +
   5.484 +\newcommand{\fitem}[1]{%
   5.485 +%\item[\url{#1}\hfill]
   5.486 +%\item[\url{#1}\dotfill]
   5.487 +\item[\url{#1}\widedotfill]
   5.488 +}
   5.489 +
   5.490 +\newcommand{\Frametext}[1]{%
   5.491 +\setlength{\fboxrule}{0.05mm}%
   5.492 +\setlength{\fboxsep}{0.5mm}%
   5.493 +\fbox{\vphantom{Ag}#1}%
   5.494 +}
   5.495 +
   5.496 +\newcommand{\FramePic}[1]{%
   5.497 +\setlength{\fboxrule}{0.1mm}%
   5.498 +\setlength{\fboxsep}{0mm}%
   5.499 +\fbox{#1}%
   5.500 +}
   5.501 +
   5.502 +\newcommand{\optbreaknh}{\hskip 0pt } %optional break without hyphen: e.g. PlugIn{\optbrknh}Filter
   5.503 +
   5.504 +% Erzeugt einen neuen, nicht eingerückten Absatz
   5.505 +% mit zusätzlichem Abstand:
   5.506 +\newcommand{\SuperPar}[0]{% 
   5.507 +\par\bigskip\noindent%
   5.508 +}
   5.509 +
   5.510 +%%% Date-related commands ----------------------------------
   5.511 +
   5.512 +\RequirePackage{datetime}
   5.513 +\showdowfalse	% do not show day of week
   5.514 +
   5.515 +% adapted from \newdate in datetime.sty
   5.516 +\newcommand*{\@modifydate}[4]{%
   5.517 +\@namedef{date@#1@d}{#2}%
   5.518 +\@namedef{date@#1@m}{#3}%
   5.519 +\@namedef{date@#1@y}{#4}%
   5.520 +}
   5.521 +
   5.522 +\newdate{hgb@date}{\the\day}{\the\month}{\the\year}
   5.523 +\newcommand{\Date}[3]{%	example for use: \Date{16}{5}{2008}
   5.524 +  \@modifydate{hgb@date}{#1}{#2}{#3}
   5.525 +}
   5.526 +
   5.527 +\newcommand{\hgb@GetDateDay}{\getdateday{hgb@date}}
   5.528 +\newcommand{\hgb@GetDateMonth}{\getdatemonth{hgb@date}}
   5.529 +\newcommand{\hgb@GetDateYear}{\getdateyear{hgb@date}}
   5.530 +\newcommand{\hgb@DisplayDate}{\displaydate{hgb@date}}
   5.531 +
   5.532 +%%% Experimental:
   5.533 +%\RequirePackage{hyperref}		% ignores \pdfinfo commmands % utf8-change
   5.534 +\RequirePackage[unicode]{hyperref}	% utf8-change
   5.535 +\definecolor{@darkblue}{RGB}{0,0,140}
   5.536 +\definecolor{@darkgreen}{RGB}{0,100,70}
   5.537 +\hypersetup{
   5.538 +  colorlinks   = true, %Colours links instead of ugly boxes
   5.539 +  urlcolor     = @darkblue, %Colour for external hyperlinks
   5.540 +  linkcolor    = @darkblue, %Colour of internal links
   5.541 +  citecolor    = @darkgreen %Colour of citations
   5.542 +}	%see https://www.tug.org/applications/hyperref/manual.html
   5.543 +
   5.544 +
   5.545 +\RequirePackage[all]{hypcap} % fixes hyperref problem with references to float captions
   5.546 +%\RequirePackage[novbox]{pdfsync} % ersetzt durch -synctex=-1 option
   5.547 +%\RequirePackage[noadjust]{cite} % vermeidet zusätzliches Spacing vor [..] % entfernt wegen biblatex
   5.548 +
   5.549 +\RequirePackage{ifpdf}
   5.550 +\ifpdf % LaTeX is in native PDF mode (pdflatex) 
   5.551 +  \RequirePackage{epstopdf}		% zur automatischen Konvertierung von EPS-Dateien nach PDF für pdflatex
   5.552 +%  \pdfcompresslevel=0			  % 0 = keine Kompression, 9 = max. Kompression
   5.553 +%  \pdfimageresolution=300
   5.554 +\else % LaTeX is in emulation mode (DVI-PS-PDF)
   5.555 +  \RequirePackage[hyphenbreaks]{breakurl}	% erlaubt Zeilenumbruch von URLs auch ohne pdflatex (DIV, PS, PDF)
   5.556 +\fi	
   5.557 +	
   5.558 +\RequirePackage{enumitem}	% fix excessive vertical spacing in lists
   5.559 +\setlist{%
   5.560 +	partopsep = .0ex plus .1ex, 
   5.561 +	topsep = .6ex plus .3ex, 
   5.562 +	itemsep = .0ex plus .1ex, 
   5.563 +	parsep = .4ex plus .2ex
   5.564 +}
   5.565 +%\setlist{nolistsep}	% kein Spacing zwischen items
   5.566 +%\setlist{noitemsep}  % überhaupt kein vertik. Spacing
   5.567 +
   5.568 +%% -------------------------------------------------------
   5.569 +
   5.570 +\newcommand{\TurnWidowsOff}{%
   5.571 +\clubpenalty=10000%
   5.572 +\widowpenalty=10000%
   5.573 +\displaywidowpenalty=10000}
   5.574 +
   5.575 +\newenvironment{nowidows}%
   5.576 +{\TurnWidowsOff}%
   5.577 +{}
   5.578 +
   5.579 +%%Beispiel
   5.580 +%\begin{nowidows}
   5.581 +%Beliebiger Text, in dem absolut keine Hurenkinder zugelassen werden.
   5.582 +%\end{nowidows}
   5.583 +
   5.584 +%%How to display TeX parameters:
   5.585 +\newcommand{\ShowParameter}[1]{\relax\the#1\showthe#1}
   5.586 +%Beispiel: \ShowParameter{\clubpenalty}
   5.587 +
   5.588 +\setlength{\parskip}{0pt plus 0.1pt}
   5.589 +%\flushbottom
   5.590 +\raggedbottom
   5.591 +
   5.592 +%% -------------------------------------------------------
   5.593 +
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/doc-isac/mlehnfeld/master/thesis/hgbbib.sty	Wed Mar 12 17:43:22 2014 +0100
     6.3 @@ -0,0 +1,138 @@
     6.4 +%% --------------- Bibliography setup --------------------------------------
     6.5 +
     6.6 +\usepackage{csquotes}	% recommended for biblatex
     6.7 +%\usepackage[babel,german=quotes]{csquotes}	% utf8-change ??
     6.8 +
     6.9 +%utf8-change
    6.10 +%Note: biblatex with bibtex backend is frozen at version 1.7.
    6.11 +\usepackage[style=numeric-comp,backend=biber,bibencoding=auto]{biblatex}[2013/01/10] %utf8-change
    6.12 +
    6.13 +\ExecuteBibliographyOptions{bibwarn=true,sortcites=true,defernumbers=true,isbn=false,doi=false,backref=true}
    6.14 +
    6.15 +%% titles of reference section + 3 categories of references:
    6.16 +\newcommand{\@bibtitle}{Quellenverzeichnis}
    6.17 +\newcommand{\@bibtitleLiteratur}{Literatur}
    6.18 +\newcommand{\@bibtitleAvmedia}{Filme und audiovisuelle Medien}
    6.19 +\newcommand{\@bibtitleOnline}{Online-Quellen}	
    6.20 +
    6.21 +\ifthenelse{\equal{\hgb@MainLanguage}{english}}{%
    6.22 +	\renewcommand{\@bibtitle}{References}
    6.23 +	\renewcommand{\@bibtitleLiteratur}{Literature}
    6.24 +	\renewcommand{\@bibtitleAvmedia}{Films and audio-visual media}
    6.25 +	\renewcommand{\@bibtitleOnline}{Online sources}	
    6.26 +}{}
    6.27 +
    6.28 +\defbibfilter{literature}{
    6.29 +	not ( type=movie or type=video or type=music or type=audio or 
    6.30 +				type=online or type=electronic or type=www or type=software )}
    6.31 +
    6.32 +\defbibfilter{avmedia}{%
    6.33 +	( type=movie or type=video or type=music or type=audio or type=software )}
    6.34 +
    6.35 +\defbibfilter{online}{%
    6.36 +	( type=online or type=electronic or type=www )}
    6.37 +
    6.38 +
    6.39 +\defbibheading{noheader}[]{}	% 'none' should be defined but isn't
    6.40 +
    6.41 +% utf8-change (deactivated):
    6.42 +% German format in biblatex is flawed: it adds wrong spaces and prohibits
    6.43 +% line breaking within date strings. Corrected by Wilbur as follows.
    6.44 +% Taken from german.lbx: replaced \thinspace by breaking zero space \hskip0pt 
    6.45 +%\DefineBibliographyExtras{ngerman}{% 
    6.46 +  %\def\mkbibdatelong#1#2#3{%
    6.47 +    %\iffieldundef{#3}
    6.48 +      %{\hskip0pt}
    6.49 +      %{\mkbibordinal{\thefield{#3}}%
    6.50 +       %\iffieldundef{#2}{}{\space}}%	%was: \nobreakspace
    6.51 +    %\iffieldundef{#2}
    6.52 +      %{\hskip0pt}
    6.53 +      %{\mkbibmonth{\thefield{#2}}%
    6.54 +       %\iffieldundef{#1}{\hskip0pt}{\space}}%
    6.55 +    %\stripzeros{\thefield{#1}}}%
    6.56 +%%
    6.57 +  %\def\mkbibdateshort#1#2#3{%
    6.58 +    %\iffieldundef{#3}
    6.59 +      %{\hskip0pt}
    6.60 +      %{\mkdatezeros{\thefield{#3}}\adddot
    6.61 +       %\iffieldundef{#2}{}{\hskip0pt}}%
    6.62 +    %\iffieldundef{#2}
    6.63 +      %{\hskip0pt}
    6.64 +      %{\mkdatezeros{\thefield{#2}}%
    6.65 +       %\iffieldundef{#1}
    6.66 +	 %{\hskip0pt}
    6.67 +	 %{\iffieldundef{#3}{/}{\adddot\hskip0pt}}}%
    6.68 +    %\mkdatezeros{\thefield{#1}}}%
    6.69 +%}
    6.70 +
    6.71 +% utf8-change (deactivated):
    6.72 +% Similar problem with badly braking date strings in english.
    6.73 +% Taken from english.lbx: added breaking zero space \hskip0pt to /
    6.74 +%\DefineBibliographyExtras{english}{% 
    6.75 +  %\def\mkbibdatelong#1#2#3{%
    6.76 +    %\iffieldundef{#2}
    6.77 +      %{}
    6.78 +      %{\mkbibmonth{\thefield{#2}}%
    6.79 +       %\iffieldundef{#3}
    6.80 +         %{\iffieldundef{#1}{}{\space}}
    6.81 +	 %{\space}}%	%was: \nobreakspace
    6.82 +    %\iffieldundef{#3}
    6.83 +      %{}
    6.84 +      %{\stripzeros{\thefield{#3}}%
    6.85 +       %\iffieldundef{#1}{}{,\space}}%
    6.86 +    %\stripzeros{\thefield{#1}}}%
    6.87 +%%
    6.88 +  %\def\mkbibdateshort#1#2#3{%
    6.89 +    %\iffieldundef{#2}
    6.90 +      %{}
    6.91 +      %{\mkdatezeros{\thefield{#2}}%
    6.92 +       %\iffieldundef{#3}
    6.93 +         %{\iffieldundef{#1}{}{/{\hskip0pt}}}
    6.94 +	 %{/{\hskip0pt}}}%
    6.95 +    %\iffieldundef{#3}
    6.96 +      %{}
    6.97 +      %{\mkdatezeros{\thefield{#3}}%
    6.98 +       %\iffieldundef{#1}{}{/{\hskip0pt}}}%
    6.99 +    %\mkdatezeros{\thefield{#1}}}%
   6.100 +%}
   6.101 +
   6.102 +
   6.103 +%This is only a wrapper to \addbibresource to allow the use
   6.104 +%of the classic bibtex-workflow in the future.
   6.105 +\newcommand{\AddBibFile}[1]{
   6.106 +	\addbibresource{#1}%
   6.107 +}
   6.108 +
   6.109 +%See http://www.jr-x.de/publikationen/latex/tipps/zeilenumbruch.html
   6.110 +\newenvironment{bibhyphenation}% 
   6.111 +	{\hyphenpenalty=20%		(50)
   6.112 +	 \tolerance=9999%				(200)
   6.113 +	 \exhyphenpenalty=0%		(50)
   6.114 +	 \linepenalty=0%				(10)
   6.115 +	 \setlength{\emergencystretch}{3em}}%
   6.116 +	{}
   6.117 +
   6.118 +% Currently the only public macro:
   6.119 +% \MakeBibliography ... creates a reference section split subsections (default)
   6.120 +% \MakeBibliography[nosplit] ... creates a one-piece reference section
   6.121 +\newcommand{\MakeBibliography}[1][]{
   6.122 +	% opt. arg (#1): optional argument "nosplit" to get a 1-piece bibliography
   6.123 +	\clearpage
   6.124 +	\ifthenelse{\equal{#1}{nosplit}}%
   6.125 +		{% create a single bibliography with all entries:
   6.126 +			%\printbibheading[heading=bibintoc,title={#2}]
   6.127 +			\printbibheading[heading=bibintoc,title={\@bibtitle}]
   6.128 +			\begin{bibhyphenation}	
   6.129 +			\printbibliography[heading=noheader]
   6.130 +			\end{bibhyphenation}
   6.131 +		}
   6.132 +		{% split the bibliography using the predefined categories:
   6.133 +			%\printbibheading[heading=bibintoc,title={#2}]
   6.134 +			\printbibheading[heading=bibintoc,title={\@bibtitle}]
   6.135 +			\begin{bibhyphenation}
   6.136 +			\printbibliography[filter=literature,heading=subbibintoc,title={\@bibtitleLiteratur}]
   6.137 +			\printbibliography[filter=avmedia,heading=subbibintoc,title={\@bibtitleAvmedia}]
   6.138 +			\printbibliography[filter=online,heading=subbibintoc,title={\@bibtitleOnline}]
   6.139 +			\end{bibhyphenation}
   6.140 +		}%
   6.141 +}
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/doc-isac/mlehnfeld/master/thesis/hgbheadings.sty	Wed Mar 12 17:43:22 2014 +0100
     7.3 @@ -0,0 +1,29 @@
     7.4 +%% --------------- Headings setup --------------------------------------
     7.5 +
     7.6 +\RequirePackage{fancyhdr}
     7.7 +\pagestyle{fancy}
     7.8 +
     7.9 +\@ifundefined{chapter}%
    7.10 +   {}%
    7.11 +	 {\renewcommand{\chaptermark}[1]{%
    7.12 +			\ifthenelse{\value{chapter} < 1}%
    7.13 +				{\markboth{#1}{}}%
    7.14 +				{\markboth{\thechapter.\ #1}{}}
    7.15 +		}}
    7.16 +
    7.17 +\addtolength{\headheight}{\baselineskip}
    7.18 +\renewcommand{\headrulewidth}{0pt} %% thin line under header
    7.19 +%\renewcommand{\headrulewidth}{0.4pt} %% no line under header
    7.20 +\renewcommand{\footrulewidth}{0pt}
    7.21 +\fancyhf{}                            %% Clear all fields.
    7.22 +%\fancyhead[LE,RO]{\sffamily\thepage} %{\bf \rightmark}
    7.23 +%\fancyhead[LO,RE]{\sffamily\nouppercase{\leftmark}}  %{\slshape \leftmark}
    7.24 +\fancyhead[R]{\sffamily\thepage} %{\bf \rightmark}
    7.25 +\fancyhead[L]{\sffamily\nouppercase{\leftmark}}  %{\slshape \leftmark}
    7.26 +
    7.27 +\fancypagestyle{plain}{%
    7.28 +	\fancyhf{} % clear all header and footer fields
    7.29 +	\fancyfoot[C]{\sffamily\thepage} % except the center
    7.30 +	\renewcommand{\headrulewidth}{0pt}
    7.31 +	\renewcommand{\footrulewidth}{0pt}
    7.32 +}
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/doc-isac/mlehnfeld/master/thesis/hgbthesis.cls	Wed Mar 12 17:43:22 2014 +0100
     8.3 @@ -0,0 +1,463 @@
     8.4 +%% hgbthesis.cls
     8.5 +%% Autor: Wilhelm Burger (wilhelm.burger@fh-hagenberg.at)
     8.6 +%% Diese Datei ist Teil des hagenberg-Package zur Erstellung von 
     8.7 +%% Bachelor- und Diplomarbeiten.
     8.8 +
     8.9 +\NeedsTeXFormat{LaTeX2e}
    8.10 +\newcommand{\hgbthesisDate}{2013/05/17} %Versionsdatum
    8.11 +\ProvidesClass{hgbthesis}[\hgbthesisDate\space LaTeX-Vorlage fuer Diplomarbeiten, Masterarbeiten, Bachelorarbeiten etc.]
    8.12 +
    8.13 +\RequirePackage{ifthen}
    8.14 +
    8.15 +\newcommand{\hgb@MainLanguage}{german}	% also referenced in hgb.sty
    8.16 +\newcommand{\@matitelseiten}{}
    8.17 +\newcommand{\@datitelseiten}{}
    8.18 +\newcommand{\@batitelseiten}{}
    8.19 +\newcommand{\@prtitelseiten}{}
    8.20 +\newcommand{\@maketitlepages}{\@matitelseiten}  %default: Masterarbeit
    8.21 +
    8.22 +
    8.23 +%% begin class options ---------------------------------------------
    8.24 +\DeclareOption{master}{\renewcommand{\@maketitlepages}{\@matitelseiten}}
    8.25 +\DeclareOption{diplom}{\renewcommand{\@maketitlepages}{\@datitelseiten}}
    8.26 +\DeclareOption{bachelor}{\renewcommand{\@maketitlepages}{\@batitelseiten}}
    8.27 +\DeclareOption{praktikum}{\renewcommand{\@maketitlepages}{\@prtitelseiten}}
    8.28 +\DeclareOption{english}{\renewcommand{\hgb@MainLanguage}{english}}
    8.29 +\DeclareOption{german}{\renewcommand{\hgb@MainLanguage}{german}}
    8.30 +\DeclareOption*{\ClassWarning{hgbthesis}{Unknown document option "\CurrentOption"}}
    8.31 +\ProcessOptions
    8.32 +%% end class options ---------------------------------------------
    8.33 + 
    8.34 +\LoadClass[a4paper,11pt,oneside]{book}
    8.35 + 
    8.36 +\RequirePackage{hgb}	% load associated style file hgb.sty
    8.37 +
    8.38 +
    8.39 +%-------------- Setup für Seiten im Front-Teil --------------------
    8.40 +
    8.41 +\newcommand{\@studiengang}{\@MissingArg{Studiengang??}}
    8.42 +\newcommand{\studiengang}[1]{%
    8.43 +	\renewcommand{\@studiengang}{#1}
    8.44 +}
    8.45 +
    8.46 +\newcommand{\@studienort}{\@MissingArg{Studienort??}}
    8.47 +\newcommand{\studienort}[1]{%
    8.48 +	\renewcommand{\@studienort}{#1}
    8.49 +}
    8.50 +
    8.51 +\newcommand{\@betreuerBez}{????}
    8.52 +\newcommand{\@betreuerName}{\@MissingArg{Betreuer??}}
    8.53 +
    8.54 +\newcommand{\betreuer}[1]{%
    8.55 +  \renewcommand{\@betreuerBez}{Betreuer}
    8.56 +	\renewcommand{\@betreuerName}{#1}
    8.57 +}
    8.58 +\newcommand{\betreuerin}[1]{%
    8.59 +  \renewcommand{\@betreuerBez}{Betreuerin}
    8.60 +	\renewcommand{\@betreuerName}{#1}
    8.61 +}
    8.62 +
    8.63 +\newcommand{\@nummer}{\@MissingArg{Arbeit Nummer??}}
    8.64 +\newcommand{\nummer}[1]{%
    8.65 +	\renewcommand{\@nummer}{#1}
    8.66 +}
    8.67 +
    8.68 +\newcommand{\@gegenstand}{\@MissingArg{Gegenstand??}}
    8.69 +\newcommand{\gegenstand}[1]{%
    8.70 +	\renewcommand{\@gegenstand}{#1}
    8.71 +}
    8.72 +
    8.73 +\newcommand{\@semester}{\@MissingArg{Semester??}}
    8.74 +\newcommand{\semester}[1]{%
    8.75 +	\renewcommand{\@semester}{#1}
    8.76 +}
    8.77 +
    8.78 +%% -------------------------------------------------
    8.79 +
    8.80 +\newcounter{@abgabetag}
    8.81 +\newcounter{@abgabemonat}
    8.82 +\newcounter{@abgabejahr}
    8.83 +
    8.84 +\setcounter{@abgabetag}{\the\day}
    8.85 +\setcounter{@abgabemonat}{\the\month}
    8.86 +\setcounter{@abgabejahr}{\the\year}
    8.87 +
    8.88 +\newcommand{\abgabedatum}[3]{%	%\abgabedatum{yyyy}{mm}{dd}
    8.89 +	\setcounter{@abgabejahr}{#1}
    8.90 +	\setcounter{@abgabemonat}{#2}
    8.91 +	\setcounter{@abgabetag}{#3}
    8.92 +}
    8.93 +
    8.94 +\newcommand{\abgabemonat}[1]{%
    8.95 +	\ClassWarning{hgbthesis}{\noexpand\abgabemonat is deprecated - 
    8.96 +	use \noexpand\abgabedatum instead!}
    8.97 +}
    8.98 +
    8.99 +\newcommand{\abgabejahr}[1]{%
   8.100 +	\ClassWarning{hgbthesis}{\noexpand\abgabejahr is deprecated - 
   8.101 +	use \noexpand\abgabedatum instead!}
   8.102 +}
   8.103 +
   8.104 +%% ----------------------------------------------------------
   8.105 +
   8.106 +\newcommand{\@firma}{\@MissingArg{Firma??}}
   8.107 +\newcommand{\firma}[1]{%
   8.108 +\renewcommand{\@firma}{#1}
   8.109 +}
   8.110 +
   8.111 +\newcommand{\@firmenUrl}{\@MissingArg{www.???}}
   8.112 +\newcommand{\firmenUrl}[1]{%
   8.113 +\renewcommand{\@firmenUrl}{#1}
   8.114 +}
   8.115 +
   8.116 +\newcommand{\@firmenTel}{\@MissingArg{Tel??}}
   8.117 +\newcommand{\firmenTel}[1]{%
   8.118 +\renewcommand{\@firmenTel}{#1}
   8.119 +}
   8.120 +
   8.121 +\newcommand{\@license}{\@MissingArg{Lizenztext??}}
   8.122 +\newcommand{\license}[1]{%
   8.123 +\renewcommand{\@license}{#1}
   8.124 +}
   8.125 +
   8.126 +
   8.127 +%------------------ Titelseiten -------------------
   8.128 +
   8.129 +%% deprecated - use \maketitle instead!
   8.130 +\newcommand{\titelseite}{ 
   8.131 +  \ClassWarning{hgbthesis}{\noexpand\titelseite is deprecated - use \noexpand\maketitle instead}
   8.132 +  \maketitle
   8.133 +} 
   8.134 +
   8.135 +\newcommand{\@batitel}{%
   8.136 +\begin{titlepage}%
   8.137 +\rule{0mm}{1mm}
   8.138 +\vspace*{20mm}
   8.139 +%\noindent Left side \hfill right side\\
   8.140 +\begin{center}%
   8.141 +  \setlength{\unitlength}{1cm}
   8.142 +  \begin{picture}(12,4)
   8.143 +  %\thinlines\put(0,0){\framebox(12,4){}}
   8.144 +  \put(0,1.8){\parbox{12cm}{\centering\LARGE\bf%
   8.145 +    \setlength{\baselineskip}{20pt}%
   8.146 +    \@title}}
   8.147 +  \end{picture}
   8.148 +    \vskip 10mm%
   8.149 +    {\large\sc\@author}
   8.150 +    \vskip 40mm%
   8.151 +    {\Large B\,A\,C\,H\,E\,L\,O\,R\,A\,R\,B\,E\,I\,T}%
   8.152 +    \vskip 8mm%
   8.153 +    {\large\sf Nr.~\@nummer}
   8.154 +    \vskip 8mm%
   8.155 +    {\large eingereicht am} \vskip 1mm {Fachhochschul-Bachelorstudiengang}%
   8.156 +    \vskip 4mm%
   8.157 +    {\large\sc\@studiengang}%
   8.158 +    \vskip 4mm%
   8.159 +    {\large in \@studienort}%
   8.160 +    \vskip 16mm%
   8.161 +    {\large im \monthname[\value{@abgabemonat}] \arabic{@abgabejahr}}%
   8.162 +\end{center}\par
   8.163 +  \vfil\null
   8.164 +\end{titlepage}%
   8.165 +}
   8.166 +
   8.167 +\newcommand{\@matitel}{%
   8.168 +\begin{titlepage}%
   8.169 +\begin{german}
   8.170 +\rule{0mm}{1mm}
   8.171 +\vspace*{20mm}
   8.172 +%\noindent Left side \hfill right side\\
   8.173 +\begin{center}%
   8.174 +  \setlength{\unitlength}{1cm}
   8.175 +  \begin{picture}(12,4)
   8.176 +  %\thinlines\put(0,0){\framebox(12,4){}}
   8.177 +  \put(0,1.8){\parbox{12cm}{\centering\LARGE\bf%
   8.178 +    \setlength{\baselineskip}{20pt}%
   8.179 +    \@title}}
   8.180 +  \end{picture}
   8.181 +    \vskip 10mm%
   8.182 +    {\large\sc\@author}
   8.183 +    \vskip 40mm%
   8.184 +    {\Large M\,A\,S\,T\,E\,R\,A\,R\,B\,E\,I\,T}%
   8.185 +    \vskip 20mm%
   8.186 +    {\large eingereicht am} \vskip 1mm {Fachhochschul-Masterstudiengang}%
   8.187 +    \vskip 4mm%
   8.188 +    {\large\sc\@studiengang}%
   8.189 +    \vskip 4mm%
   8.190 +    {\large in \@studienort}%
   8.191 +    \vskip 16mm%
   8.192 +    {\large im \monthname[\value{@abgabemonat}] \arabic{@abgabejahr}}%
   8.193 +%   {\large im \@abgabemonat\ \@abgabejahr}%
   8.194 +\end{center}\par
   8.195 +  \vfil\null
   8.196 +\end{german}
   8.197 +\end{titlepage}%
   8.198 +}
   8.199 +
   8.200 +\newcommand{\@datitel}{%
   8.201 +\begin{titlepage}%
   8.202 +\rule{0mm}{1mm}
   8.203 +\vspace*{20mm}
   8.204 +%\noindent Left side \hfill right side\\
   8.205 +\begin{center}%
   8.206 +  \setlength{\unitlength}{1cm}
   8.207 +  \begin{picture}(12,4)
   8.208 +  %\thinlines\put(0,0){\framebox(12,4){}}
   8.209 +  \put(0,1.8){\parbox{12cm}{\centering\LARGE\bf%
   8.210 +    \setlength{\baselineskip}{20pt}%
   8.211 +    \@title}}
   8.212 +  \end{picture}
   8.213 +    \vskip 10mm%
   8.214 +    {\large\sc\@author}
   8.215 +    \vskip 40mm%
   8.216 +    {\Large D\,I\,P\,L\,O\,M\,A\,R\,B\,E\,I\,T}%
   8.217 +    \vskip 20mm%
   8.218 +    {\large eingereicht am} \vskip 1mm {Fachhochschul-Masterstudiengang}%
   8.219 +    \vskip 4mm%
   8.220 +    {\large\sc\@studiengang}%
   8.221 +    \vskip 4mm%
   8.222 +    {\large in \@studienort}%
   8.223 +    \vskip 16mm%
   8.224 +    {\large im \monthname[\value{@abgabemonat}] \arabic{@abgabejahr}}%
   8.225 +\end{center}\par
   8.226 +  \vfil\null
   8.227 +\end{titlepage}%
   8.228 +}
   8.229 +
   8.230 +\newcommand{\@prtitel}{%
   8.231 +\begin{titlepage}%
   8.232 +\rule{0mm}{1mm}
   8.233 +\vspace*{20mm}
   8.234 +%\noindent Left side \hfill right side\\
   8.235 +\begin{center}%
   8.236 +  \setlength{\unitlength}{1cm}
   8.237 +  \begin{picture}(12,4)
   8.238 +  %\thinlines\put(0,0){\framebox(12,4){}}
   8.239 +  \put(0,1.8){\parbox{12cm}{\centering\LARGE\bf%
   8.240 +    \setlength{\baselineskip}{20pt}%
   8.241 +    Endbericht zum Berufspraktikum}}
   8.242 +  \end{picture}
   8.243 +    \vskip 10mm%
   8.244 +    {\large\sc\@author}
   8.245 +    \vskip 40mm%
   8.246 +    {\Large B\,A\,C\,H\,E\,L\,O\,R\,A\,R\,B\,E\,I\,T}%
   8.247 +    \vskip 8mm%
   8.248 +    {\large\sf Nr.~\@nummer}
   8.249 +    \vskip 8mm%
   8.250 +    {\large eingereicht am} \vskip 1mm {Fachhochschul-Bachelorstudiengang}%
   8.251 +    \vskip 4mm%
   8.252 +    {\large\sc\@studiengang}%
   8.253 +    \vskip 4mm%
   8.254 +    {\large in \@studienort}%
   8.255 +    \vskip 16mm%
   8.256 +    {\large im \monthname[\value{@abgabemonat}] \arabic{@abgabejahr}}%
   8.257 +\end{center}\par
   8.258 +  \vfil\null
   8.259 +\end{titlepage}%
   8.260 +}
   8.261 +
   8.262 +%------------------ Copyright-Seite -------------------
   8.263 +
   8.264 +\newcommand{\strictlicense}{%
   8.265 +\ifthenelse{\equal{\hgb@MainLanguage}{german}}%
   8.266 +	{\license{Alle Rechte vorbehalten}}%
   8.267 +	{\license{All Rights Reserved}}
   8.268 +}
   8.269 +
   8.270 +\newcommand{\@ccLicenseAt}{%
   8.271 +Diese Arbeit wird unter den Bedingungen der \textsl{Creative Commons Lizenz} 
   8.272 +\emph{Namens\-nennung--NichtKommerziell--Keine\-Bearbeitung Österreich} 
   8.273 +(CC BY-NC-ND) veröffentlicht --
   8.274 +siehe \url{http://creativecommons.org/licenses/by-nc-nd/3.0/at/}.}
   8.275 +
   8.276 +\newcommand{\@ccLicenseEn}{%
   8.277 +This work is published under the conditions of the 
   8.278 +\textsl{Creative Commons License Attribution--Non\-Commercial--No\-Derivatives} 
   8.279 +(CC BY-NC-ND)---see
   8.280 +\url{http://creativecommons.org/licenses/by-nc-nd/3.0/}.}
   8.281 +
   8.282 +\newcommand{\cclicense}{%
   8.283 +\ifthenelse{\equal{\hgb@MainLanguage}{german}}%
   8.284 +{\license{\@ccLicenseAt}} % german CC license text
   8.285 +{\license{\@ccLicenseEn}} % english CC license text (default)
   8.286 +}
   8.287 +	
   8.288 +%\strictlicense
   8.289 +\cclicense	% Creative Commons License (default)
   8.290 +
   8.291 +\newcommand{\@makelicense}{ 
   8.292 +  \sbox\@tempboxa{\@license}%
   8.293 +  \ifdim \wd\@tempboxa >\hsize
   8.294 +    \begin{sloppypar}\noindent\@license\end{sloppypar}
   8.295 +  \else
   8.296 +    \global \@minipagefalse
   8.297 +    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
   8.298 +  \fi
   8.299 +} 
   8.300 +
   8.301 +\newcommand{\@copyrightseite}{%
   8.302 +\newpage
   8.303 +\setcounter{page}{2}
   8.304 +\thispagestyle{plain}
   8.305 +\rule{0mm}{1mm}
   8.306 +\vspace*{75mm}
   8.307 +\begin{center}
   8.308 +\copyright\ Copyright\ \arabic{@abgabejahr}\ \@author
   8.309 +\end{center}
   8.310 +\vspace{8mm}
   8.311 +\@makelicense
   8.312 +%\begin{center}
   8.313 +%\includegraphics[width=2.0cm]{images/by-nc-nd-eu}
   8.314 +%\end{center}
   8.315 +}
   8.316 +
   8.317 +%------------------ Firmen-Seite -------------------
   8.318 +\newcommand{\@firmenseite}{%
   8.319 +\newpage
   8.320 +\setcounter{page}{2}
   8.321 +\thispagestyle{plain}
   8.322 +\rule{0mm}{1mm}
   8.323 +\begin{center}
   8.324 +\vspace{25mm} 
   8.325 +{Praktikumsstelle:}
   8.326 +\\
   8.327 +\vspace{3mm}
   8.328 +{\Large\sf\@firma\\ \mbox{}}
   8.329 +\\
   8.330 +{\sf \@firmenTel}
   8.331 +\\
   8.332 +{\sf \@firmenUrl}
   8.333 +\\
   8.334 +\vspace{45mm} 
   8.335 +{Kontaktperson:}
   8.336 +\\
   8.337 +\vspace{3mm} 
   8.338 +{\Large\sf\@betreuerName\\ \mbox{}}
   8.339 +\end{center}
   8.340 +}
   8.341 +
   8.342 +%------------------ Betreuer-Seite -------------------
   8.343 +
   8.344 +\newcommand{\@babetreuerseite}{%
   8.345 +\newpage
   8.346 +\setcounter{page}{2}
   8.347 +\thispagestyle{plain}
   8.348 +\rule{0mm}{1mm}
   8.349 +\begin{center}
   8.350 +%
   8.351 +\vspace{40mm} 
   8.352 +{Diese Arbeit entstand im Rahmen des Gegenstands}\\
   8.353 +\vspace{6mm} 
   8.354 +{\Large\sf \@gegenstand\\ \mbox{}}\\
   8.355 +\medskip
   8.356 +im\\
   8.357 +\bigskip
   8.358 +{\@semester}\\
   8.359 +%
   8.360 +\vspace{45mm} 
   8.361 +%{Betreuer:}\\
   8.362 +{\@betreuerBez:}\\
   8.363 +\vspace{3mm} 
   8.364 +{\Large\sf \@betreuerName\\ \mbox{}}
   8.365 +\end{center}
   8.366 +}
   8.367 +
   8.368 +%% -------------- Erklärung / Declaration ---------
   8.369 +
   8.370 +\newcommand{\@erklaerungsseiteDe}{%
   8.371 +\begin{german}
   8.372 +\chapter{Erklärung}
   8.373 +\noindent
   8.374 +%Standardfassung der FH-OÖ ab 04.04.2012:
   8.375 +Ich erkläre eidesstattlich, dass ich die vorliegende Arbeit selbstständig und ohne fremde Hilfe verfasst, 
   8.376 +andere als die angegebenen Quellen nicht benutzt und die den benutzten Quellen entnommenen Stellen als 
   8.377 +solche gekennzeichnet habe. Die Arbeit wurde bisher in gleicher oder ähnlicher Form keiner anderen 
   8.378 +Prüfungsbehörde vorgelegt.
   8.379 +\par
   8.380 +\vspace{10mm}
   8.381 +\noindent
   8.382 +\@studienort, am \formatdate{\value{@abgabetag}}{\value{@abgabemonat}}{\value{@abgabejahr}}
   8.383 +\par
   8.384 +\vspace{12mm}
   8.385 +\noindent
   8.386 +\@author
   8.387 +\end{german}
   8.388 +}
   8.389 +
   8.390 +\newcommand{\leadingzero}[1]{\ifnum #1<10 0\the#1\else\the#1\fi}
   8.391 +
   8.392 +\newcommand{\@erklaerungsseiteEn}{%
   8.393 +\begin{english}
   8.394 +\chapter{Declaration}
   8.395 +\noindent
   8.396 +I hereby declare and confirm that this thesis is entirely the result of my own original work. 
   8.397 +Where other sources of information have been used, they have been indicated as such and properly 
   8.398 +acknowledged. I further declare that this or similar work has not been submitted for credit elsewhere.
   8.399 +\par
   8.400 +\vspace{10mm}
   8.401 +\noindent
   8.402 +%\@studienort, \the\year-\leadingzero{\month}-\leadingzero{\day} %http://de.wikibooks.org/wiki/LaTeX-W%F6rterbuch:_today 
   8.403 +\@studienort, {\usdate\formatdate{\value{@abgabetag}}{\value{@abgabemonat}}{\value{@abgabejahr}}}
   8.404 +\par
   8.405 +\vspace{12mm}
   8.406 +\noindent
   8.407 +\@author
   8.408 +\end{english}
   8.409 +}
   8.410 +
   8.411 +\newcommand{\@erklaerungsseite}{%
   8.412 +\ifthenelse{\equal{\hgb@MainLanguage}{german}}%
   8.413 +	{\@erklaerungsseiteDe}%
   8.414 +	{\@erklaerungsseiteEn}
   8.415 +}
   8.416 +
   8.417 +
   8.418 +%------------ Struktur der Frontseiten -------------------
   8.419 +
   8.420 +\renewcommand{\@matitelseiten}{
   8.421 +\@matitel
   8.422 +\@copyrightseite
   8.423 +\@erklaerungsseite
   8.424 +}
   8.425 +     
   8.426 +\renewcommand{\@datitelseiten}{
   8.427 +\@datitel
   8.428 +\@copyrightseite
   8.429 +\@erklaerungsseite
   8.430 +}
   8.431 +
   8.432 +\renewcommand{\@batitelseiten}{
   8.433 +\@batitel
   8.434 +\@babetreuerseite
   8.435 +\@erklaerungsseite
   8.436 +}
   8.437 +
   8.438 +\renewcommand{\@prtitelseiten}{
   8.439 +\@prtitel
   8.440 +\@firmenseite
   8.441 +\@erklaerungsseite
   8.442 +}
   8.443 +
   8.444 +%------------ Automatischer Eintrag der PDF Metadaten ------------
   8.445 +
   8.446 +\renewcommand{\maketitle}{	%replace standard LaTeX-command
   8.447 +\hypersetup{
   8.448 +		pdftitle={\@title},
   8.449 +		pdfauthor={\@author},
   8.450 +		pdfsubject={\@studiengang, \@studienort},
   8.451 +		pdfcreator={LaTeX using class hgbthesis},
   8.452 +		pdfproducer={},
   8.453 +		pdfkeywords={}
   8.454 +}%
   8.455 +\@maketitlepages
   8.456 +}
   8.457 +
   8.458 +%%-------------------------------------------------------------
   8.459 +
   8.460 +\usepackage{hgbheadings}
   8.461 +\usepackage{hgbbib}
   8.462 +
   8.463 +%%-------------------------------------------------------------
   8.464 +
   8.465 +\endinput
   8.466 +
     9.1 Binary file doc-isac/mlehnfeld/master/thesis/images/chip-speeds.png has changed
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/doc-isac/mlehnfeld/master/thesis/introduction.tex	Wed Mar 12 17:43:22 2014 +0100
    10.3 @@ -0,0 +1,30 @@
    10.4 +\chapter{Introduction}
    10.5 +\label{cha:intro}
    10.6 +
    10.7 +
    10.8 +\section{Motivation}
    10.9 +\label{sec:motivation}
   10.10 +Moore's Law \cite{moore1965cramming} states that the density of transistors which can be placed on a single chip doubles about every two years. While the size of transistors is still shrinking, clock speeds hit an upper bound around the year 2004 (fig. \ref{fig:chip-speeds}) due to thermal issues \cite{sutter2005free}. Therefore most CPUs now come with multiple processing cores. This poses a challenge to the software running on these CPUs because it must support parallel or concurrent execution in order to efficiently exploit a computer’s full processing power.\\
   10.11 +
   10.12 +\begin{figure}
   10.13 +\centering
   10.14 +\includegraphics[width=.95\textwidth]{chip-speeds}
   10.15 +\caption{Intel CPU trends. {\it source}: \cite{sutter2005free}}
   10.16 +\label{fig:chip-speeds}
   10.17 +\end{figure}
   10.18 +
   10.19 +Concurrency allows for multitasking and asynchronous computations can improve responsiveness even on uniprocessors. But writing efficiently parallel or concurrent software is hard \cite{sutter2005software}. Now that multicore architectures are commonplace and higly parallel GPUs are beginning to get exploited for general-purpose computing \cite{luebke2006gpgpu}, concurrent processes and threads can effectively be running simultaneously and therefore significantly faster.\\
   10.20 +Functional programming is a declarative paradigm based on the lambda calculs. It has been claimed that it is specifically suited not only for prototyping but also for efficient parallelism due to some of its defining features like immutable data, statelessness and the lack of side effects (e.g. \cite{burge1975recursive}).\\
   10.21 +\\
   10.22 +The interactive theorem prover \isabelle{} \cite{paulson1994isabelle} is a comprehensive, international software project. Its internal logic has been written entirely in {\it Standard ML} which later was embedded in a {\it Scala} environment to simplify interaction with the underlying operating system and software built on top of \isabelle{}.\\
   10.23 +As the use of multicore systems became more common, \isabelle{}'s computationally complex logic was required to exploit the newly available processing power. {\it Makarius Wenzel}, one of the leading developers of \isabelle{}, parallelized essential parts of the system within a few man months (scattered over about two years). This is a surprisingly little amount of effort considering the project's size and complexity. A significant amount of the work done was due to the use of impure code facilitated by {\it Standard ML} and {\it Scala}. {\it Isabelle/Scala} provides tools for interaction between front end and proof engine and contains object oriented components to deal with inherently stateful aspects of the development environment {\it Isabelle/jEdit}.\\
   10.24 +\\
   10.25 +The educational mathematics system \isac{} was developed at {\it Graz University of Technology} on the basis of \isabelle{} and combines a {\it Java} frontend with a logical {\it Standard ML} core \cite{neuper2001reactive}.\\
   10.26 +Both projects are case studies for the use of functional programming in practical, interactive software projects which also demonstrate how the disadvantages of this paradigm's intrinsic properties like side-effect free programming can be complemented by integrating functional and imperative programming.\\
   10.27 +Analogous to \isabelle{}'s parallelization, \isac{} was reengineered for multicore systems. The involved background knowledge, documentation and outcomes of this project form the basis for this document. These topics will be expanded to include common parallelism and concurrency mechanisms suggested and implemented for other functional programming languages as well as previous research on refactoring techniques for multicore.
   10.28 +
   10.29 +
   10.30 +\section{Thesis Structure}
   10.31 +\label{sec:thesis_structure}
   10.32 +TODO
   10.33 +
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/doc-isac/mlehnfeld/master/thesis/isabelle_isac.tex	Wed Mar 12 17:43:22 2014 +0100
    11.3 @@ -0,0 +1,38 @@
    11.4 +\chapter{Isabelle and {\isac}}
    11.5 +\label{cha:isabelle_isac}
    11.6 +
    11.7 +
    11.8 +\section{Isabelle}
    11.9 +\label{sec:isabelle}
   11.10 +
   11.11 +\subsection{User Requirements}
   11.12 +about half page
   11.13 +
   11.14 +\subsection{Technologies}
   11.15 +about 4 pages
   11.16 +
   11.17 +\subsection{Architecture}
   11.18 +about 2 pages
   11.19 +
   11.20 +\subsection{Integration of Standard ML and Scala}
   11.21 +about 1 page
   11.22 +
   11.23 +\subsection{Introduction of Parallelism and Concurrency}
   11.24 +about 3 pages
   11.25 +
   11.26 +
   11.27 +\section{{\isac}}
   11.28 +\label{sec:isac}
   11.29 +
   11.30 +\subsection{Philosophy and User Requirements}
   11.31 +about 2 pages
   11.32 +
   11.33 +\subsection{Initial Architecture}
   11.34 +about 2 pages
   11.35 +
   11.36 +\subsection{Integration with Isabelle\'s Parallelism}
   11.37 +about 2 pages
   11.38 +
   11.39 +\subsection{Concurrent User Session Management}
   11.40 +about 5 pages
   11.41 +
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/doc-isac/mlehnfeld/master/thesis/kurzfassung.tex	Wed Mar 12 17:43:22 2014 +0100
    12.3 @@ -0,0 +1,5 @@
    12.4 +\chapter{Kurzfassung}
    12.5 +
    12.6 +\begin{german}
    12.7 +Deutscher Abstract...
    12.8 +\end{german}
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/doc-isac/mlehnfeld/master/thesis/literature.bib	Wed Mar 12 17:43:22 2014 +0100
    13.3 @@ -0,0 +1,58 @@
    13.4 +@misc{moore1965cramming,
    13.5 +  title={Cramming more components onto integrated circuits},
    13.6 +  author={Moore, Gordon E and others},
    13.7 +  year={1965},
    13.8 +  publisher={McGraw-Hill New York, NY, USA}
    13.9 +}
   13.10 +
   13.11 +@article{sutter2005free,
   13.12 +  title={The free lunch is over: A fundamental turn toward concurrency in software},
   13.13 +  author={Sutter, Herb},
   13.14 +  journal={Dr. Dobb’s Journal},
   13.15 +  volume={30},
   13.16 +  number={3},
   13.17 +  pages={202--210},
   13.18 +  year={2005}
   13.19 +}
   13.20 +
   13.21 +@article{sutter2005software,
   13.22 +  title={Software and the concurrency revolution},
   13.23 +  author={Sutter, Herb and Larus, James},
   13.24 +  journal={Queue},
   13.25 +  volume={3},
   13.26 +  number={7},
   13.27 +  pages={54--62},
   13.28 +  year={2005},
   13.29 +  publisher={ACM}
   13.30 +}
   13.31 +
   13.32 +@inproceedings{luebke2006gpgpu,
   13.33 +  title={GPGPU: general-purpose computation on graphics hardware},
   13.34 +  author={Luebke, David and Harris, Mark and Govindaraju, Naga and Lefohn, Aaron and Houston, Mike and Owens, John and Segal, Mark and Papakipos, Matthew and Buck, Ian},
   13.35 +  booktitle={Proceedings of the 2006 ACM/IEEE conference on Supercomputing},
   13.36 +  pages={208},
   13.37 +  year={2006},
   13.38 +  organization={ACM}
   13.39 +}
   13.40 +
   13.41 +@book{burge1975recursive,
   13.42 +  title={Recursive programming techniques},
   13.43 +  author={Burge, William H},
   13.44 +  year={1975},
   13.45 +  publisher={Addison-Wesley Reading}
   13.46 +}
   13.47 +
   13.48 +@book{paulson1994isabelle,
   13.49 +  title={Isabelle: A generic theorem prover},
   13.50 +  author={Paulson, Lawrence C},
   13.51 +  volume={828},
   13.52 +  year={1994},
   13.53 +  publisher={Springer}
   13.54 +}
   13.55 +
   13.56 +@phdthesis{neuper2001reactive,
   13.57 +  title={Reactive user-guidance by an autonomous engine doing high-school math},
   13.58 +  author={Neuper, Walther A},
   13.59 +  year={2001},
   13.60 +  school={PhD thesis, IICM-Inst. f. Softwaretechnology, Technical University, A-8010 Graz, 2001. ftp://ftp. ist. tugraz. at/pub/projects/isac/publ/wn-diss. ps. gz}
   13.61 +}
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/doc-isac/mlehnfeld/master/thesis/messbox.tex	Wed Mar 12 17:43:22 2014 +0100
    14.3 @@ -0,0 +1,17 @@
    14.4 +\chapter*{Messbox zur Druckkontrolle}
    14.5 +
    14.6 +
    14.7 +
    14.8 +\begin{center}
    14.9 +{\Large --- Druckgröße kontrollieren! ---}
   14.10 +
   14.11 +\bigskip
   14.12 +
   14.13 +\Messbox{100}{50} % Angabe der Breite/Hoehe in mm
   14.14 +
   14.15 +\bigskip
   14.16 +
   14.17 +{\Large --- Diese Seite nach dem Druck entfernen! ---}
   14.18 +
   14.19 +\end{center}
   14.20 +
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/doc-isac/mlehnfeld/master/thesis/preface.tex	Wed Mar 12 17:43:22 2014 +0100
    15.3 @@ -0,0 +1,9 @@
    15.4 +\chapter{Preface}
    15.5 +\label{cha:preface}
    15.6 +
    15.7 +{\it Übrigens, hier im Vorwort (das bei Diplomarbeiten üblich, bei Bachelorarbeiten 
    15.8 +aber entbehrlich ist) kann man kurz auf die Entstehung  des Dokuments eingehen.
    15.9 +Hier ist auch der Platz für allfällige Danksagungen (\zB an den Betreuer, 
   15.10 +den Begutachter, die Familie, den Hund, ...), Widmungen und philosophische 
   15.11 +Anmerkungen. Das sollte man allerdings auch nicht übertreiben und sich auf 
   15.12 +einen Umfang von maximal zwei Seiten beschränken.}
    16.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.2 +++ b/doc-isac/mlehnfeld/master/thesis/thesis.tex	Wed Mar 12 17:43:22 2014 +0100
    16.3 @@ -0,0 +1,67 @@
    16.4 +\documentclass[master,english]{hgbthesis}
    16.5 +% Zulässige Class Options: 
    16.6 +%   Typ der Arbeit: diplom, master (default), bachelor, praktikum 
    16.7 +%   Hauptsprache: german (default), english
    16.8 +%%------------------------------------------------------------
    16.9 +
   16.10 +\graphicspath{{images/}}    % wo liegen die Bilder? 
   16.11 +\bibliography{literature}  	% Angabe der BibTeX-Datei, % utf8-change
   16.12 +
   16.13 +\newcommand{\isac}{${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}
   16.14 +\def\sisac{{\footnotesize${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}}
   16.15 +\newcommand{\isabelle}{{\it Isabelle}}
   16.16 +
   16.17 +%%%----------------------------------------------------------
   16.18 +\begin{document}
   16.19 +%%%----------------------------------------------------------
   16.20 +
   16.21 +% Einträge für ALLE Arbeiten: --------------------------------
   16.22 +\title{Introducing Parallelism and Concurrency in an Educational Mathematics System using Functional Programming}
   16.23 +\author{Mathias Lehnfeld}
   16.24 +\studiengang{Interactive Media}
   16.25 +\studienort{Hagenberg}
   16.26 +\abgabedatum{2014}{06}{18}	% {YYYY}{MM}{DD}
   16.27 +\betreuer{Mag. Volker Christian} % oder \betreuerin{..}
   16.28 +\betreuer{Dr. Walther Neuper} % oder \betreuerin{..}
   16.29 +\firma{
   16.30 +   Institut für Informationssysteme und Computer Medien (IICM)\\
   16.31 +   Fakultät für Informatik - Technische Universität Graz\\
   16.32 +   \\
   16.33 +   Inffeldgasse 16c\\
   16.34 +   8010 Graz - Österreich - Europa
   16.35 +}
   16.36 +
   16.37 +%%%----------------------------------------------------------
   16.38 +\frontmatter
   16.39 +\maketitle
   16.40 +\tableofcontents
   16.41 +%%%----------------------------------------------------------
   16.42 +
   16.43 +% \include{declaration}
   16.44 +\include{preface}
   16.45 +\include{abstract}
   16.46 +\include{kurzfassung}
   16.47 +
   16.48 +%%%----------------------------------------------------------
   16.49 +\mainmatter         % Hauptteil (ab hier arab. Seitenzahlen)
   16.50 +%%%----------------------------------------------------------
   16.51 +
   16.52 +\include{introduction}
   16.53 +\include{fundamentals}
   16.54 +\include{funproglangs_mcsystems}
   16.55 +\include{isabelle_isac}
   16.56 +\include{conclusion}
   16.57 +
   16.58 +%%%----------------------------------------------------------
   16.59 +%%%Anhang
   16.60 +\appendix
   16.61 +\include{appendix_a}
   16.62 +
   16.63 +%%%----------------------------------------------------------
   16.64 +\MakeBibliography
   16.65 +%%%----------------------------------------------------------
   16.66 +
   16.67 +%%%Messbox zur Druckkontrolle
   16.68 +\include{messbox}
   16.69 +
   16.70 +\end{document}