浏览代码

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 年之前
父节点
当前提交
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:
 \begin{itemize}
 	\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 Langsamer (pro Funktion) als vollständige Übersetzung
 	\item kann dynamisch ermittelte Laufzeiteigenschaften berücksichtigen (dynamische Optimierung)
 \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.
 
 Bei der \textit{vollständigen Übersetzung} wird der Quelltext vor der ersten

二进制
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([_|R], NewLength) :- lengthof(R,Length), NewLength is Length+1.
+lengthof([_|R], NewLength) :- lengthof(R,Length),
+                              NewLength is Length+1.