Browse Source

Vorschlag von Moritz (E-Mail vom 08.04.2014) umgesetzt; Fehler, den Jeremias über Facebook am 08.04.2014 berichtet hat, wurde behoben

Martin Thoma 11 years ago
parent
commit
8caf744da4

+ 17 - 1
documents/Programmierparadigmen/Compilerbau.tex

@@ -41,12 +41,28 @@ Die \textit{Just-in-time-Compiler}\xindex{Compiler!Just-in-time}\index{JIT|see{J
 Laufzeitübersetzung. Folgendes sind Vor- bzw. Nachteile von Just-in-time Compilern:
 Laufzeitübersetzung. Folgendes sind Vor- bzw. Nachteile von Just-in-time Compilern:
 \begin{itemize}
 \begin{itemize}
 	\item schneller als reine Interpretierer
 	\item schneller als reine Interpretierer
-	\item Speichergewinn: Quelle kompakter als Zielprogramm\todo{Was ist hier gemeint?}
+	\item Speichergewinn: Quelle kompakter als Zielprogramm (vgl. \cref{bsp:code-kompaktheit})
 	\item Schnellerer Start des Programms
 	\item Schnellerer Start des Programms
 	\item Langsamer (pro Funktion) als vollständige Übersetzung
 	\item Langsamer (pro Funktion) als vollständige Übersetzung
 	\item kann dynamisch ermittelte Laufzeiteigenschaften berücksichtigen (dynamische Optimierung)
 	\item kann dynamisch ermittelte Laufzeiteigenschaften berücksichtigen (dynamische Optimierung)
 \end{itemize}
 \end{itemize}
 
 
+\begin{beispiel}[Code-Kompaktheit]\label{bsp:code-kompaktheit}%
+    Man betrachte folgende Codestücke:
+
+    \inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=Hello.java]{java}{scripts/java/Hello.java}
+    \inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=hello-world.c]{c}{scripts/c/hello-world.c}
+
+    Nun zum Größenvergleich:
+
+    \begin{itemize}
+        \item Der C-Code ist 83 Byte groß,
+        \item der Java-Codee ist 123 Byte groß, 
+        \item der generierte Java Bytecode ist 416 Byte groß und
+        \item der erzeugt Maschinencode aus C ist 8565 Byte groß.
+    \end{itemize}
+\end{beispiel}
+
 Moderne virtuelle Maschinen für Java und für .NET nutzen JIT-Compiler.
 Moderne virtuelle Maschinen für Java und für .NET nutzen JIT-Compiler.
 
 
 Bei der \textit{vollständigen Übersetzung} wird der Quelltext vor der ersten
 Bei der \textit{vollständigen Übersetzung} wird der Quelltext vor der ersten

BIN
documents/Programmierparadigmen/Programmierparadigmen.pdf


+ 5 - 0
documents/Programmierparadigmen/scripts/java/Hello.java

@@ -0,0 +1,5 @@
+public class Hello {
+    public static void main(final String[] args) {
+        System.out.println("Hello World!");
+    }
+}

+ 2 - 1
documents/Programmierparadigmen/scripts/prolog/list-length.pl

@@ -1,2 +1,3 @@
 lengthof(L, 0) :- L == [].
 lengthof(L, 0) :- L == [].
-lengthof([_|R], NewLength) :- lengthof(R,Length), NewLength is Length+1.
+lengthof([_|R], NewLength) :- lengthof(R,Length),
+                              NewLength is Length+1.