summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGünther Neuwirth <e0626638@student.tuwien.ac.at>2009-05-29 20:03:04 +0200
committerGünther Neuwirth <e0626638@student.tuwien.ac.at>2009-05-29 20:03:04 +0200
commitd249cc2f9a9086e9aab8f62db34a7a653c213f97 (patch)
tree128b69b5c7bb407c26dfe640480a87d564c80a0c
parent52f2a3bb1d248dba6b1ac67fbb7ae219af5f4345 (diff)
downloadooprog-d249cc2f9a9086e9aab8f62db34a7a653c213f97.tar.gz
ooprog-d249cc2f9a9086e9aab8f62db34a7a653c213f97.tar.bz2
ooprog-d249cc2f9a9086e9aab8f62db34a7a653c213f97.zip
and again
-rw-r--r--ue4/mycpu/mycpu.cpp2
-rw-r--r--ue4/protokoll.pdfbin408808 -> 408797 bytes
-rw-r--r--ue4/protokoll/protokoll.tex10
3 files changed, 6 insertions, 6 deletions
diff --git a/ue4/mycpu/mycpu.cpp b/ue4/mycpu/mycpu.cpp
index 528537e..e9525d2 100644
--- a/ue4/mycpu/mycpu.cpp
+++ b/ue4/mycpu/mycpu.cpp
@@ -114,7 +114,7 @@ void cpu_run(string& me, po::variables_map& vm, unsigned registers, T& datatype)
114 * @return 0 on success, not 0 otherwise 114 * @return 0 on success, not 0 otherwise
115 * @globalvars none 115 * @globalvars none
116 * @exception none 116 * @exception none
117 * @pre at least -c must be specified. 117 * @pre none
118 * @post terminate with 0 if success else 1. 118 * @post terminate with 0 if success else 1.
119 * 119 *
120 * parse commandline options, create and initialize memory, 120 * parse commandline options, create and initialize memory,
diff --git a/ue4/protokoll.pdf b/ue4/protokoll.pdf
index 461e8fa..06311b9 100644
--- a/ue4/protokoll.pdf
+++ b/ue4/protokoll.pdf
Binary files differ
diff --git a/ue4/protokoll/protokoll.tex b/ue4/protokoll/protokoll.tex
index 3c0eb9e..87a556a 100644
--- a/ue4/protokoll/protokoll.tex
+++ b/ue4/protokoll/protokoll.tex
@@ -40,17 +40,17 @@ Abbildung~\ref{fig:classdiagram1} zeigt das Klassendiagramm der Aufgabe.
40Wie gefordert, wurden die zwei zusätzliche Datentypen, \mbox{CDatSet} und \mbox{CDatN}, implementiert und der Programmcode generisch gestaltet. 40Wie gefordert, wurden die zwei zusätzliche Datentypen, \mbox{CDatSet} und \mbox{CDatN}, implementiert und der Programmcode generisch gestaltet.
41 41
42Dabei wurde \mbox{CDatSet} vom existierenden Typ \mbox{CDat} und boost::operators<\mbox{CDatSet}> mittels Mehrfachvererbung abgeleitet. 42Dabei wurde \mbox{CDatSet} vom existierenden Typ \mbox{CDat} und boost::operators<\mbox{CDatSet}> mittels Mehrfachvererbung abgeleitet.
43So war es möglich die Implemntierung, mittels Codewiederverwendung, auf das Überschreiben eines Kopierkonstruktors und des Operators \mbox{operator>>()} zu beschränken. 43So war es möglich die Implementierung, mittels Codewiederverwendung, auf das Überschreiben eines Kopierkonstruktors und des Operators \mbox{operator>>()} zu beschränken.
44 44
45Da der Typ \mbox{CDatN} Werte variabler Bitlänge representiert, war es notwendig diesen vollständig neu zu implementieren. Es wurde von boost::operators<\mbox{CDatN}> abgeleitet und dabei eine zusätzliche 45Da der Typ \mbox{CDatN} Werte variabler Bitlänge repräsentiert, war es notwendig diesen vollständig neu zu implementieren. Es wurde von boost::operators<\mbox{CDatN}> abgeleitet und dabei eine zusätzliche
46Methode \mbox{align()} definiert, die sicherstellt, dass der transportierte Wert immer auf die geforderte Bitanzahl konvertiert wird. 46Methode \mbox{align()} definiert, die sicherstellt, dass der transportierte Wert immer auf die geforderte Bitanzahl konvertiert wird.
47Weiters wurde ein Kopierkonstruktor definiert, der einen Integerwert und einen vorzeichenlosen Integerwert als Argument erwartet. 47Weiters wurde ein Kopierkonstruktor definiert, der einen Integerwert und einen vorzeichenlosen Integerwert als Argument erwartet.
48Letzterer ist mit dem Defaultwert 31 deklariert und repräsentiert die Bitanzahl, auf die ersterer konvertiert wird. Damit ist es möglich alle vorhandenen Datentypen einheitlich zu verarbeiten. 48Letzterer ist mit dem Defaultwert 31 deklariert und repräsentiert die Bitanzahl, auf die ersterer konvertiert wird. Damit ist es möglich alle vorhandenen Datentypen einheitlich zu verarbeiten.
49Der Defaultkonstruktor wurde wie gewünscht deaktiviert. 49Der Defaultkonstruktor wurde wie gewünscht deaktiviert.
50 50
51Um nun die Wahl des Datentyps zu ermöglichen, wurde die Synopsis des Programms mit \mbox{``-f''} erweitert. 51Um nun die Wahl des Datentyps zu ermöglichen, wurde die Synopsis des Programms mit \mbox{``-f''} erweitert.
52Der Parameter dieser Option muß \mbox{``s''} oder ein Wert zwischen ``2'' und ``32'' sein. 52Der Parameter dieser Option muss \mbox{``s''} oder ein Wert zwischen ``2'' und ``32'' sein.
53Im Hauptprogramm wird nun anhand dieses Parameters der zuständige Datentyp instanziert und die template Methode 53Im Hauptprogramm wird nun anhand dieses Parameters der zuständige Datentyp instanziert und die Templatemethode
54\mbox{cpu\_run()} aufgerufen, welche die Initialisierung und Abarbeitung des Programms anstößt. 54\mbox{cpu\_run()} aufgerufen, welche die Initialisierung und Abarbeitung des Programms anstößt.
55 55
56Damit das Programm mit den verschiedenen Datentypen umgehen kann, wurden \mbox{CCPU}, \mbox{CMem}, \mbox{CProgram}, \mbox{CInstuction} und die abgeleiteten \mbox{Instructions} 56Damit das Programm mit den verschiedenen Datentypen umgehen kann, wurden \mbox{CCPU}, \mbox{CMem}, \mbox{CProgram}, \mbox{CInstuction} und die abgeleiteten \mbox{Instructions}
@@ -73,7 +73,7 @@ zu Templates umgewandelt, die als Typparameter den, im Hauptprogramm, instanzier
73 73
74Die Register von \mbox{CCPU} werden nun, anstatt in einem Array, in einem Vector verwaltet. 74Die Register von \mbox{CCPU} werden nun, anstatt in einem Array, in einem Vector verwaltet.
75Dieser wird mit der Anzahl der Register und dem, im Hauptprogramm, instanzierten Datentyp initialisiert. 75Dieser wird mit der Anzahl der Register und dem, im Hauptprogramm, instanzierten Datentyp initialisiert.
76Dadurch ist das Löschen der register im Destruktor nicht mehr notwendig. 76Dadurch ist das Löschen der Register im Destruktor nicht mehr notwendig.
77 77
78Siehe auch Punkt~\ref{Probleme und Fallstricke}.\\ 78Siehe auch Punkt~\ref{Probleme und Fallstricke}.\\
79 79