Skip to content

Commit

Permalink
Added definitions / examples
Browse files Browse the repository at this point in the history
  • Loading branch information
MartinThoma committed Mar 8, 2014
1 parent 7a39159 commit b74de7b
Show file tree
Hide file tree
Showing 8 changed files with 86 additions and 3 deletions.
1 change: 1 addition & 0 deletions documents/Programmierparadigmen/Abkuerzungen.tex
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ \chapter*{Abkürzungsverzeichnis\markboth{Abkürzungsverzeichnis}{Abkürzungsver
\acro{DEA}{Deterministischer Endlicher Automat}
\acro{etc.}{et cetera}
\acro{ggf.}{gegebenenfalls}
\acro{mgu}{most general unifier}
\acro{sog.}{sogenannte}
\acro{Vor.}{Voraussetzung}
\acro{vgl.}{vergleiche}
Expand Down
5 changes: 5 additions & 0 deletions documents/Programmierparadigmen/Haskell.tex
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,11 @@ \subsection{Funktionen höherer Ordnung}\xindex{Folds}\xindex{foldl}\xindex{fold
\inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=folds.hs]{haskell}{scripts/haskell/folds.hs}


\subsection{Standard Prelude}
Hier sind die Definitionen eininger wichtiger Funktionen:

\inputminted[numbersep=5pt, tabsize=4]{haskell}{scripts/haskell/standard-definitions.hs}

\section{Weitere Informationen}
\begin{itemize}
\item \href{http://hackage.haskell.org/package/base-4.6.0.1}{\path{hackage.haskell.org/package/base-4.6.0.1}}: Referenz
Expand Down
Binary file modified documents/Programmierparadigmen/Programmierparadigmen.pdf
Binary file not shown.
30 changes: 27 additions & 3 deletions documents/Programmierparadigmen/Programmiersprachen.tex
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,36 @@ \section{Abstraktion}
\end{bspenum}
\end{beispiel}

\begin{definition}\xindex{Assembler}%
\textbf{Assembler} TODO
\begin{definition}[Assembler]\xindex{Assembler}%
Eine Assemblersprache ist eine Programmiersprache, deren Befehle dem
Befehlssatz eines Prozessor entspricht.
\end{definition}

\begin{beispiel}[Assembler]%
TODO
Folgendes Beispiel stammt von \url{https://de.wikibooks.org/wiki/Assembler-Programmierung_für_x86-Prozessoren/_Das_erste_Assemblerprogramm}:
\inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=firstp.asm]{nasm}{scripts/assembler/firstp.asm}
\end{beispiel}

\begin{definition}[Höhere Programmiersprache]\xindex{Programmiersprache!höhere}%
Eine Programmiersprache heißt \textit{höher}, wenn sie nicht ausschließlich
für eine Prozessorarchitektur geschrieben wurde und turing-vollständig ist.
\end{definition}

\begin{beispiel}[Höhere Programmiersprachen]
Java, Python, Haskell, Ruby, TCL, \dots
\end{beispiel}

\begin{definition}[Domänenspezifische Sprache]\xindex{Sprache!domänenspezifische}%
Eine domänenspezifische Sprache (engl. domain-specific language; kurz DSL)
ist eine formale Sprache, die für ein bestimmtes Problemfeld
entworfen wurde.
\end{definition}

\begin{beispiel}[Domänenspezifische Sprache]
\begin{bspenum}
\item HTML
\item VHDL
\end{bspenum}
\end{beispiel}

\section{Paradigmen}
Expand Down
4 changes: 4 additions & 0 deletions documents/Programmierparadigmen/Scala.tex
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@ \section{Syntax}
und so instanziiert:
\inputminted[numbersep=5pt, tabsize=4]{scala}{scripts/scala/simple-class-instanciation.scala}

Listen können erstellt und durchgegangen werden:

\inputminted[numbersep=5pt, tabsize=4]{scala}{scripts/scala/extended-for.scala}

\section{Beispiele}

\section{Weitere Informationen}
Expand Down
8 changes: 8 additions & 0 deletions documents/Programmierparadigmen/scripts/assembler/firstp.asm
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
org 100h
start:
mov ax, 5522h
mov cx, 1234h
xchg cx,ax
mov al, 0
mov ah,4Ch
int 21h
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
map :: (a -> b) -> [a] -> [b]
map f [] = []
map f (x:xs) = f x : map f xs
----------

zipWith :: (a->b->c) -> [a]->[b]->[c]
zipWith z (a:as) (b:bs)
= z a b : zipWith z as bs
zipWith _ _ _ = []
----------

zip :: [a] -> [b] -> [(a,b)]
zip = zipWith (,)
----------

unzip :: [(a,b)] -> ([a],[b])
unzip = foldr (\(a,b) ~(as,bs) -> (a:as,b:bs)) ([],[])
----------

foldl :: (a -> b -> a) -> a -> [b] -> a
foldl f z [] = z
foldl f z (x:xs) = foldl f (f z x) xs
----------

foldr :: (a -> b -> b) -> b -> [a] -> b
foldr f z [] = z
foldr f z (x:xs) = f x (foldr f z xs)
----------

take :: Int -> [a] -> [a]
take n _ | n <= 0 = []
take _ [] = []
take n (x:xs) = x : take (n-1) xs
----------

splitAt :: Int -> [a] -> ([a],[a])
splitAt n xs = (take n xs, drop n xs)
----------
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
val list = List("USA", "Russia", "Germany")
for(country <- list)
println(country)

0 comments on commit b74de7b

Please sign in to comment.