Iteration 1 Iteration 2
|
|
- Laura Schulz
- vor 5 Jahren
- Abrufe
Transkript
1 SHORT_TERM_ANALYSIS_FILTER Sheet of ST/SET_NEXT_STATE/NEXT_STATE_VALUE ERM_ANALYSIS_FILTER/TB_SIG_u_enable( YSIS_FILTER/TB_SIG_ATTSIGIN_u_data(: SIS_FILTER/TB_SIG_ATTSIGIN_u_read(: YSIS_FILTER/TB_SIG_ATTSIGIN_u_addr(: RM_ANALYSIS_FILTER/TB_SIG_rp_enable( SIS_FILTER/TB_SIG_ATTSIGIN_rp_read(: YSIS_FILTER/TB_SIG_ATTSIGIN_rp_addr(: ERM_ANALYSIS_FILTER/TB_SIG_s_enable( YSIS_FILTER/TB_SIG_ATTSIGIN_s_data(: YSIS_FILTER/TB_SIG_ATTSIGIN_s_read(: LYSIS_FILTER/TB_SIG_ATTSIGIN_s_addr(: 8 8 U U FFFFF FFFFFF FFFFFF 9D 9D CCC 8A 8A FFFFF8 FFFFFFAA FFFFFFAA FFE AC AC 8E B B FA A FFFFF FFFFFFD FFFFFFD CCC A 9 A FFFFF8 8 8 FFE FFFFFFB FFFFFFB AF F AF 8E FA FFFFFE8 FFFFFE8 FFFFF FFFFFE8 Iteration Iteration
2 grep -B PIN_SHORT_TERM_ANALYSIS_FILTER_ATTSIGIN_U_DATA sim.log >& U.log grep -B PIN_SHORT_TERM_ANALYSIS_FILTER_ATTSIGIN_S_DAT sim.log >& S.log Dateien U.log und S.log, aus denen die Inhalte der Arrays s und u abgelesen werden können. Die Simulationszeit für die gesamte ersten Iteration der äußeren Schleife beträgt ns. Das Protokoll an der Schnittstelle für die ersten ns (entsprechend den ersten beiden Iterationen der inneren Schleife ist auf der folgenden Seite dargestellt. Wie man leicht erkennt, entsprechen die simulierten Werte den innerhalb der Software-Lösung berechneten Werten (siehe test.results: u[] = u[] = FFFFFF u[] = 9D u[] = 8A u[] = FFFFFFAA u[] = AC u[] = u[] = B s[] = u[] = u[] = u[] = FFFFFFD u[] = A u[] = 8 u[] = FFFFFFB u[] = AF u[] =... usw... Mitgelieferte Dateien Folgende Dateien wurden auf dem Dresdener Server abgelegt: Dateiname B_Infos.ps staf.c staf.blif staf.vhdl README staf_testbench.vhdl sim.inc dbx.inc test.au test.au.org test.au.gsm.org test.pattern test.results Inhalt Diese Datei Optimierte Funktion Short_term_analysis_filter (C Optimierte und synthetisierte Funktion Short_term_analysis_filter (BLIF Optimierte und synthetisierte Funktion Short_term_analysis_filter (VHDL Informationen zur VHDL-Simulation Testbench zur VHDL-Simulation Inklusionsdatei für vhdlsim Inklusionsdatei für vhdldbx Test-Audio-Datei (zum Komprimieren / Dekomprimieren Test-Audio-Datei (Referenzversion für test.au Komprimierte Test-Audio-Datei (Referenzversion für test.au.gsm Eingabe-Testmuster (entsprechend test.au Testantworten für die Stimuli aus test.pattern
3 Die Schnittstelle zum Speicher (Array-Zugriffe besitzen folgende Charakteristika: Es findet kein explizites Speichern bzw. Laden in bzw. vom Speicher statt. Das Schreiben eines Datums in den Speicher erfolgt bei enable= mit steigender Clock-Flanke. In diesem Fall wird das datum data_in unter der Adresse data_adr im Speicher abgelegt. Analoges gilt für das Lesen eines Datums mit enable=. Jedes Array innerhalb der Parameterliste verursacht die Instanziierung eines eigenen Speichers. Die so erzeugte RT-Struktur liegt für die kooperierenden Teilprojekte in Form einer Struktur- VHDL Beschreibung sowie im BLIF-Format vor. Simulation der VHDL-Beschreibung Zur Verifikation der Korrektheit der so erhaltenen RT-Beschreibungen wurde diese simuliert. Im folgenden soll die Vorgehensweise bei der Simulation genauer beschrieben werden, um so insbesondere die Funktionalität der Speicherschnittstelle zu demonstrieren. Die Funktion Short_term_analysis_filter(... besitzt als Eingabe-Parameter Integer-Arrays u[...], rp[...] und s[...9] sowie ein skalarer Integer-Wert k_n, und liefert nach deren Abarbeitung die generierten Werte innhalb den Arrays u[...] und s[...9]. Simuliert wurde eine komplette Iteration der äußeren Schleife (also eine achtmalige Iteration der inneren Schleife der Funktion Short_term_analysis_filter(... Dabei wurde als Testmuster eine vorhandene Audio-Datei test.au verwendet. Um die entsprechenden Daten explizit zu erhalten, wurden die beiden Funktionen Short_term_analysis_filtering(... und short_term_analysis_filter(... derart modifiziert, daß sämtlich relevanten Daten in einer Testdaten-Datei test.stimuli sowie einer Testantwort-Datei test.results protokolliert wurden. Zur Simulation der VHDL-Beschreibung staf.vhdl ( staf steht für short term analysis filter wurde eine Testbench staf_testbench.vhdl generiert, innerhalb welcher die Stimuli der Testdaten-Datei für die erste Iteration der äußeren Schleife als Testmuster für die VHDL-Simulation verwendet wurden. Die Durchführung der Simulation erfolgte unter Verwendung von Synopsys Werkzeugen. Nach einer Analyse mittels vhdlan staf.vhdl staf_testbench.vhdl erfolgt die eigentliche Simulation mittels Startet man vhdlsim -t NS -i sim.inc STAF_TEST_CONFIG > sim.log. vhdldbx -t NS STAF_TEST_CONFIG und inkludiert include dbx.inc, kann man sich die entsprechenden Waveforms darstellen lassen. Für eine Kontrolle der Schnittstelle zum Speicher erhält man mittels enable data_adr data_in data_out Speicher
4 Optimierung mittels High-Level Transformationen Die Funktion Short_term_analysis_filter(... wurde mittels High-Level Transformationen optimiert. Dabei kamen zur Anwendung: Elimination von Operatoren mit konstanten Argumenten, Elimination von Zwischenvariablen, Substitution von Doppelnegationen durch Additionen, Normalisierung von Verzweigungsbedingungen, Optimierung von Speicherzugriffen. Sämtliche dieser Transformationen sind Kontrollfluß-erhaltend, d.h. die eigentliche Kontrollfluß-Struktur des Algorithmus (zwei ineinander geschachtelte Schleifen bleibt unverändert. Die dazu erforderlichen Transformationen sind relativ schnell, was sich im Hinblick auf eine Echtzeit-Demonstration positiv auswirkt. Des weiteren ist die Tatsache eines nicht veränderten Kontrollflusses evtl. für andere Teilprojekte vorteilhaft oder wesentlich, z.b. für systolische Arrays (?. Zusätzlich zu den zuvor angesprochenen Transformationen wurden noch weitere Optimierungen durchgeführt, z.b. ein vollständiges (oder partielles Entrollen der inneren Schleife, gefolgt von einer Eliminierung des inneren Schleifenzählers (i. Diese Transformationen besitzen jedoch eine wesentlich höhere Komplexität und somit auch Laufzeit. Ferner entsteht durch das Entrollen der Schleife ein für Demonstrations-Zwecke evtl. bereits zu großer Controller (mit immerhin Zuständen und Zustandsübergängen. Aus diesen Gründen schlagen wir als Grundlage für die weiteren Betrachtungen den mittels den Struktur-erhaltenden Transformationen (s.o. optimierten Entwurf vor. Falls von Seiten eines Teilprojekts Interesse an dem mittels Schleife-Entrollen weiter optimierten Entwurf vorhanden sein, bitte ich, sich mit mir in Verbindung zu setzen High-Level Synthese Die so erhaltene Beschreibung wurde mit unseres High-Level Sythese-Systems PMOSS synthetisiert. Im folgenden sind einige wesentliche Merkmale aufgeführt: Es wurde ein Multiplexer-basierter Entwurf generiert (also eine Mux-Register-Mux- Funktionale Einheit -Struktur erzeugt. Es wurden keine (bzw. eine nur ausreichend schwache Ressoucen-Beschränkungen formuliert. Der erzeugte Entwurf erfordert einen an funktionalen Einheiten einen Multiplizierer, einen Addierer und einen > -Komparator (jeweils Der Wortbreite bit, einen Subtrahierer der Wortbreite bit, sowie einen Addierer und < -Komparator der Wortbreite 8 bit. Wie sich herausstellte, ist der Algorithmus aufgrund seiner Struktur sowieso nicht in der Lage, eine größere Anzahl von funktionalen Einheiten auszunutzen. Der Entwurf erfordert ferner zwei 8-bit und fünf -bit-register, sowie dreizehn Multiplexer mit insgesamt fünfunddreißig Eingängen. PMOSS erlaubt mittels spezieller Funktionen Einfluß auf die innerhalb der Synthese zu generierenden Wortbreite eines Datums zu nehmen. Im konkreten Fall wurden den Variablen k_n, i und j jeweils die Wortbreite 8 bit, sowie den verbleibenden Variablen und Arrays di, ui, sav, rpi, ltm und u[8], rp[8], s[] jeweils die Wortbreiten bit zugeordnet.
5 Des weiteren wurden (zur Verbesserung der Lesbarkeit die durch die Makro-Expansion entstandenen a? b : c -Konstruktionen durch äquivalente if (a b c -Konstrukte ersetzt. Die Korrektheit dieser Modifikationen wurde durch Testläufe mit anschließendem Vergleich der Ergebnisdaten verifiziert. Man erhält so Funktionen Short_term_analysis_filtering(... undshort_term_analysis_filter(... von der im nachfolgenden dargestellten Form: static void Short_term_analysis_filtering P((S,rp,k_n,s, struct gsm_state *S, register word *rp, register int k_n, register word *s signed int arg[8]; signed int arg[8]; signed int arg; signed int arg[]; word *u; int i; u = S->u; for (i = ; i < 8; i++ arg[i] = (signed int u[i]; arg[i] = (signed int rp[i]; arg = (signed int k_n; for (i = ; i < k_n; i++ arg[i] = (signed int s[i]; Short_term_analysis_filter(arg,arg,arg,arg; for (i = ; i < 8; i++ S->u[i] = (word arg[i]; for (i = ; i < k_n; i++ s[i] = (word arg[i]; static void Short_term_analysis_filter ( int u[8], int rp[8], int k_n, int s[] int di; int zzz; int ui; int sav; int rpi; int ltmp; int i; int j; for (j = ; j < k_n; j++ di = s[j]; sav = di; for (i = ; i < 8; i++ ui = u[i]; rpi = rp[i]; u[i] = sav; zzz = (rpi * di + 8 >> ; ltmp = ui + zzz; if ((ltmp - ((- - > - ((- - if (ltmp > sav = ; sav = (- - ; sav = ltmp; zzz = (rpi * ui + 8 >> ; ltmp = di + zzz; if ((ltmp - ((- - > - ((- - if (ltmp > di = ; di = (- - ; di = ltmp; s[j] = di;
6 Diese Entscheidung konnte mit dem Software-Werkzeug Quantify (PureSoftware bestätigt werden, welches für die besagte Funktion bei der Komprimierung einer Beispiel-Datei einen Anteil an der Gesamtlaufzeit von ca. % ermitteln konnte. Anpassung der Schnittstelle Nach Expansion der Makros GSM_MULT_R und GSM_ADD besitzt die Funktion Short_term_analysis_filtering(... folgenden Gestalt: static void Short_term_analysis_filtering ( struct gsm_state *S, register word *rp, register int k_n, register word *s register word *u = S->u; register int i; register word di, zzz, ui, sav, rpi; register longword ltmp; for (; k_n--; s++ di = sav = *s; for (i = ; i < 8; i++ ui = u[i]; rpi = rp[i]; u[i] = sav; zzz = ((( ((longword( rpi * (longword( di + 8 >> ( ; sav = ((ulongword((ltmp = (longword( ui + (longword( zzz - (- - > - (- -? (ltmp >? : (- - : ltmp ; zzz = ((( ((longword( rpi * (longword( ui + 8 >> ( ; di = ((ulongword((ltmp = (longword( di + (longword( zzz - (- - > - (- -? (ltmp >? : (- - : ltmp ; *s = di; Um eine Bearbeitung der Funktion mittels unseres High-Level Synthese-Systems PMOSS zu ermöglichen, mußte eine Anpassung der Funktions-Schnittstelle vorgenommen werden, um eine Übergabe von dynamischen Datenstrukturen in der Funktions-Schnittstelle zu verhindert. Dazu wurde die Funktion Short_term_analysis_filtering(... ersetzt durch ein Paar von Funktionen Short_term_analysis_filtering(... Short_term_analysis_filter(... mit identischer Funktionalität. und Innerhalb der Funktion Short_term_analysis_filtering(... erfolgt eine Umsetzung der dynamischen Aufruf- und Ergebnis-Parameter (Zeiger in eine Array-Darstellung (mit zur Übersetzungszeit bekannter Größe. Die Abarbeitung des eigentlichen Codierungs-Algorithmus wird innerhalb der Funktion Short_term_analysis_filter(... vorgenommen.
7 HW/SW-Codesign und High-Level Synthese des Vollraten-Sprach-Transcodierers GSM. Joachim Gerlach Heinz-Josef Eikerling Wolfram Hardt Im folgenden sind die von B durchgeführten Schritte zum Demonstrator 9 dokumentiert. Im einzelnen wurde durchgeführt: HW/SW-Partitionierung der Gesamtbeschreibung, dabei Identifikation der Funktion Short_term_analysis_filtering(... für eine HW-Realisierung. Vorbereitung der Funktion Short_term_analysis_filtering(... für die HW-Synthese. Optimierung des Entwurfs mittels High-Level Transformationen. Durchführung der High-Level-Synthese. Simulation des synthetisierten Entwurfs. Im folgenden werden die einzelnen Schritte genauer erläutert. HW/SW-Partitionierung Zunächst wurde die Gesamtbeschreibung des Vollraten-Sprach-Transcodierers GSM. einer HW/SW-Partitionierung unterzogen. Dabei wurden statische Kriterien, dynamische Kriterien, Schnittstellen-Parameter sowie Speicherzugriffs-Verhalten berücksichtigt. Innerhalb dieser Phase wurde ein Modul detektiert, welches sich für eine Hardware-Beschleunigung eignet. Dieses entspricht der Funktion Short_term_analysis_filtering(...: static void Short_term_analysis_filtering P((S,rp,k_n,s, struct gsm_state *S, register word *rp, register int k_n, register word *s register word * u = S->u; register int i; register word di, zzz, ui, sav, rpi; register longword ltmp; for (; k_n--; s++ di = sav = *s; for (i = ; i < 8; i++ ui = u[i]; rpi = rp[i]; u[i] = sav; zzz = GSM_MULT_R(rpi, di; sav = GSM_ADD( ui, zzz; zzz = GSM_MULT_R(rpi, ui; di = GSM_ADD( di, zzz ; *s = di;
Transformationale Entwurfsraum-Exploration für den Entwurf eingebetteter Systeme
Transformationale Entwurfsraum-Exploration für den Entwurf eingebetteter Systeme Dissertation der Fakultät für Informatik der Eberhard-Karls-Universität zu Tübingen zur Erlangung des Grades eines Doktors
Mehr7 Laufzeit-Speicherverwaltung
7.1 Grundlagen Bevor wir die Code-Generierung betrachten, müssen wir uns Gedanken über zur Laufzeit des zu generierenden Programms notwendige Aktivitäten zur Zuordnung und Freigabe von Speicherplatz machen.
MehrInformatik. Pointer (Dynamisch) Vorlesung. 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1
Informatik Vorlesung 08 Pointer (Dynamisch) 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Pointer (Zeiger) Dynam. Speicher Bisher: Speicherbedarf muss
MehrK Ergänzungen zur Einführung in C
K Ergänzungen zur Einführung in C K Ergänzungen zur Einführung in C K.1 Zeiger, Felder und Zeichenketten Zeichenketten sind Felder von Einzelzeichen (char), die in der internen Darstellung durch ein \0
MehrVersuchsreihe 7. Registerfile. Registerfile + Programmzähler. HaPra Versuchsreihe 7 - Registerfile + Programmzähler. 32 Register à 32 Bit
HaPra 2007 - Versuchsreihe 7 - Registerfile + Programmzähler Versuchsreihe 7 Registerfile + Programmzähler Registerfile Register à Bit Schreiben in Register: - Dateneingang D(31:0) - Adresseingang A_D(4:0)
Mehr1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation Spezifikation: Angabe, was ein Programm tun
Mehr1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation Spezifikation: Angabe, was ein Programm tun
MehrPaul Molitor und Jörg Ritter VHDL. Eine Einführung. ein Imprint von Pearson Education
Paul Molitor und Jörg Ritter VHDL Eine Einführung ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam Inhaltsverzeichnis
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 2)
DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und
MehrStackmaschine; Speicheradressierung
Stackmaschine; Speicheradressierung Erweiterung um globalen Speicher (Heap, Halde) pro Speicherplatz eine Zahl. Notation ist als Array SP [0..]. Zugriff mittels Adresse (Index): eine Zahl i.a.: Zahlen
MehrInnere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrFACHHOCHSCHULE MANNHEIM
für Java-Programmierer Der Präprozessor Prof. Dr. Wolfgang Schramm FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Präprozessor Ist dem Compiler vorgeschaltet ( Prä -). Spezielle Anweisungen
MehrKlassenvariablen, Klassenmethoden
Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden
MehrPhysische Datenstrukturen
Elementare Datentypen Strukturierte Datentypen Zeiger Seite 1 Einfache Datentypen Datentyp char Verwendung: ASCII-Zeichen Wertebereich: alle darstellbaren Zeichen, 8 bit lange Ganzzahlen im Intervall -128
MehrGI Vektoren
Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung
MehrInhalt. 4.9 Typen, Variable und Konstante
Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Pointern
MehrTeilprüfung Software- und Internettechnologie Programmierkurs 2 Wintersemester 2004/2005
Universität Mannheim Fakultät für Mathematik und Informatik Lehrstuhl für Praktische Informatik IV Prof. Dr. Wolfgang Effelsberg Teilprüfung Software- und Internettechnologie Programmierkurs 2 Wintersemester
MehrHardwarepraktikum WS 1997/98. Versuch 5. Sequentielle Systeme II
Hardwarepraktikum WS 1997/98 Versuch 5 Sequentielle Systeme II Jan Horbach, 17518 hris Hübsch, 17543 Lars Jordan, 17560 Seite 1 Aufgabenstellung Entwerfen und realisieren Sie unter Verwendung dreier JK-MS-FF
MehrGedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.
Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit
MehrVHDL - Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg
VHDL - Synthese Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2007/2008 VHDL - Synthese 1/19 2007-10-27 Inhalt Begriff Arten
MehrZeiger vom Typ void* benötigen weniger Speicher als andere Zeiger, da bei anderen Zeigertypen zusätzlich die Größe gespeichert werden muss.
EZS-Test Fragen zur Programmiersprache C Fragen entnommen aus SPiC 1 1. Ein Hauptprogramm und eine Interruptbehandlung greifen nebenläufig auf die Variable uint16_t foo zu. Das Hauptprogramm verwendet
MehrProgrammierung für Mathematik HS11
software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren
MehrProgrammieren I. Kapitel 5. Kontrollfluss
Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,
MehrEinstieg in die Informatik mit Java
1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen
MehrTag 4 Repetitorium Informatik (Java)
Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)
MehrZwischencode-Erzeugung. 2. Juni 2009
Zwischencode-Erzeugung im Rahmen des Seminars "Übersetzung von künstlichen Sprachen" Sebastian Hanneken 2. Juni 2009 1 / 32 1 Einleitung Einordnung Funktion von Zwischencode 3-Adresscode (3AC) 2 Erzeugung
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrProgrammieren, Wintersemester 13/14 Übungsleiter: Sebastian Ebers Aufgabenblatt 3
Übung zur Vorlesung Programmieren, Wintersemester 13/14 Übungsleiter: Sebastian Ebers Allgemeines Aufgabenblatt 3 Abgabe: 10.12.2013, vor der Vorlesung (14:15 Uhr, AM 1) Max.
MehrLOOP-Programme: Syntaktische Komponenten
LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=
MehrMaster-Thread führt Programm aus, bis durch die Direktive
OpenMP seit 1998 Standard (www.openmp.org) für die Shared-Memory Programmierung; (Prä-)Compiler für viele Systeme kommerziell oder frei (z.b. Omni von phase.hpcc.jp/omni) verfügbar Idee: automatische Generierung
Mehr2 Teil 2: Nassi-Schneiderman
2 Teil 2: Nassi-Schneiderman Wie kann man Nassi-Schneiderman in einer objektorientierten Sprache verwenden? Jedes Objekt besitzt Methoden, welche die Attribute des Objektes verändern. Das Verhalten der
MehrEinführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin
Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm
MehrÜbungspaket 29 Dynamische Speicherverwaltung: malloc() und free()
Übungspaket 29 Dynamische Speicherverwaltung malloc() und free() Übungsziele Skript In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten
MehrSoftware Maintenance. Anmerkung zu Program Slicing UNIV.-PROF. DIPL.-ING. DR. FRANZ WOTAWA
Software Maintenance UNIV.-PROF. DIPL.-ING. DR. FRANZ WOTAWA Technische Universität Graz, Institut für Softwaretechnologie wotawa@ist.tugraz.at Anmerkung zu Program Slicing Infolge werden wir uns den Static
MehrMögliche Praktikumsaufgaben
Kapitel 8 Mögliche Praktikumsaufgaben 8.1 System on a Chip : Entwurf eines Sound-Moduls In diesem Praktikum soll ein Sound-Modul (Soundkarte) mit Master-Zugang zum Core Connect PLB-Bus entworfen werden.
MehrMethoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
MehrProgrammierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
MehrArrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3
Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................
MehrCS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)
CS005 Objektorientierte Programmierung Bachelor of Science (Informatik) Th Letschert Felder Seite Th Letschert OOP Felder / Arrays Seite 2 Th Letschert Feld / Array Feld (auch Array) Daten unter einem
MehrBounded Model Checking mit SystemC
Bounded Model Checking mit SystemC S. Kinder, R. Drechsler, J. Peleska Universität Bremen {kinder,drechsle,jp}@informatik.uni-bremen.de 2 Überblick Motivation Formale Verifikation Äquivalenzvergleich Eigenschaftsprüfung
Mehr2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen
Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29
Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente
Mehreinlesen n > 0? Ausgabe Negative Zahl
1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen
MehrGrundlagen der Technischen Informatik. 13. Übung
Grundlagen der Technischen Informatik 13. Übung Christian Knell Keine Garantie für Korrekt-/Vollständigkeit 13. Übungsblatt Themen Aufgabe 1: Aufgabe 2: Aufgabe 3: Aufgabe 4: Arithmetik VHDL - Funktionen
MehrIntegrated HW/SW Systems Group 20 November 2009 Prof. Dr.-Ing. habil. Andreas Mitschele-Thiel.
Erweiterte Simulation / Aufgaben 20 November 2009 Prof. Dr.-Ing. habil. Andreas Mitschele-Thiel Self-Organization 20 November 2009 1 Inhalt Erweiterung der Simulation Ausgabe der Bilddaten in eine Datei
Mehrn 1. Erste Schritte n 2. Einfache Datentypen n 3. Anweisungen und Kontrollstrukturen n 4. Verifikation n 5. Reihungen (Arrays)
n 1. Erste Schritte n 2. Einfache Datentypen n 3. Anweisungen und Kontrollstrukturen n 4. Verifikation n 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation n Spezifikation: Angabe, was ein
MehrGliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik
Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.
MehrARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen
ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen Aufgabenstellung: - das beigefügte Assembler-Programm schrittweise ausführen - sich mit der Handhabung der Entwicklungswerkzeuge
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrKlausur: Informatik, am 11. Juli 2013 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 15 Pkt.) Was liefert
MehrVerhalten. Def. und Nutzen von Verhalten. Pseudocode Schreibtischtest. Algorithmen
Verhalten Def. und Nutzen von Verhalten Algorithmen Pseudocode Schreibtischtest Verhalten & Pseudocode Das Verhalten beschreibt, wie sich die Datenstrukturen (Variablen) eines Programms verändern müssen,
MehrEinstieg in die Informatik mit Java
1 / 18 Einstieg in die Informatik mit Java Klassenvariablen, Klassenmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden
MehrISO-SiMMlarcl. als erste Programmiersprache. Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage
ISO-SiMMlarcl als erste Programmiersprache Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage B.G.Teubner Stuttgart Leipzig 1999 Inhaltsverzeichnis 1.1 Algorithmen und
Mehr2 Initialisierung clk_mkand= clk_produkt= multiplexer= init/>>1= 6 Schieben clk_mkand= clk_produkt= multiplexer= init/>>1=
Arithmetische Schaltungen c) Vervollständigen Sie nachfolgend abgebildeten Zustands-Automaten so, dass er den Multiplizierer wie gewünscht steuert. Nehmen Sie an, dass Sie zur Detektion des Schleifen-Abbruchs
MehrD.5 Versuchsreihe 5: Arithmetisch-Logische Einheit
D.5: Versuchsreihe 5: Arithmetisch-Logische Einheit D D.5 Versuchsreihe 5: Arithmetisch-Logische Einheit Abgabedatum: 21.05.2010 Name: Gruppe: Theorie: Versuch: (vom Tutor abzuzeichnen) (vom Tutor abzuzeichnen)
MehrUlrich Stein
Von C nach MATLAB Einführung in MATLAB für Personen mit C-Kenntnissen Datentypen ähnlich in C und MATLAB, dort aber automatische Typzuweisung möglich double a = 2; Arrays a = double( 2 ); aber auch a =
Mehr2.2 Register-Transfer-Synthese
2.2 Register-Transfer-Synthese Register-Transfer-Synthese Überblick digitale Synthese Register-Transfer- Synthese Makrozellgeneratoren Beispiel Addierer Beispiel Speicher Synthese endlicher Automaten Zustandskodierung
MehrProgrammieren 1 C Überblick
Programmieren C Überblick. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen
MehrGegeben sind die folgenden Programmausschnitte: I. Programmausschnitt: II. Programmausschnitt: III. Programmausschnitt: IV. Programmausschnitt:
Technische Informatik für Ingenieure WS 00/0 Übungsblatt Nr. 0. Januar 0 Übungsgruppenleiter: Matthias Fischer Mouns Almarrani Rafał Dorociak Michael Feldmann Thomas Gewering Benjamin Koch Dominik Lüke
MehrSerielle Kommunikation - Kodierung
Serielle Kommunikation - Kodierung (1.) Erstellen Sie nachfolgende Klasse: Dabei haben die Methoden folgende Funktionen: exists(): Überprüft, ob eine serielle Schnittstelle existiert getproperties(): Liefert
Mehr3.8 Sequentieller Multiplizierer 159
.8 Sequentieller Multiplizierer 59 Nachfolgende Abbildung zeigt den (unvollständigen) Aufbau einer Schaltung zur Implementierung des gezeigten Multiplikationsverfahrens. b) Vervollständigen Sie die Schaltung
MehrInformatik 1 ( ) D-MAVT F2010. Rekursion, Signaturen. Yves Brise Übungsstunde 8
Informatik 1 (251-0832-00) D-MAVT F2010 Rekursion, Signaturen Nachbesprechung Blatt 6 Aufgabe 1 - Strukturen und Zeiger Genau die Variablen angeben, die sich geändert haben. Implizite Initialisierung ergänzt
MehrArithmetische Schaltungen: log(n)-addierer
Arithmetische Schaltungen: log(n)-addierer Prof. Dr. Paul Molitor Institut für Informatik Martin-Luther-Universität Halle Aufbau der Lehrveranstaltung Literaturangaben Allgemeines zum Entwurf digitaler
MehrÜbersicht. Speichertypen. Speicherverwaltung und -nutzung. Programmieren in C
Übersicht Speichertypen Speicherverwaltung und -nutzung Speichertypen Beim Laden eines Programms in den Speicher (Programmausführung) kommen 3 verschiedene Speicherbereiche zum Einsatz: Text Segment (Code
MehrVortrag zum Hauptseminar Hardware/Software Co-Design
Fakultät Informatik Institut für Technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Vortrag zum Hauptseminar Hardware/Software Co-Design Robert Mißbach Dresden, 02.07.2008
Mehrzu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
MehrAssembler - Einleitung
Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache
MehrI EINLEITUNG SYNTAX SPEZIELLE PROBLEME BEISPIEL AUSBLICK
I EINLEITUNG SYNTAX SPEZIELLE PROBLEME BEISPIEL AUSBLICK... 1... V H D L Tim Köhler April 2005 I EINLEITUNG SYNTAX SPEZIELLE PROBLEME BEISPIEL AUSBLICK... 2... Übersicht 1. Einleitung 2. Syntax 3. Spezielle
MehrCrashkurs C++ - Teil 1
Crashkurs C++ - Teil 1 Intro Speicherverwaltung Variablen, Pointer, Referenzen Felder statische & dynamische Allozierung Birgit Möller & Denis Williams AG Bioinformatik & Mustererkennung Institut für Informatik
Mehr! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation! Spezifikation: Angabe, was ein Programm
MehrRichtig einsteigen: Access 2007 VBA-Programmierung
Lorenz Hölscher Richtig einsteigen: Access 2007 VBA-Programmierung Miaosott Teill Erste Schritte 1 Einleitung 9 1.1 Die Themenschwerpunkte dieses Buches 9 Visual Basic for Applications 9 Die Beispiel-Datenbank
MehrPräfix-Summe. Das Schweizer Offiziersmesser der Parallelen Algorithmen. Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen
Präfix-Summe Das Schweizer Offiziersmesser der Parallelen Algorithmen Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen Parallele Rechenmodelle Beispiel: Summieren von Zahlen Verlauf des Rechenprozesses:
MehrMethoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
MehrDas Generalized Birthday Problem
Das Generalized Birthday Problem Problem Birthday Gegeben: L 1, L 2 Listen mit Elementen aus {0, 1} n Gesucht: x 1 L 1 und x 2 L 2 mit x 1 x 2 = 0. Anwendungen: Meet-in-the-Middle Angriffe (z.b. für RSA,
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen Lerneinheit : Dynamisches Programmieren Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester.. Einleitung Diese Lerneinheit widmet sich einer
MehrC++ Teil 7. Sven Groß. 30. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 13
C++ Teil 7 Sven Groß 30. Nov 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 30. Nov 2015 1 / 13 Themen der letzten Vorlesung Zeiger, Felder (Wdh.) dynamische Speicherverwaltung Sven Groß (IGPM, RWTH Aachen)
MehrDr. Monika Meiler. Inhalt
Inhalt 12 Strukturierte Datentpen - Strukturen... 12-2 12.1 Definition und Deklaration von Strukturtpen und Strukturen... 12-2 12.2 Strukturen als Funktionsparameter und Funktionswert... 12-4 12.3 Felder
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
MehrProgrammierung und Angewandte Mathematik
Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden
MehrInstitut für Angewandte Mikroelektronik und Datentechnik Fachbereich Elektrotechnik und Informationstechnik Universität Rostock.
Seite 1 Optimierung der Verbindungsstrukturen in Digitalen Neuronalen Netzwerken Workshop on Biologically Inspired Methods on Modelling and Design of Circuits and Systems 5.10.2001 in Ilmenau, Germany
MehrTag 8 Repetitorium Informatik (Java)
Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
MehrImperative Programmierung in Java: Kontrollfluß II
2 Imperative Programmierung in va: Kontrollfluß II Martin Wirsing Ziele Lernen imperative Programme in va mit Zuweisung, Block, Fallunterscheidung, Iteration zu schreiben Lernen Kontrollflußdiagramme zur
MehrAlgorithmen und Datenstrukturen SS Übungsblatt 1: Grundlagen
Ludwig-Maximilians-Universität München München, 16.04.2018 Institut für Informatik Prof. Dr. Thomas Seidl Anna Beer, Florian Richter Algorithmen und Datenstrukturen SS 2018 Übungsblatt 1: Grundlagen Tutorien:
MehrÜbungsblatt 5 Entwurf eines Mehrzyklen-Datenpfads Abgabefrist: Mittwoch , 10:00 Uhr
Praktikum zur Vorlesung Prozessorarchitektur SS 2018 Übungsblatt 5 Entwurf eines Mehrzyklen-Datenpfads Abgabefrist: Mittwoch 16.05.2018, 10:00 Uhr 1.1. Einführung In Übung 4 haben Sie einen Einzyklen-Datenpfad
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 06: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von
Mehr7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});
S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht
MehrKlausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 10 Pkt.) a) Geben
MehrDieÜbersetzung funktionaler Programmiersprachen
DieÜbersetzung funktionaler Programmiersprachen 107 11 Die Sprache PuF Wir betrachten hier nur die Mini-Sprache PuF( Pure Functions ). Insbesondere verzichten wir(vorerst) auf: Seiteneffekte; Datenstrukturen;
MehrProgrammierung in C: Vermischtes (Teil 1)
Programmierung in C: Vermischtes (Teil 1) Gültigkeitsbereiche für Variablen C-Präprozessor (#define EPS 0.00001) Inkremtieren und Dekrementieren ( jahr++; restzeit--;) Speicherklassen (static) Typecasts
MehrEHP Einführung Projekt A
Volker Dörsing EHP Einführung Projekt A email: doersing@uni-jena.de praktische Übung www: http://users.minet.uni-jena.de/~ehp-head Vorbereitung, Durchführung, Kolloquium Infos zur Veranstaltung, Versuchsanleitung
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
Mehr2. Hausübung Algorithmen und Datenstrukturen
Prof. Dr. Gerd Stumme, Folke Eisterlehner, Dominik Benz Fachgebiet Wissensverarbeitung 7.4.009. Hausübung Algorithmen und Datenstrukturen Sommersemester 009 Abgabetermin: Montag, 04.05.009, 10:00 Uhr 1
MehrMixed-Signal-Simulation mit Berücksichtigung von Parametervariationen
Mixed-Signal-Simulation mit Berücksichtigung von Parametervariationen SystemC Dieses Rechteck bitte durch ein Bild verdecken. Inhalt Simulation mit affiner Arithmetik Simulation mit Distributionsarithmetik
Mehrzu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
MehrGrundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem
Grundzüge der Wirtschaftsinformatik WS 2002/03 Wiederholung Java Heiko Rossnagel www.m-lehrstuhl.de accelerate.com Grundzüge der Wirtschaftsinformatik WS 2002/03 1 Programmierzyklus Problem Formulierung
Mehr