diff options
Diffstat (limited to 'ue4/protokoll/protokoll.tex')
| -rw-r--r-- | ue4/protokoll/protokoll.tex | 10 |
1 files changed, 5 insertions, 5 deletions
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. | |||
| 40 | Wie gefordert, wurden die zwei zusätzliche Datentypen, \mbox{CDatSet} und \mbox{CDatN}, implementiert und der Programmcode generisch gestaltet. | 40 | Wie gefordert, wurden die zwei zusätzliche Datentypen, \mbox{CDatSet} und \mbox{CDatN}, implementiert und der Programmcode generisch gestaltet. |
| 41 | 41 | ||
| 42 | Dabei wurde \mbox{CDatSet} vom existierenden Typ \mbox{CDat} und boost::operators<\mbox{CDatSet}> mittels Mehrfachvererbung abgeleitet. | 42 | Dabei wurde \mbox{CDatSet} vom existierenden Typ \mbox{CDat} und boost::operators<\mbox{CDatSet}> mittels Mehrfachvererbung abgeleitet. |
| 43 | So war es möglich die Implemntierung, mittels Codewiederverwendung, auf das Überschreiben eines Kopierkonstruktors und des Operators \mbox{operator>>()} zu beschränken. | 43 | So war es möglich die Implementierung, mittels Codewiederverwendung, auf das Überschreiben eines Kopierkonstruktors und des Operators \mbox{operator>>()} zu beschränken. |
| 44 | 44 | ||
| 45 | Da 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 | 45 | Da 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 |
| 46 | Methode \mbox{align()} definiert, die sicherstellt, dass der transportierte Wert immer auf die geforderte Bitanzahl konvertiert wird. | 46 | Methode \mbox{align()} definiert, die sicherstellt, dass der transportierte Wert immer auf die geforderte Bitanzahl konvertiert wird. |
| 47 | Weiters wurde ein Kopierkonstruktor definiert, der einen Integerwert und einen vorzeichenlosen Integerwert als Argument erwartet. | 47 | Weiters wurde ein Kopierkonstruktor definiert, der einen Integerwert und einen vorzeichenlosen Integerwert als Argument erwartet. |
| 48 | Letzterer 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. | 48 | Letzterer 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. |
| 49 | Der Defaultkonstruktor wurde wie gewünscht deaktiviert. | 49 | Der Defaultkonstruktor wurde wie gewünscht deaktiviert. |
| 50 | 50 | ||
| 51 | Um nun die Wahl des Datentyps zu ermöglichen, wurde die Synopsis des Programms mit \mbox{``-f''} erweitert. | 51 | Um nun die Wahl des Datentyps zu ermöglichen, wurde die Synopsis des Programms mit \mbox{``-f''} erweitert. |
| 52 | Der Parameter dieser Option muß \mbox{``s''} oder ein Wert zwischen ``2'' und ``32'' sein. | 52 | Der Parameter dieser Option muss \mbox{``s''} oder ein Wert zwischen ``2'' und ``32'' sein. |
| 53 | Im Hauptprogramm wird nun anhand dieses Parameters der zuständige Datentyp instanziert und die template Methode | 53 | Im 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 | ||
| 56 | Damit das Programm mit den verschiedenen Datentypen umgehen kann, wurden \mbox{CCPU}, \mbox{CMem}, \mbox{CProgram}, \mbox{CInstuction} und die abgeleiteten \mbox{Instructions} | 56 | Damit 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 | ||
| 74 | Die Register von \mbox{CCPU} werden nun, anstatt in einem Array, in einem Vector verwaltet. | 74 | Die Register von \mbox{CCPU} werden nun, anstatt in einem Array, in einem Vector verwaltet. |
| 75 | Dieser wird mit der Anzahl der Register und dem, im Hauptprogramm, instanzierten Datentyp initialisiert. | 75 | Dieser wird mit der Anzahl der Register und dem, im Hauptprogramm, instanzierten Datentyp initialisiert. |
| 76 | Dadurch ist das Löschen der register im Destruktor nicht mehr notwendig. | 76 | Dadurch ist das Löschen der Register im Destruktor nicht mehr notwendig. |
| 77 | 77 | ||
| 78 | Siehe auch Punkt~\ref{Probleme und Fallstricke}.\\ | 78 | Siehe auch Punkt~\ref{Probleme und Fallstricke}.\\ |
| 79 | 79 | ||
