\select@language {german} \contentsline {chapter}{\numberline {1}Einleitung}{1} \contentsline {section}{\numberline {1.1}Aufgabenstellung}{4} \contentsline {section}{\numberline {1.2}Gliederung}{5} \contentsline {chapter}{\numberline {2}Entwicklungsumgebungen}{7} \contentsline {section}{\numberline {2.1}Referenzarchitektur f"ur Entwicklungsumgebungen}{8} \contentsline {subsection}{\numberline {2.1.1}Betriebssystemdienste}{11} \contentsline {subsection}{\numberline {2.1.2}Objektverwaltungsdienste}{12} \contentsline {subsection}{\numberline {2.1.3}Kommunikationsdienste}{14} \contentsline {section}{\numberline {2.2}Teamware und SCCS}{15} \contentsline {subsection}{\numberline {2.2.1}Teamunterst"utzung}{18} \contentsline {subsubsection}{Entwicklungsmodell}{18} \contentsline {subsection}{\numberline {2.2.2}Integration und Basisdienste}{20} \contentsline {section}{\numberline {2.3}ABAP/4 Development Workbench}{21} \contentsline {subsection}{\numberline {2.3.1}Strukturierung}{23} \contentsline {subsubsection}{Unterprogramme}{23} \contentsline {subsubsection}{Dynpro}{24} \contentsline {subsubsection}{Programm}{24} \contentsline {subsubsection}{Include}{25} \contentsline {subsubsection}{Funktionsbaustein}{25} \contentsline {subsubsection}{Modulpool}{26} \contentsline {subsubsection}{Dialogbaustein}{26} \contentsline {subsection}{\numberline {2.3.2}Versionierung}{27} \contentsline {subsection}{\numberline {2.3.3}Korrektur- und Transportwesen}{28} \contentsline {subsubsection}{Systeme}{28} \contentsline {subsubsection}{Korrekturkontrollsystem}{29} \contentsline {subsubsection}{Transportwesen}{30} \contentsline {subsection}{\numberline {2.3.4}Integration und Basisdienste}{31} \contentsline {chapter}{\numberline {3}Systemstrukturierung}{33} \contentsline {section}{\numberline {3.1}Notation}{35} \contentsline {section}{\numberline {3.2}C++}{37} \contentsline {subsection}{\numberline {3.2.1}Bl"ocke}{37} \contentsline {subsection}{\numberline {3.2.2}Funktionen}{38} \contentsline {subsection}{\numberline {3.2.3}Klassen}{39} \contentsline {subsection}{\numberline {3.2.4}Dateien}{41} \contentsline {subsection}{\numberline {3.2.5}Namensr"aume}{41} \contentsline {section}{\numberline {3.3}Modula-2}{42} \contentsline {subsection}{\numberline {3.3.1}Module}{42} \contentsline {section}{\numberline {3.4}Napier88}{43} \contentsline {subsection}{\numberline {3.4.1}Umgebungen}{44} \contentsline {chapter}{\numberline {4}Entwicklungsumgebung {\textsc {TLmin}}}{47} \contentsline {section}{\numberline {4.1}Begriffsverwendung}{47} \contentsline {section}{\numberline {4.2}{\textsc {TLmin}} System}{50} \contentsline {subsection}{\numberline {4.2.1}Lexikalische Analyse}{51} \contentsline {subsection}{\numberline {4.2.2}Syntaxanalyse}{52} \contentsline {subsection}{\numberline {4.2.3}Semantische Analyse}{52} \contentsline {subsection}{\numberline {4.2.4}Zwischencode-Generierung}{53} \contentsline {subsection}{\numberline {4.2.5}Code-Optimierung}{54} \contentsline {subsection}{\numberline {4.2.6}Code-Erzeugung}{54} \contentsline {section}{\numberline {4.3}Compilerschnittstelle}{55} \contentsline {subsection}{\numberline {4.3.1}Anforderungen}{56} \contentsline {subsection}{\numberline {4.3.2}Vereinfachte Compilerschnittstelle}{57} \contentsline {subsection}{\numberline {4.3.3}Detaillierte Compilerschnittstelle}{57} \contentsline {section}{\numberline {4.4}Modulverwaltung}{59} \contentsline {chapter}{\numberline {5}Systemstrukturierung in {\textsc {TLmin}}}{61} \contentsline {section}{\numberline {5.1}Manipulation von Sichtbarkeitsbereichen}{61} \contentsline {subsection}{\numberline {5.1.1}Anforderungen}{62} \contentsline {subsection}{\numberline {5.1.2}\textit {begin \dots \ end} Block}{63} \contentsline {subsection}{\numberline {5.1.3}Funktion}{64} \contentsline {subsection}{\numberline {5.1.4}Abgeschlossener Sichtbarkeitsbereich}{65} \contentsline {subsubsection}{Initiale Bezeichner}{66} \contentsline {subsection}{\numberline {5.1.5}Selektiv eingef"uhrte Bezeichner}{67} \contentsline {section}{\numberline {5.2}H"ohere Strukturierungskonzepte}{68} \contentsline {subsection}{\numberline {5.2.1}Schnittstellen}{69} \contentsline {subsection}{\numberline {5.2.2}Module}{73} \contentsline {subsection}{\numberline {5.2.3}Binden}{76} \contentsline {subsection}{\numberline {5.2.4}Rautenimport}{78} \contentsline {section}{\numberline {5.3}Umgebungen}{81} \contentsline {subsection}{\numberline {5.3.1}Aufbau}{82} \contentsline {subsection}{\numberline {5.3.2}Anwendungen}{84} \contentsline {section}{\numberline {5.4}Anwendungsszenario}{88} \contentsline {section}{\numberline {5.5}Zusammenfassung}{89} \contentsline {chapter}{\numberline {6}Zusammenfassung}{91} \contentsline {section}{\numberline {6.1}Kommerzielle Relevanz}{92} \contentsline {section}{\numberline {6.2}Implementierung}{93} \contentsline {section}{\numberline {6.3}Ausblick}{93} \contentsline {chapter}{\numberline {A}Vereinfachte Compilerschnittstelle}{95} \contentsline {chapter}{\numberline {B}Detaillierte Compilerschnittstelle}{99} \contentsline {chapter}{\numberline {C}Schnittstelle zu Umgebungen}{103} \contentsline {chapter}{\numberline {D}Beispiel zum Rautenimport}{105} \contentsline {section}{\numberline {D.1}Schnittstelle \textit {Kreditor}}{105} \contentsline {section}{\numberline {D.2}Modul \textit {kreditor}}{105} \contentsline {section}{\numberline {D.3}Schnittstelle \textit {Debitor}}{106} \contentsline {section}{\numberline {D.4}Modul \textit {debitor}}{106} \contentsline {section}{\numberline {D.5}Schnittstelle \textit {Mandant}}{107} \contentsline {section}{\numberline {D.6}Modul \textit {mandant}}{107} \contentsline {chapter}{\numberline {E}Implementierung}{109} \contentsline {section}{\numberline {E.1}Sichtbarkeitsbereiche}{109} \contentsline {section}{\numberline {E.2}Umgebungen}{110} \contentsline {subsection}{\numberline {E.2.1}Aufbau}{110} \contentsline {subsubsection}{L"osungsans"atze}{112} \contentsline {subsection}{\numberline {E.2.2}Realisierung}{113} \contentsline {chapter}{Literaturverzeichnis}{115}