das interaktive skript - tams.informatik.uni-hamburg.de · • html-browser mit...

47
Projektbericht 09/2004 Klaus von der Heide, Norman Hendrich zu Vorlesungs-begleitenden Übungen Automatische Überprüfung und Hilfestellung Das interaktive Skript Fachbereich Informatik Universität Hamburg

Upload: others

Post on 15-Sep-2019

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

Projektbericht 09/2004

Klaus von der Heide, Norman Hendrich

zu Vorlesungs-begleitenden Übungen

Automatische Überprüfung und Hilfestellung

Das interaktive Skript

Fachbereich Informatik

Universität Hamburg

Page 2: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

Inhaltsverzeichnis

1 Einfuhrung 11.1 Rahmen des Projekts: Das interaktive Lehrbuch. . . . . . . . . . . 11.2 Kurzbeschreibung des Projekts. . . . . . . . . . . . . . . . . . . . 21.3 Klassifikation derUbungsaufgaben. . . . . . . . . . . . . . . . . . 31.4 Gliederung dieses Berichts. . . . . . . . . . . . . . . . . . . . . . 4

2 Infrastruktur und Plattformen 52.1 Plattform Matlab mit Browser mscriptview. . . . . . . . . . . . . 52.2 Interaktive Skripte als HTML. . . . . . . . . . . . . . . . . . . . . 82.3 Der MScript2Html-Konverter. . . . . . . . . . . . . . . . . . . . . 122.4 Matlab-Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.5 HTML-Skript mit Jython-Applets . . . . . . . . . . . . . . . . . . 15

3 Uberpr ufung von Formeln 193.1 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193.2 Konzepte zurUberprufung . . . . . . . . . . . . . . . . . . . . . . 203.3 Symbolic Math Toolbox . . . . . . . . . . . . . . . . . . . . . . . 223.4 Numerische Auswertung. . . . . . . . . . . . . . . . . . . . . . . 243.5 Boole’sche Ausdrucke . . . . . . . . . . . . . . . . . . . . . . . . 26

3.5.1 Uberprufung durch Umwandlung in Normalform. . . . . . 263.5.2 Nebenbedingungen fur Boole’sche Ausdrucke. . . . . . . . 293.5.3 KV-Diagramme. . . . . . . . . . . . . . . . . . . . . . . . 303.5.4 Ein graphischer Editor fur zweistufige Schaltungen. . . . . 31

4 Uberpr ufung von Programmen 354.1 Die Primitive Maschine PRIMA. . . . . . . . . . . . . . . . . . . 354.2 Uberprufung von Maschinenprogrammen. . . . . . . . . . . . . . 374.3 Hilfestellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

5 Zusammenfassung 41

Literaturverzeichnis 43

Kontakt:Prof. Dr. Klaus von der HeideUniversitat HamburgFachbereich InformatikVogt-Kolln-Str. 30D 22 527 Hamburg

http://tams-www.informatik.uni-hamburg.de/forschung/interaktives-skript/

ii

Page 3: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

1

1 Einfuhrung

Der vorliegende, dritte Projektbericht des Projekts”AutomatischeUberprufung und

Hilfestellung zu Vorlesungs-begleitendenUbungen“ behandelt Erweiterungen unse-rer Software-Infrastruktur und erlautert weitere jetzt konkret umgesetzte Verfahrenzur Uberprufung von Aufgaben.

Als Einfuhrung fasst der folgende Abschnitt1.1noch einmal kurz die wesentlichenEinfuhrung. . .Aspekte einesinteraktiven Lehrbuchszusammen, wahrend Abschnitt1.2 die Ein-bettung vonUbungsaufgaben motiviert. In Abschnitt1.3 wird noch einmal die inder ersten Projektphase erarbeitete Klassifikation derUbungsaufgaben wiederholt.

Die Gliederung des vorliegenden Projektberichts wird in Abschnitt1.4 erlautert.Fur eine ausfuhrliche Diskussion der mit den interaktiven Lehrbuchern verfolgtenKonzepte sei auf den ersten Projektbericht [11] verwiesen.

Als Erganzung der Beschreibungen wird in den folgenden Kapiteln bei Bedarf aufund Vertiefungkurze Programmbeispiele und Skripte zuruckgegriffen, um die zugrundeliegendenKonzepte zu erlautern. Dabei werden auch einige Schnittstellen der verschiedenenFunktionen vorgestellt, so dass der Bericht gleichzeitig als Softwaredokumentationgenutzt werden kann. Die entsprechenden Abschnitte dienen zur Vertiefung undkonnen beim Lesen ohne weiteresubersprungen werden.

1.1 Rahmen des Projekts: Das interaktive Lehrbuch

Ein interaktives Lehrbuchbzw. interaktives Skriptvereinigt die textuelle Beschrei- Konzeptbung der zu lernenden Zusammenhange und Sachverhalte mit interaktiven elektro-nischen Werkzeugen zur Darstellung und Anwendung dieser Sachverhalte — undzwar der Anwendung nicht nur auf die im Lehrbuch selbst integrierten Beispiele,sondern vielmehr auf beliebige, vom Lernenden jederzeit selbst veranderbare oderhinzugefugte Anwendungsfalle. Dadurch wird das Lehrbuch erweiterbar und kannauch an ursprunglich gar nicht vorgesehene oder vorhersehbare zukunftige Entwick-lungen angepasst werden. Es bietet damit ideale Voraussetzungen zur Unterstutzungdeslife-long learningund zum produktiven dauerhaften Einsatz wahrend des Be-rufslebens.

Das dem Projekt zugrunde liegende Konzept des interaktiven Lehrbuchs hat folgen-de Zielsetzungen:

• Die Spanne zwischen klassischem Lehrbuch und Anwendung wird zuneh-Problemlosungmend großer, weil die Komplexitat der behandelten Themen sich nur nochmit Rechner-gestutzten Systemen beherrschen lasst. Durch die harmonischeIntegration von klassischem Lehrtext in ein zugrunde liegendes, universellesSoftwaresystem zur Problemlosung kann das interaktive Lehrbuch sehr an-wendungsspezifisch werden, ohne dabei jedoch auf ein Anwendungsgebietfestgelegt zu sein.

• Der Ruckblick auf die letzten Jahre der Softwareentwicklung zeigt, dass fur Nachhaltigkeitnachhaltige Entwicklungen nur einfache und standardisierte Datenformate

Page 4: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

2 1 Einfuhrung

verwendet werden sollten. Beim Einsatz proprietarer Formate muss jederzeitdamit gerechnet werden, nach einem Versionswechsel aufaltere Datensatzenur noch eingeschrankt oder eventuelluberhaupt nicht mehr zugreifen zukonnen. Inhalte fur das interaktive Lehrbuch basieren daher im Wesentlichenauf annotierten Texten im einfachen ASCII-Format.

• Ein klassisches Lehrbuch spiegelt immer nur die Sicht (und Absicht) des je-Anpassbarkeitweiligen Autors wider. Um sich ein objektiveres Bild zu verschaffen, grei-fen viele Studierende und Lehrende deshalb parallel auf mehrere Lehrbucherzuruck. Wegen des hohen Erstellungsaufwands im Falle von E-LearningContent stehen geeignete alternative Materialien bisher aber nur selten zurVerfugung. Daraus ergibt sich die Forderung, dass der Inhalt des interaktivenLehrbuchs von den Lehrenden individuell nach ihren eigenen Vorstellungenausgerichtet und geandert werden kann — und zwar mit Hilfe eines langfri-stig und auf allen Plattformen verfugbaren Werkzeugs. Dies betrifft sowohldie Auswahl als auch die Inhalte der Texte, Abbildungen, Animationen, Au-dioausgaben, Simulationen, usw.

• Die Integration von interaktiven Elementen in das interaktive Lehrbuch hilftExplorationdabei, Interpretationsschwierigkeiten oder Verstandnislucken durch aktiveExploration des Lehrstoffs zuuberwinden. Viele Inhalte und insbesondereGraphiken im interaktiven Lehrbuch werden deshalb erst zur Laufzeit mitvom Benutzer individuell einstellbaren Parametern erzeugt und angezeigt.Ein Studierender kann auf diese Weise grundsatzlich nachvollziehen, wie eszu den Graphiken und Ergebnissen kommt.

1.2 Kurzbeschreibung des Projekts

Es liegt nahe, auchUbungsaufgabenin das oben beschriebene interaktive Lehr-IntegrierteUbungen buch zu integrieren. Wahrend eine derartige Integration bei klassischer Lernsoft-

ware im Sinne desComputer Based Training[26] sehr aufwendig sein kann, stelltdas interaktive Lehrbuch mit seiner Softwareplattform bereits alle Werkzeuge zurVerfugung, um die Lernenden bei der Bearbeitung der Aufgaben zu unterstutzenund zu motivieren.

Die Erforschung und Erprobung dieser Techniken ist der Inhalt des vorliegendenUberprufung undHilfestellung Projekts. Ziel ist eine Softwarebibliothek, die fur viele Typen vonUbungsaufgaben

eine automatischeUberprufung der Losungen erlaubt und bei Fehlern geeigneteHilfestellung anbietet. Die Studierenden bekommen dadurch sofort eine Ruckmel-dung uber ihren Lernfortschritt bzw. Hinweise auf noch verbliebene Fehler. Zu-sammen mit der nahtlosen Integration der Aufgaben in das Skript wird die Hemm-schwelle zur Bearbeitung derUbungsaufgaben gesenkt, was die Studierenden zueiner intensiveren Beschaftigung mit dem Lehrstoff einladt.

Das primare Ziel derUbungen ist dabei nicht die Vermittlung von Faktenwissen,Methoden-kompetenz sondern die Verbesserung der Fertigkeiten bei der Auswahl und dem Einsatz von

Methoden. Die im Projekt erzielten Ergebnisse werden sich deshalb auch auf vieleandere Fachgebiete mitahnlicher Methodikubertragen lassen, etwa die angewandteMathematik, Experimentalphysik oder die Ingenieurwissenschaften.

Page 5: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

1.3 Klassifikation derUbungsaufgaben 3

Techn. Zeichnung (Ing.)

Graph (Math./Physik)

Strukturformel (Chemie)

Petri-Netz

Flußdiagramm

Impulsdiagramm

Schaltplan

FSM (Automat)

Diagramm

KVD (Karnaugh-Veitch)

Komplement

Festkomma

Gleitkomma

Integer (Dezimal)

Integer (Bin/Okt/Hex)

Zahlenwert

Formel

Funktionstabelle

Boole'sche Algebra

nichtlin. Gleichung

lineare Gleichung

O-Notation (asympt.)

bzw. der Lösungen

Typ der Aufgabe

Zuordnung

Image-Map

Lückentext

Ja/Nein

Mutliple-Choice

Auswahl

( ... viele Varianten )

Essay / Diskussion

math. Beweis

Text

Programm

Maschinenprogramm

Mikroprogramm

parallele Programme

Hochsprache (z.B. C++)

Assemblerprogramm

Abbildung 1: Klassifikation derUbungsaufgaben zur technischen Informatik. Diesechs Hauptklassen durften auch auf andere mathematisch naturwissenschaftlicheFacherubertragbar sein. Fur fast alle Kategorien bis auf freie Texte ist eine auto-matischeUberprufung moglich.

1.3 Klassifikation der Ubungsaufgaben

An dieser Stelle ist es notwendig, die in der ersten Projektphase erarbeitete Klas-sifikation derUbungsaufgaben zur technischen Informatik noch einmal zu wieder-holen, da die spateren Kapitel haufig auf diese Klassifikation zuruckgreifen. DieAuswertung mehrerer Vorlesungsskripte und klassischer Lehrbucher ergab die inAbbildung 1 dargestellte Einteilung in sechs große Klassen von Aufgabentypen.Diese Klassen von Aufgaben durften sich auch auf die meisten anderen technisch-naturwissenschaftlichen Facherubertragen lassen, allerdings eventuell mit andererGewichtung und Haufigkeit der einzelnen Aufgabentypen.

Wie bereits im ersten Projektbericht erlautert wurde, ist es beim derzeitigen Standder Technik zur Texterkennung und Sprachverarbeitung nicht einmal ansatzweisemoglich, von den Studierenden eingesandte freie Texte sinnvoll auszuwerten [11].Im Rahmen des Projekts wird diese Kategorie deshalb von vornherein ausgeklam-mert; derartige Aufgaben mussen wie bisher von denUbungsgruppenleitern vonHand korrigiert werden. Statt dessen ist geplant, die Textaufgaben zumindest so-weit moglich durch gleichwertige Fragestellungen zu ersetzen, die der automati-schenUberprufung besser zuganglich sind.

Page 6: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

4 1 Einfuhrung

1.4 Gliederung dieses Berichts

Das folgende Kapitel2 erlautert noch einmal die fur das Projekt gewahlte Software-Kapitel 2Architektur. Als eigentliche interaktive Softwareumgebung kommen dabei sowohlMatlab als auch die Kombination von Jython und Java zum Einsatz.

Gegenuber der in den vorherigen Reports vorgestellten Architektur sind zwei Neue-rungen zu beachten. Zum einen eroffnet die seit kurzem verfugbare Version R14 vonMatlab die Moglichkeit, Teile der interaktiven Skripte zu compilieren und damit un-abhangig von Matlab-Lizenzen einsetzen zu konnen. Zum anderen konnte das imletzten Report skizzierte Konzept zur Umsetzung der Skripte als HTML-Seiten mitkleinen eingebetteten Java-Applets realisiert werden. Damit konnen alle gangigenWeb-Browser zur Darstellung genutzt werden und es steht eine Alternative zumbisher verwendetenmscriptview-Browser zur Verfugung.

Kapitel 3 skizziert die Auswertung der Klasse derFormelaufgaben. Hier werdenKapitel 3zunachst die verschiedenen Varianten skizziert, die im Rahmen der VorlesungenundUbungsaufgaben zur Technischen Informatik vorkommen. Wegen der zentralenBedeutung fur den Entwurf digitaler Systeme bildet dabei dieUberprufung vonBoole’schen Ausdrucken und Funktionen einen besonderen Schwerpunkt.

Kapitel 4 beschreibt unseren Ansatz zurUberprufung vonMaschinen- und Assem-Kapitel 4blerprogrammenfur unseren Demonstrations-Rechner PRIMA. Da es auf diesenAbstraktionsebenen mangels Typinformation praktisch unmoglich ist, eine brauch-bare semantische Analyse der Programme durchzufuhren, setzen wir wieder auf dieKombination von Simulation mit Plausibilitatstests.

Der Bericht schließt mit einer kurzen Zusammenfassung und dem Literaturver-zeichnis.

Page 7: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

5

2 Infrastruktur und Plattformen

Die Grundlage fur das Konzept der interaktiven Skripte ist eine Softwareplattform,die ein interaktives Ausfuhren von im Skript selbst eingebettetem Programmcodegestattet. Die von uns gewahlte Softwarearchitektur basiert auf einer Kombinationder beiden PlattformenMatlab und Java. Da gegenuber dem letzten Projektstandzwei wichtige Erweiterungen implementiert bzw. erprobt werden konnten, sollendiese in den nachsten Abschnitten vorgestellt werden.

Im Rahmen des Projekts wurden mehrere Varianten untersucht, von denen sich diefolgenden vier Kombinationen als besonders geeignet herausgestellt haben:

• Browsermscriptview. Zum Lesen der Skripte ist eine Matlab-Installation mitLizenz erforderlich, aber die Content-Erstellung ist besonders einfach. DieserAnsatz wird in Abschnitt2.1noch einmal zusammengefasst.

• HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele-mente wie Graphiken sind uneingeschrankt nutzbar, aber fur das Ausfuhrender aktiven Elemente ist eine Matlab-Installation mit Lizenz erforderlich. Die-se Architektur wird in Abschnitt2.3vorgestellt.

• HTML-Browser mit Applet-Schnittstelle zu vorcompilierten externen Ap-plikationen. In Abschnitt2.4 wird gezeigt, wie sich auch unsere Matlab-Funktionen auf diese Weise nutzen lassen.

• HTML-Browser mit Applet-Schnittstelle zu Jython als Skriptsprache an Stel-le von Matlab, siehe Abschnitt2.5. Frei verfugbar, aber Skripte bisher nurteilweise umgesetzt.

Diese Aufteilung ist in Abbildung2 noch einmal veranschaulicht. Naturlich konnendie verschiedenen Ansatze auch kombiniert werden; so setzen die Skripte zur Vor-lesung T1 weiterhin auf aktive Matlab-Elemente, wahrend die meisten Algorithmenzur Uberprufung vonUbungsaufgaben in Java/Jython implementiert wurden.

Die im letzten Projektbericht erlauterte Variante mit einem proprietaren, um zusatz-liche Syntaxelemente erweiterten XML-Browser wurdeubrigens nicht weiterver-folgt, da sich die Implementierung als zu aufwendig erwies. Das Problem der auf-wendigen Content-Erstellung in HTML konnte durch den in Abschnitt2.3beschrie-benen Konverter gelost werden.

2.1 Plattform Matlab mit Browser mscriptview

Als Plattform fur die bisher erstellten interaktiven Skripte dient Matlab, das interna-Matlabtional fuhrende Softwaresystem fur numerische Mathematik mit Schwerpunkt aufAnwendungen in technisch-orientierten Fachgebieten [21]. Mit dem Begriff Matlabwerden dabei sowohl das Gesamtsystem als auch die zugrunde liegende Program-miersprache bezeichnet, die sich durch eine besonders einfache Formulierung vonMatrixoperationen auszeichnet. Als Erganzung zum Grundsystem stehen diverseErweiterungen bereit, die applikationsspezifische Funktionen in sogenannten Tool-boxes bzw. Blocksets zusammenfassen. Die Software steht nicht nur fur Windows,

Page 8: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

6 2 Infrastruktur und Plattformen

Übungen

Übungen

Übungen

Übungen

Jython

d) Webbrowser + Jython/Java

b) Webbrowser + Matlab

Java-VM

a) mscriptview + Matlab

BrowserHTML-

mscriptviewBrowser

Graphiken,Animationen,

Matlab-Skripte

Matlab-Funktionen

Matlab-Workspace(lizenzpflichtig)

HTML-Skripte

FunktionenMatlab-

Animationen,Graphiken,

compilierteFunktionen

HTML-Browser Skripte

HTML-

Graphiken,Animationen,

Java-VM

HTML-Browser

Graphiken,Animationen,

FunktionenJython/Java-

HTML-Skripte

c) Webbrowser + externe Applikationen (z.B. Matlab Runtime)

Java-VM

(lizenzpflichtig)Matlab-Workspace

Abbildung 2: Die Abbildung zeigt vier mogliche Varianten zur Realisierung in-teraktiver Skripte mit den Plattformen Matlab sowie Java/Jython: a) Verwendungvon Matlab und Darstellung mit mscriptview-Browser, b) Einbindung von Matlab-Funktionen in HTML via Applets, c) Aufruf vorcompilierter (Matlab-) Applikatio-nen aus HTML via Applets, d) Einbindung von Jython-Applets. Naturlich konnendie verschiedenen Varianten auch kombiniert werden.

Page 9: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

2.1 Plattform Matlab mit Browser mscriptview 7

Abbildung 3: Darstellung eines interaktiven Skripts im mscriptview-Browser amBeispiel Audiosynthese. Neben denublichen Textformatierungen werden auch For-meln und Hyperlinks unterstutzt, wahrend Bilder in externen Fenster angezeigt wer-den. Die aktiven Codezeilen sind direkt in den Text eingebettet und werden farblichhervorgehoben. Beim Anklicken eines solchen Blocks wird der zugehorige Codeausgefuhrt: Im Beispiel werden Audiodaten berechnet und abgespielt.

sondern auch fur alle verbreiteten Varianten von Unix zur Verfugung (u.a. Linux,Solaris, MacOS X) und erlaubt damit den plattformunabhangigen Einsatz.

Zur Darstellung der Skripte dientmscriptview, ein selbstentwickelter Browser, dermscriptviewauf die in Matlab integrierten Funktionen zur Textformatierung zuruckgreift und beiBedarf modular erweitert werden kann. Die Grundidee besteht darin, die eigentli-chen beschreibenden Texte der interaktiven Skripte als Kommentare direkt in dieMatlab-Dateien mit den aktiven Codezeilen einzubetten. Auch Formeln lassen sichintegrieren, da Matlabuber Funktionen zur Darstellung von Symbolen und Formel-zeichen in einer TEX-ahnlichen Syntax verfugt.

Auf diese Weise ergibt sich gleichzeitig eine sehr einfache Content-Erstellung, daalle thematisch zusammengehorenden Elemente in einer einzelnen Datei stehen unddie Beschreibungen zusammen mit dem Code entwickelt werden konnen.

Page 10: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

8 2 Infrastruktur und Plattformen

Wahrend sich die Kombination aus Matlab und mscriptview in Hauptstudiumsvor-Problem derLizenzkosten lesungen und -ubungen seit mehreren Jahren sehr gut bewahrt hat, stellen die Kosten

und Lizenzbedingungen von Mathworks ein Hindernis fur den breiten Einsatz imGrundstudium dar. Zwar verfugen sowohl der Fachbereich Informatik als auch dasregionale Rechenzentrum der Universitat Hamburguber eine Reihe von Matlab-Lizenzen, die von den Studierenden genutzt werden konnen. Die Anzahl der Lizen-zen deckt aber keinesfalls die Teilnehmerzahlen in Grundstudiumsveranstaltungenab. Zudem ist der Wunsch der Studierenden nachvollziehbar, die Software auch aufihren eigenen Rechnern installieren zu wollen.

Leider kostet eine Vollversion der Matlab-Suite mit den grundlegenden Komponen-ten Matlab, Simulink und Symbolic Math Toolbox derzeit immerhin 1400¤, undfur weitere wunschenswerte Komponenten wie die Signal-Processing oder Image-Processing Toolboxes entstehen zusatzliche Kosten. Im Rahmen derStudent VersionStudent-

Version sind diese Komponenten bei vollem Funktionsumfang fur einen deutlich reduziertenPreis von ca. 100¤ erhaltlich, wobei aber auch hier weitere Kosten fur eventuellzusatzlich benotigte Toolboxes entstehen. Die mittlerweile nicht mehr erhaltlicheStudent Editionbasiert auf deralteren Version Matlab 5.3 und beinhaltet bereitsdie Signal Processing Toolbox, limitiert aber die Große von Datenstrukturen aufmaximal 32767 Elemente, was fur Audio- und Bildverarbeitung eine empfindlicheEinschrankung darstellt. Wegen der großen Verbreitung dieser Version werden dieim Rahmen des Projekts entwickelten Skripte soweit wie moglich auch mit der Stu-dent Edition einsetzbar sein, um moglichst viele Anwender erreichen zu konnen.

2.2 Interaktive Skripte als HTML

Die in obigen Abschnitt skizzierte Softwarearchitektur basiert auf Matlab und demzugehorigenmscriptview-Browser zum Anzeigen der Skripte. Gerade fur Veranstal-tungen im Hauptstudium hat sich diese Kombination sehr gut bewahrt, zumal fastalle Studierenden wegen des hohen Nutzwerts eine eigene Matlab-Lizenz erwer-ben. Fur den Einsatz im Grundstudium, aber auch fur nicht technisch-mathematischausgerichtete Themengebiete, kann dies aber nicht vorausgesetzt werden. Damit er-gibt sich ein Problem, denn bei Einsatz vonmscriptviewist selbst zum passivenDurchblattern und Lesen der Skripte bereits eine vollstandige Matlab-Installationnotwendig.

Es stellt sich daher die Frage, ob und welche alternativen Plattformen zur Darstel-HTMLlung der Skripte genutzt werden konnen. Besonders attraktiv erscheint dabei dieUmsetzung der interaktiven Skripte mittels HTML-Dateien. Dies ermoglicht dieDarstellung der Skripte mit einem gewohnlichen Web-Browser wie dem InternetExplorer oder Mozilla, wobei alle Zusatzfunktionen der Browser zur Verfugungstehen und der Anwender seine gewohnte Umgebung vorfindet. Auch die Integra-Vorteile. . .tion in bestehende Web-Anwendungen oder E-Learning Frameworks wird deutlicherleichtert. Mehrere Vorteile der Verwendung eines HTML-Browsers sind offen-sichtlich:

• Die interaktiven Skripte konnen auch sauber angezeigt werden, wenn Mat-lab nicht zur Verfugung steht — dann allerdings passiv ohne die Interakti-onsmoglichkeiten.

Page 11: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

2.2 Interaktive Skripte als HTML 9

libeng.dll

Editor/Shell/Debugger

Matlab-System

Java-AppletsApplets

Matlab-

Web-Server oderlokale Dateien

Jython-Applet(s)

Matlab-Applet(s)

Graphik(en)

Tabelle(n)

GraphikenKonqueror, ...)

Internet Explorer,

(Mozilla, Opera,

Web-Browser

</body></html>

<body><html><head> ... </head>

Graphiken

Jython-Interpreter

Java-VM

Abbildung 4: Software-Architektur der HTML-basierten interaktiven Skripte. DieInhalte werden als HTML-formatierte Webseiten aufbereitet und konnen mit jedemgewohnlichen Browser angezeigt werden. Die aktiven Elemente sind als einfacheJava-Applets realisiert und kommunizieren mit dem als externe Applikation laufen-den Matlab-System bzw. dem Jython-Interpreter.

• Bereitstellen der gewohnten Benutzeroberflache inklusive der Voreinstellun-gen fur Schriftarten, Schriftgroßen, Farben.

• Zugriff auf alle HTML- bzw. XHTML-Objekttypen wie eingebettete Abbil-dungen, Tabellen, Formulare und interaktive Objekte (Applets).

• Hyperlinks auf externe Webseiten und Ressourcen, Zugriff auf Suchmaschi-nen, komfortable Bookmarkverwaltung.

• Aufruf von Plugins oder externer Hilfsapplikationen wie etwa Postscript-oder PDF-Viewern.

• Moglichkeit zum Ausdrucken der Skripte inklusive aller Formatierungen undeingebetteten Graphiken.

• Integration in bestehende HTML-Plattformen oder E-Learning-Frameworks.

• Mogliche Integration in Content-Management Systeme und Nutzen bestehen-der HTML- oder XML-Editoren.

• Zugriff auf Sicherheitsfunktionen wie verschlusselte Datenubertragung, Ver-walten von Benutzerpassworten,Uberprufung digital signierter Inhalte.

Auf der anderen Seite sind auch einige Nachteile zu verzeichnen. An erster Stel-. . . undNachteilele steht dabei die teilweise deutlich aufwendigere Content-Erstellung im HTML-

Format. Die Losung besteht in der automatischen Umsetzung unserer vorhande-nen Skripte vom mscriptview-Format nach HTML. Der zugehorige Konverter wird

Page 12: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

10 2 Infrastruktur und Plattformen

Abbildung 5: Die HTML-Version der interaktiven Skripte stellt alleublichen Kon-strukte und Moglichkeiten von HTML zur Verfugung. Das Beispiel zeigt die ersteSeite des Kapitels T1.4 (Codierung) aus der Vorlesung Technische Informatik 1nach der der automatischen Umsetzung von Matlab nach HTML. Der Konvertererkennt die Dokumentstruktur inklusive der Absatze, erzeugt Hyperlinks zur Navi-gation, erkennt Formeln und Tabellen undubernimmt die Textformatierungen.

in Abschnitt 2.3 vorgestellt. Ein besondersargerliches Problem bereitet die im-mer noch wenig standardkonforme Darstellung einiger HTML-Konstrukte durchdie verschiedenen Browser. Zum Beispiel unterstutzen alle getesteten Browser (u.a.Mozilla, Internet Explorer, Opera, Konqueror) nur (disjunkte) Teilmengen der inHTML 4 definierten mathematischen Symbole und Operatoren. Dies fuhrt dazu,dass einige der Formelzeichen als Bilder bzw. Applets eingebunden werden mussen,obwohl sie eigentlich direkt in HTML definiert sind. Abhangig von Betriebssystem-versionen und Druckertreibern konnen sich auch beim Ausdrucken Probleme erge-ben.

Schließlich stehen in HTML nicht alle Funktionen von Matlab bzw. mscriptviewzur Verfugung. Zum Beispiel stellt dermscriptview-Browser eine spezielle hierar-chische Suchfunktion bereit, die in gangigen HTML-Browsern nicht verfugbar ist.(Naturlich konnte man die entsprechenden HTML-Seiten auch durch eine gewohn-liche Suchmaschine wie Google klassifizeren lassen oder auf serverbasierte Toolsausweichen).

Da alle aktuellen Browser zumindest HTML 4.0 bzw. XHTML inklusive CSS un-terstutzen, ist die Integration passiver Abbildungen, Tabellen, und derublichen

Page 13: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

2.2 Interaktive Skripte als HTML 11

Abbildung 6: In HTML werden die interaktiven Elemente mittels kleiner Java-Applets realisiert. Beim Anklicken eines solchen Applets wird der entsprechendeCode an die zugehorige

”Console“ (Matlab bzw. Jython)ubergeben und dort aus-

gefuhrt. Dadurch stehen alle Funktionen der jeweiligen Plattform zur Verfugung;insbesondere auch die Plot-Funktionen mit zur Laufzeit berechneten Graphiken.Die Abbildung entstammt aus Kapitel T1.5.1 des T1-Skripts und demonstriert dieKanalkapazitat des idealen, symmetrischen Kanals.

HTML-Formulareuberhaupt kein Problem. Spezielle Anforderungen an die For-matierung inklusive Blocksatz und pixelgenauer Anordnung lassen sich mit Style-Sheets realisieren. Damit bleibt fur die konkrete Umsetzung nur noch die Frageublich, wie sich die fur das Konzept der interaktiven Skripte notwendigen Pro-grammtexte integrieren lassen.

Obwohl das Interaktionskonzept zunachst nur auf dem einfachen Anklicken der ein-Interaktions-konzeptgebetteten Codeblocke basiert, erscheint eine Realisierung mit JavaScript oder etwa

als Flash-Plugin kaum moglich. Aus Grunden der Portabilitat bleibt damit nur dieUmsetzung mit Java-Applets, die direkt in die HTML-Seiten eingebettet werden.Die Appletsubernehmen in diesem Konzept eine doppelte Funktion: erstens dieDarstellung der interaktiven Elemente in den HTML-Seiten selbst und zweitens dieInteraktion mit dem Benutzer und die Ausfuhrung der ausgewahlten und angeklick-ten Programme.

Wie die Ubersicht in Abbildung2 auf Seite6 zeigt, sind dabei wiederum meh-rere Varianten moglich. In der Variante b) dient das Applet nur als Vermittler undubergibt den ausgewahlten Code an die darunterliegende Plattform zur Ausfuhrung.

Page 14: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

12 2 Infrastruktur und Plattformen

Beim Einsatz von Matlab bedeutet dies, dass weiterhin eine Matlab-Installation undLizenz notwendig ist. Auch in Variante c) dienen die Applets nur als Vermittler undrufen externe Applikationen auf. Wie in Abschnitt2.4 naher erlautert wird, lassensich auf diese Weise insbesondere auch vorcompilierte Matlab-Funktionen aufru-fen, fur die keine Matlab-Lizenz erforderlich ist. In Variante d) schließlichuber-nimmt die Java-Umgebung direkt die Ausfuhrung der ausgewahlten interaktivenElemente. Beispiele dafur werden in Abschnitt2.5vorgestellt.

2.3 Der MScript2Html-Konverter

Wie im letzten Abschnitt bereits angedeutet wurde, ist die Content-Erstellung fur in-AufwendigereContent-

Erstellungteraktive Skripte im HTML-Format gegenuber dem mscriptview-Konzept aufwen-diger. Zwar unterstutzt HTML praktisch alle fur die Skripte notwendigen Textat-tribute sowie Graphiken und Hyperlinks; die aktiven Elemente mussen jedoch se-parat als Applets eingebunden werden. Leider unterstutzen selbst gangige HTML-Editoren die Einbindung von Applets und ihrer Parameter nur unzureichend.

Als Losung fur dieses Problem wurde im Rahmen einer Diplomarbeit [35] einautomatischeKonvertierung Konverterprogramm entwickelt, dass die bestehenden Matlab-basierten Skripte fur

mscriptviewautomatisch nach HTML umsetzt. Damit kann die Content-Erstellungweiterhin auf ASCII-Basis mit jedem Texteditor erfolgen. Im einzelnenubernimmtder Konverter die folgenden Funktionen:

1. Einlesen der angegebenen Quelldateien und optional alleruber Querverweisereferenzierten Dateien, so dass die vollstandige Umsetzung eines Skripts miteinem Aufruf moglich ist.

2. Analyse der Textstruktur und Trennung der aktiven Elemente (eingebetteterMatlab-Skriptcode) vom statischen Text.

3. Erzeugen von HTML-Code fur Java-Applets fur alle bei der Analyse erkann-ten aktiven Skripte. Der Skriptcode wird als Parameter fur die Appletsuber-geben und von diesen angezeigt.

4. Umsetzung der statischen Texte nach HTML mit den passenden Formatierun-gen wie Formeln, Tabellen, Blocksatz, Fettschrift. Da die Formatierungen inden Matlab-Skripten nur teilweise explizit markiert sind, wird eine Heuristikzur Erkennung von Paragraphen und Tabellen eingesetzt.

5. Formeln werden ebenfalls nach HTML konvertiert, soweit die benotigtenSymbole zur Verfugung stehen. Leider implementieren die verschiedenenBrowser (z.B. Internet Explorer, Mozilla, Opera, Konqueror) jeweils nureinen Subset der vom W3C fur HTML definierten Symbole. Komplexere For-meln konnen alternativ als Java-Applets oder als vorberechnete (z.B. via La-TeX erzeugte) Abbildungen eingebunden werden.

6. Erkennen von in den Skriptseiten eingebauten Hyperlinks und direkte Umset-zung in HTML-Links. Parallel dazu wird eine interne Liste aller entsprechen-den Skriptseiten und Querverweise aufgebaut und zur Erzeugung von zusatz-lichen Hyperlinks zur Navigation eingesetzt. Schließlich wird eine Indexseitealler Skriptseiten erzeugt, sofern diese nicht bereits im ursprunglichen Skriptvorhanden war.

Page 15: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

2.3 Der MScript2Html-Konverter 13

Abbildung 7: Neben der Vorlesung Technische Informatik konnten auch weitereVorlesungen bereits in das HTML+Applet Konzept integriert werden. Das Beispielaus der Vorlesung Digitale Signalverarbeitung zeigt die Frequenzantwort einesMultiratenfilters als interaktiven 3D-Plot.

Der Konverter ist in Java geschrieben und kann wahlweiseuber die Kommandozei- Statusle oder mit einer Benutzeroberflache gestartet werden. Die eingebauten Heuristikenwurden ursprunglich nur fur die T1-Vorlesung entwickelt, mittlerweile aber mit al-len vorhandenen Matlab-Dateien getestet. Sie erlauben die vollautomatische Umset-zung des Contents von Matlab nach HTML. Bis auf eine Handvoll Ausnahmen, auf-grund mehrdeutiger Formulierung oder besonders aufwendiger Formeln, sind keinemanuellen Nacharbeiten notwendig. Damit ist auch die Integration unserer Mate-rialien in die gangigen E-Learning Plattformen problemlos moglich. Derzeit ste-hen drei vollstandige Vorlesungen (Technische Informatik 1, Digitale Signalverar-beitung, Nachrichtentechnik und Datenubertragung) zusatzlich zur Matlab-Versionauch als HTML-Version zur Verfugung.

Die Abbildungen5 bis7 zeigen Beispiele fur die Darstellung der derart umgesetztenSkripte in einem Standardbrowser (Mozilla). Zunachst zeigt Abbildung5 die Um-setzung von beschreibendem Text und einer Tabelle. Die drei folgenden Abbildun-gen zeigen die Einbindung der interaktiven Elemente inklusive 2D- und 3D-Plots.Ubrigens ermoglicht die HTML-Version auch das lineare Blattern im Skript (vorigeund nachste Seite), wahrend die zugrundeliegende Matlab-Version nur die direkteNavigation ausgehend vom Inhaltsverzeichnis vorsieht.

Page 16: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

14 2 Infrastruktur und Plattformen

2.4 Matlab-Compiler

Trotz aller technischen Vorteile der Plattform Matlab und der bisherigen guten Ak-zeptanz beim Einsatz in Hauptstudiumsveranstaltungen bedeutet die Abhangigkeitvon einer Matlab-Installation und -Lizenz ein echtes Problem fur Lehrmaterialien,die auch im Grundstudium freizugig eingesetzt werden sollen. Zwar konnen die Stu-dierenden die bestehenden Campus-Lizenzen der Universitat fur die Arbeit mit deminteraktiven Skript nutzen, allerdings nicht auf Ihren eigenen Rechnern sondern nurauf den Rechnern der Universitat. Auch in Diskussionen mit anderen Lehrendenund ELCH Projektpartnern wurde immer wieder deutlich, dass die Lizenzkostenvon Matlab als schwerwiegendes Hindernis aufgefasst werden.

In diesem Zusammenhang ergibt sich mit der im Juni 2004 erschienen neuen Ver-Matlab-Compiler sion Matlab 7 (Release R14) eine interessante neue Option, die wir in den nachsten

Wochen grundlich prufen werden. Tatsachlich bietet die Firma Mathworks mit demsogenanntenMatlab Compilerschon langer ein Produkt an, mit dem aus vorhande-nen Matlab-Funktionen standalone lauffahige Applikationen fur Windows bzw. Li-nux erzeugt werden konnen. Die compilierten Applikationen umfassen alle benotig-ten Bibliotheken und durfen bei Einhalten bestimmter Anforderungen ohne weitereEinschrankungen und Lizenzkosten weitergegeben werden.

Es liegt daher nahe, die interaktiven Skripte auf diese Weise zu compilieren undals fertige Applikationen an die Studierenden zu verteilen. Leider ließ sich dieseIdee bisher nicht umsetzen, da der Matlab-Compiler in Versionen bis Matlab R13nur eine kleine Teilmenge des gesamten Funktionsumfangs von Matlab selbst un-terstutzte. Die Einschrankungen betrafen auch fundamentale und fur das interaktiveSkript unverzichtbare Funktionen wie die Graphikschnittstelle und die Dateiein-und ausgabe.

Die Situation hat sich allerdings mit Einfuhrung von Matlab R14 deutlich verbes-Matlab R14sert, da die aktuelle Version des Compilers jetzt fast den kompletten Funktionsum-fang von Matlab umfasst (mit Ausnahme der Java-Schnittstelle und einiger Toolbo-xes). Allerdings sind Zugriffe auf den Matlab-Workspace und bestimmte Funktio-nen weiterhin nicht moglich bzw. durch die Lizenzbedingungen ausdrucklich un-tersagt. Dies ist verstandlich, da ansonsten letztlich der volle Funktionsumfang vonMatlab zur Verfugung stande.

Die fehlende Java-Schnittstelle ist dabei trotz der in unseren Skripten eingesetztenEinschrankungenJava-Applets leicht zu verschmerzen, da diese Applets auch ohne Matlab lauffahigsind. Dafur bedeutet der fehlende Zugriff auf den Matlab-Workspace eine Ein-schrankung, die sich vermutlich nur durch eine vollstandigeAnderung der Soft-warearchitektur umgehen lasst. Das Problem besteht darin, dass dermscriptview-Browser die auszufuhrenden Skripte erst zur Laufzeit (nach Anklicken durch denAnwender) aus Texten zu Matlab-Code zusammenbaut und dann vom Matlab-Workspace ausfuhren lasst. Diese Funktion steht fur die vorcompilierten Anwen-dungen aber weiterhin nicht zur Verfugung.

Ein moglicher Ausweg ist die Kombination von vorcompilierten Matlab-Funktion-en mit der im letzten Abschnitt vorgestellten HTML+Applet-Architektur. In diesemFall dienen die Applets weiterhin zur Prasentation der aktiven Elemente und zurInteraktion mit dem Anwender. Anstatt die angeklickten Skripte aber vom Matlab-Workspace ausfuhren zu lassen, werden statt dessen die passenden vorcompilierten

Page 17: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

2.5 HTML-Skript mit Jython-Applets 15

Abbildung 8: Hilfsprogramm zum Aufruf der vorcompilierten Matlab Programme.Nach Auswahl der gewunschten Funktion konnen die gewunschten Funktionspara-meter eingestellt werden (hier z.B. die Rekursionstiefe von 7 fur das Sirpinski-Drei-eck), so dass exploratives Lernen in vollem Umfang unterstutzt wird.

Applikationen direkt aufgerufen. Dieser Ansatz erscheint so attraktiv, dass wir der-zeit entsprechende Experimente mit einer von Mathworks kurzfristig zur Verfugunggestellten Testversion des Compilers durchfuhren. Damit erscheint es jetzt erstmalsmoglich zu sein, eine leicht eingeschrankte Version der interaktiven Skripte zu er-stellen, die sich ohne Lizenzprobleme und -kosten verteilen lasst. Der volle Funk-tionsumfang bleibt allerdings weiterhin der bestehenden Version vorbehalten, diebeim Anwender eine komplette Matlab-Installation voraussetzt.

Da es sehr aufwendig ware, zu jeder unserer vorhandenen (ca. 1000) Matlab-Funktionen eine einzelne Applikation zurUbergabe der Funktionsparameter undAuswertung der Ruckgabewerte zu erstellen, werden wir eine Hilfsapplikation ver-wenden, die diese Aufgabenubernimmt. Ein erster Prototyp dieses Werkzeugs istin Abbildung8 dargestellt. Nach Auswahl der aufzurufenden Funktion konnen diegewunschten Parameter und die Anzeige der Ruckgabewerte eingestellt werden.Derzeit sind bis zu vier Argumente vorgesehen, die in Matlab-Notation eingegebenwerden, so dass auch komplexe Ausdrucke wie Matrizen, Boole’sche Ausdruckeoder arithmetische Funktionenubergeben werden konnen. Eigene Experimente derStudierenden sind daher weiterhin in vollem Umfang moglich; nur die Auswahl derzur Verfugung stehenden Funktionen ist eingeschrankt.

2.5 HTML-Skript mit Jython-Applets

Auch in der vierten Variante unserer interaktiven Skripte dienen in die HTML-Seiten eingebettete Java-Applets zur Anzeige der aktiven Codeblocke und zur In-teraktion mit dem Benutzer. Gleichzeitigubernimmt die Java Laufzeitumgebungder Applets aber auch die Ausfuhrung der ausgewahlten Codeblocke. Fur den An-wender hat dieser Ansatz den Vorteil, dass keine zusatzliche Softwareinstallation

Page 18: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

16 2 Infrastruktur und Plattformen

Abbildung 9: Alternative Plattform: die Jython/HTML-Version des interaktivenSkripts verwendet HTML als Dokumentenformat und kann mit jedem Java-fahigenBrowser angezeigt werden. Anstelle von Matlab dienen Jython-Skripte als interak-tive Elemente. Im Beispiel wird der eingegebene Textstring zunachst im Morsecodekodiert, daraus ein Audioclip via Amplitudenmodulation erstellt, und dieser danngeplottet und abgespielt.

erforderlich ist, da alle von den Applets benotigten Java-Klassen und weitere Datei-en automatisch vom Webserver nachgeladen werden.

Wie bereits im ersten Projektbericht ausfuhrlich erlautert wurde [11], stellt dieubli-Jythonche Java Laufzeitumgebung nicht den vollen fur die interaktiven Skripte benotigtenFunktionsumfang zur Verfugung. Insbesondere fehlt die Moglichkeit, zur Laufzeitinteraktiv den Programmcode zuandern und dieseAnderungen sofort auszuprobie-ren. Als Abhilfe setzen wir auf die Kombination der Java Laufzeitumgebung mitdem Jython Interpreter, der genau diese Moglichkeiten nachrustet und auch in App-lets problemlos eingesetzt werden kann.

Zusammen mit einer fur das Projekt entwickelten Benutzeroberflache mit EditorDownload-zeiten und Protokollfenstern umfasst die gesamte Software etwasuber 1 MByte an Pro-

grammcode. Bei Webzugriffuber das Netzwerk des Fachbereichs Informatik bedeu-tet dies Downloadzeiten von unter einer Sekunde, und auch fur DSL-Verbindungenergeben sich unkritische Wartezeiten von etwa 10 Sekunden. Bei ISDN (64kb/s) undModemverbindungen (40kb/s) ist dagegen mit Downloadzeiten von bis zu 4 Mi-nuten zu rechnen. Da dieser Download aber nur beim ersten Starten des Appletsanfallt, wahrend spatere Aufrufe direkt aus dem Browsercache geladen werden,erscheint uns diese Wartezeit gerade noch akzeptabel. Alternativ ist naturlich dielokale Installation der gesamten Software (HTML-Dateien und Applet-Klassen)beim Anwender moglich. Wir haben die Software bereits fur den Einsatz des

Page 19: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

2.5 HTML-Skript mit Jython-Applets 17

Abbildung 10: Uberprufung der eingegebenen Losung zu einerUbungsaufgabeund kontextabhangige Hilfestellung mittels Java-Applet. Vorteil dieser Variante desinteraktiven Skripts ist, dass alle benotigte Software vom Webserver geladen wirdund daher keine zusatzliche Softwareinstallation notwendig ist.

Java-Webstart Protokolls [25] vorbereitet, so dass sich der Vorgang des einmali-gen Downloads und die anschließende lokale Installation automatisieren lasst. Indieser Variante ist es moglich, die Codegroße der Applets in den HTML-Seitenauf wenige KBytes zu reduzieren, so dass selbstuber Modemverbindungen keineVerzogerungen auftreten.

Wegen des einfachen Zugriffs auf die Jython-Applets ohne zusatzliche Softwarein- Integration vonUbungs-aufgaben

stallation wurden die meisten Alorithmen zurUberprufung vonUbungsaufgabenauf diese Weise implementiert. Je nach Aufgabenstellung konnen die Algorithmendabei rein als Java-Klassen oder als Kombination von compilierten Java-Klassenmit interpretierten Jython-Skripten realisiert werden. Abbildung10 zeigt die inter-aktiveUberprufung der bereits in den vorangegangen Projektberichten als BeispielherangezogenenUbungsaufgabe T1.2.5. In der Abbildung erkennt dieUberprufungeinen Fehler in der eingegebenen Losung und antwortet mit einer sinnvollen Hilfe-stellung.

Die Jython-Applet Version der im letzten Projektbericht [11] beschriebenen Signa-turanalyse zurUberprufung digitaler Schaltungen ist in Abbildung11 dargestellt.Wahrend des Schaltungsentwurfs kann zusatzlich zur interaktiven Simulation jeder-zeit auch dieUberprufung durch das Jython-Applet gestartet werden. Im gezeigtenAusschnitt aus der gesamten Schaltung (4-bit Binarzahler mit Enable und Carry-Out) ist deutlich zu erkennen, dass noch ein Gatter fehlt. Entsprechend liefert die

Page 20: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

18 2 Infrastruktur und Plattformen

Abbildung 11: Jython-Applet zurUberprufung einer digitalen Schaltung via Si-gnaturanalyse (fur Details der eingesetzten Algorithmen siehe [11]). In der Abbil-dung fehlt noch ein UND-Gatter des zu entwerfenden 4-bit Binarzahlers, so dassdie Ausgange Y3 und Y4 falsche Werte liefern.

Signaturanalyse den gezeigten Hinweis (Ausgange Y0..Y2 funktionieren korrekt,Ausgange Y3 und Y4 nicht), der die Fehlersuche bereits auf einen kleinen Teil dergesamten Schaltung einschrankt.

Eine Reihe weiterer Demonstrations-Applets steht unter der URLhttp://tams-www.informatik.uni-hamburg.de/applets/jython/zum Ausprobieren zur Verfugung.Die Liste der verfugbaren Applets wird wahrend des WS 04/05 um die jeweils ak-tuellenUbungsaufgaben zur Vorlesung Technische Informatik 1 erganzt.

Page 21: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

19

3 Uberpr ufung von Formeln

Wie bereits im ersten Projektbericht ausfuhrlich erlautert wurde, nimmt die Kate-gorie derFormel-Aufgabenmit ihren Unterklassen einen breiten Raum in der tech-nischen Informatik ein (vgl. Abbildung1 auf Seite3). Die in diesem Kapitel vorge-stellten Strategien zurUberprufung dieser Art von Aufgaben durften sich aber auchfur die meisten anderen naturwissenschaftlichen und ingenieurwissenschaftlichenFacher direktubernehmen lassen.

Zunachst prasentiert Abschnitt3.1 einige typische Beispiele fur die verschiedenen UbersichtVarianten von Aufgabenstellungen und der als Losung erwarteten Formeln. Darauswerden in Abschnitt3.2einige Konzepte zurUberprufung dieser Aufgabenstellun-gen abgeleitet.

Einen”direkten“ Zugang zurUberprufung von Formeln bieten Programmsysteme

zur symbolischen Mathematik. Abschnitt3.3 liefert eine Einfuhrung in die The-matik und skizziert Implementierungsstrategien am Beispiel der Matlab SymbolicMath Toolbox. Als Alternative kommt die numerische Auswertung der Formelnin Frage; die dabei zu berucksichtigenden Anforderungen werden in Abschnitt3.4zusammengestellt.

Wegen der besonderen Bedeutung fur die technische Informatik verdient dieUber-prufung von Boole’schen Ausdrucken ihren eigenen Abschnitt3.5. Da die in denUbungsaufgaben vorkommenden Funktionen nur wenige Variablen umfassen, hatsich die Umwandlung in Normalformen bzw. Funktionstabellen trotz der theoreti-schen Komplexitatsprobleme als praxistauglich erwiesen und ermoglicht auch sinn-volle Hilfestellungen. Zusatzlich werden auch Nebenbedinungen wie etwa die Rea-lisierung nur mit NAND-Gattern und graphische Verfahren wie die bekannten KV-Diagramme unterstutzt.

3.1 Beispiele

Als Einfuhrung in die Problematik derFormel-Aufgabenwerden in diesem Ab-schnitt exemplarisch einige Formeln gezeigt, die sich als Losung zuUbungsaufga-ben der Vorlesung Technische Informatik (Teile 1 und 2) bzw. desUbungsbuches[24] ergeben. Falls die Auswertung der Formel(n) einen einfachen Zahlenwert er-gibt, ist dieser mit angegeben:

• T1.3.1a (mittlerer Informationsgehalt):

H = ∑Ni=1 p(xi) · ld 1

p(xi)≈ 3.32bit

• T1.3.5 (Gleichungssystemuber GF2, die Losung umfasst 3 Gleichungen):

x+y = 1,y+z= 0,x+y+z= 1

• T1.5.1a (Zeitverhalten):

y(t) = b(t−2τ)∨¬b(t−3τ)

• T1.5.5 (Binarzahler, vier Gleichungen):

Page 22: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

20 3 Uberprufung von Formeln

D0 = Ce⊕z0

D1 = Cez0⊕z1

D2 = Cez0z1⊕z2

D3 = Cez0z1z2⊕z3

• Schiffmann-Schmitz Aufgabe 2 (Elektronenstrahlrohre):

Y = y+y′ = 14

Ud

l2UA

+L · Ud ·

l2UA

• Aufgabe 5 (Widerstandsnetzwerk):

R23 = R2||R3 = R2·R3R2+R3

≈ 6.6kΩ

• Aufgabe 14 (Effektivwert):

U1,eff =√

1T

R T0 (u·sin(2π

T t))2dt

• Aufgabe 17 (Ladevorgang am Kondensator):

uc(t) = U0(1−e−t/τ)

3.2 Konzepte zurUberpr ufung

Obwohl die obigen Beispiele nur einen winzigen Ausschnitt aus dem Spektrumder moglichen Anwendungsfalle zeigen, wird doch bereits deutlich, dass abhangigvon der jeweiligen Aufgabenstellung unterschiedliche Strategien zurUberprufungbesonders geeignet oder sogar notwendig sein werden.

Der erste Schritt betrifft offenbar die Definition eines Eingabeformats fur dieUber-Eingabeformateprufung. Wie ebenfalls bereits im ersten Projektbericht erlautert wurde, kommt dasautomatische Einscannen handgeschriebener Formeln wegen des hohen Aufwandsund der geringen Erkennungsrate nicht in Frage. Auch auf die Formeleditoren dergangigen Textverarbeitungen muss leider verzichtet werden, da die zugrundeliegen-den Dateiformate unzureichend dokumentiert sind und keine brauchbaren Konverterzur Interpretation solcher Formeln verfugbar sind.

Auf der anderen Seite sind die meisten der fur Formeln benotigten Symbole nicht imStandard-ASCII Zeichensatz enthalten. Damit bleibt nur die Eingabe der Formelnals Unicode-formatierter Text oder als erweiterter ASCII-Text mit vorher verein-barten Symbolen. Fur letztere Variante eignet sich insbesondere die weitverbreite-te Syntax des TEX-Satzsystems, die (mit Einschrankungen) von den meisten Pro-grammsystemen fur symbolische Mathematik unterstutzt wird. In jedem Fall wirdes notwendig sein, neben den Sub- und Superskripten fur Variablennamen und dengriechischen Buchstaben auch die elementaren Funktionen (etwa\sin(x)) sowiedie Eingabe von Summen, Integralen, Wurzeln etc. zu erlauben.

Die mit Papier und Bleistiftubliche Transformation von Gleichungen durch symbo-SymbolischeManipulation lische Manipulation erlaubt dieUberprufung im Prinzip durch Berechnung der Dif-

ferenz der eingegebenen Gleichungf (x) und der zugehorigen Musterlosung f (x).Offenbar ist die Losung korrekt, wennf (x)− f (x)≡ 0. Dieser Ansatz wird in Ab-schnitt3.3am Beispiel derSymbolic Math Toolboxvon Matlab erlautert. Leider gibtes trotz des hohen Entwicklungsstandes der Werkzeuge zur symbolischen Mathe-matik keinerlei Garantien dafur, dass die symbolische Vereinfachung der Eingabe

Page 23: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

3.2 Konzepte zurUberprufung 21

gelingt, zumal auch sehr komplexe oder ungewohnliche Ausdrucke zu berucksichti-gen sind. Eine Ausnahme ergibt sich, falls fur die Aufgabenstellung eine eindeutigeNormalform existiert.

Die Alternative zur symbolischen Manipulation ist die direkte numerische Auswer-NumerischeAuswertungtung von Gleichungen und Funktionen. Aus Grunden des Rechenaufwands sollte

die Anzahl der auszuwertenden Eingangswerte naturlich moglichst gering sein; ent-sprechend gibt es verschiedene Varianten zur Auswahl geeigneter Eingangswerteinklusive der zufalligen Auswahl. Nur fur Funktionenuber diskreten Wertemen-gen ist es moglich, alle einzelnen Eingangswerte auszuprobieren und damit einevollstandigeUberprufung sicherzustellen. Die fur die technische Informatik beson-ders wichtige Anwendung auf Boole’sche Funktionen wird in Abschnitt3.5 be-schrieben.

Die folgende Liste fasst noch einmal diese prinzipiellen Moglichkeiten zusammen:

• Symbolische Manipulation und Vereinfachung der Gleichungen, anschlie-ßend Vergleich mit einer Musterlosung oderUberprufung von geeignet vor-gegebenen Bedingungen (z.B. Lage von Nullstellen und Maxima).

• Symbolische Manipulation durch Umwandlung der Gleichungen in eine Nor-malform und anschließender Vergleich auf Identitat. Dieses Verfahren kannnur eingesetzt werden, wenn eine Normalform existiert (z.B. fur logischeAusdrucke oder Polynome).

• Vollstandige numerische Auswertung der Gleichungen fur alle moglichen Pa-rameterwerte. Dieser Ansatz ist naturlich nur fur Funktionenuber diskretenWertemengen moglich (z.B. Boole’schen Ausdrucken).

• Numerische Auswertung der Gleichungen fur geeignet ausgewahlte Parame-terwerte und Vergleich mit den zugehorigen Werten einer Musterlosung, unterBerucksichtigung von Abweichungen (z.B. durch unterschiedliche Modellie-rung oder Rundungsfehler).

• Numerische Auswertung der Gleichungen fur zufallig ausgewahlte Parame-terwerte (Monte-Carlo-Verfahren) und Vergleich mit den zugehorigen Wertender Musterlosung.

• Berucksichtung moglicher Abweichungen der Losungsansatze von der Mu-sterlosung durch unterschiedliche Modellierung, unterschiedliche Abschatz-ungen von Parametern, und Rundungsfehler.

• Kombination und Schachtelung mehrerer Verfahren.

• Erganzung um Plausibilitatstests, um einige typische Fehler (z.B. Vorzeichen-fehler) besser erkennen und fur sinnvolle Hilfestellungen bzw. Fehlermeldun-gen nutzen zu konnen.

Page 24: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

22 3 Uberprufung von Formeln

3.3 Symbolic Math Toolbox

Trotz der Forderung nach einfacher ASCII-Formatierung der Eingabe fur dieUber-DirekterStringvergleich:

nicht sinnvollprufung von Formeln ist offensichtlich, dass ein einfacher Textvergleich mit einerMusterlosung nur in den wenigsten Fallen in Frage kommt. Auf diese Weise warezwar eine der Musterlosung exakt entsprechende Eingabe zu erkennen, aber be-reits die einfache Umstellung der Terme oder Variablen wurde den Textvergleichuberfordern. Auch der Versuch, die Losung mit einfachen Stringmanipulationen(Loschen von Leerzeichen, Sortieren von Termen, etc.) in die Musterlosung zuuberfuhren, ist angesichts der Vielfalt der moglichen gleichwertigen Schreibweisenfur ein und dieselbe Funktion zum Scheitern verurteilt.

Als Alternative liegt es nahe, sich auf die mittlerweile sehr leistungsfahigen Pro-SymbolischeManipulation grammsysteme fur symbolische Mathematikzu verlassen, die ihrerseits ausgefeil-

te Algorithmen fur die symbolische Manipulation von Funktionen enthalten. Dreibekannte Softwarepakete dieser Kategorie sind Mathematica, Maple und MuPAD.Die als optionale Komponente fur Matlab verfugbareSymbolic Math Toolboxba-siert auf dem Programmkern von Maple und integriert dessen Algorithmen in denMatlab-Workspace.Uber eine Reihe von Hilfsfunktionen konnen symbolische Aus-drucke auch mit numerischen Algorithmen kombiniert werden; unter anderem istes moglich, Ausdrucke sowohl symbolisch, numerisch mit beliebiger Genauigkeit(”variable precision arithmetic“) oder der gewohnlichen Gleitkommaarithmetik aus-

zuwerten.

Die Grundidee fur die Uberprufung eines eingegebenen Ausdrucksf (x) mit ei-nem solchen Programmsystem ist der direkte Vergleich mit der zugehorigen Mu-sterlosung f (x). Sofern die Berechnung der Hilfsgroße∆ f = f (x)− f (x) exakt denWert Null ergibt, sind die beiden Ausdrucke identisch und die Losung ist korrekt.Falls ∆ f nicht Null ist, dient der resultierende Ausdruck direkt als Hilfestellung.Der entscheidende Unterschied gegenuber dem einfachen Stringvergleich bestehtdarin, dass die Programmpakete automatisch eine ganze Reihe von Heuristiken zurMinimierung der eingegeben Ausdrucke verwenden. Dabei ist die Leistungsfahig-keit der eingesetzten Heuristiken erstaunlich hoch; zum Beispiel erkennt Maple dieAdditionstheoreme fur die Winkelfunktionen wie sin2(x)+ cos2(x) = 1 und nutztdiese fur die Vereinfachung aus:

syms omega t; % symbolische Variablen

f = 1 - cos(t)^2; % entspricht sin(t)^2

F = sin(t)^2; %

disp( f - F ); % direkte Auswertung

1-cos(t)^2-sin(t)^2 % Rohdaten

disp( simple(f - F^2)): % Vereinfachung

0 % ok.

Das obige Beispiel demonstriert nicht nur das Konzept, sondern auch den prin-zipbedingten Nachteil: es gibt keine Garantie, dass die eingesetzten Heuristiken fur

Page 25: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

3.3 Symbolic Math Toolbox 23

direkter Zugriff

Übungen

Browser

Status

FormelMatlab-Workspace

Symbolic-MathToolbox / MAPLE

Status

Formel

Proxy

Toolbox / MAPLESymbolic-Math

Matlab-Workspace

Übungen

Browser

a) GUI + Matlab (direkter Zugriff)

b) GUI + Matlab (Zugriff über Proxy)

Abbildung 12: Direkter und indirekter Zugriff auf die Funktionen der MatlabSymbolic-Math Toolbox. Letzteres kann notwendig sein, um ein direktes Ablesender Musterlosungen zu verhindern.

eine gegebene Funktion und Musterlosung tatsachlich die notwendigen Umformun-gen zum Nachweis der Gleichheit finden. Nur fur wenige Formeln (etwa Polynomeoder die in Abschnitt3.5beschriebenen Boole’schen Ausdrucke) existieren eindeu-tige Darstellungen. Um eine eigentlich korrekte Losung nicht falschlich zuruckzu-weisen, kann die reine symbolische Umwandlung deshalb in einem mehrstufigenProzess um weitere Schritte erganzt werden. Bei der Symbolic Math Toolbox istes zum Beispiel moglich, die verschiedenen Algorithmen zur Vereinfachung einesAusdrucks auch direkt aufzurufen (Funktionensimple(), simplify(), factor(),usw.) und auf diese Weise weitere Varianten der Vereinfachung durchzuprobieren.

Im nachsten Schritt ist es moglich, immer noch mit symbolischen Verfahren dasMaximumsucheMaximum der Funktion| f − f | zu suchen. Dieser Schritt ist auch notwendig, fallsdie Aufgabenstellung eine gewisse (absolute oder relative) Abweichungσ zwischender eingegebenen Losung und der vorgegebenen Musterlosung zulasst. In diesemFall wird die Losung akzeptiert, sofern maxx | f (x)− f (x)| ≤ σ. Falls die symboli-sche Vereinfachung ein geeignetes Maximum findet, erlaubt dies sofort eine Aus-sageuber die Korrektheit (und Qualitat) der aktuellen Losung. Im letzten Schrittist es moglich, die Uberprufung zusatzlich um die numerische Auswertung vonf (x)− f (x) zu erganzen, vgl. Abschnitt3.4.

Schließlich erlaubt die symbolische Verarbeitung in vielen Fallen auch die Kontrolle Rundungsfehlerder Rundungsfehler, die bei der numerischen Rechnung mit Gleitkommaarithmetikunvermeidlich sind. Ein besonders eindrucksvolles Beispiel ergibt sich mit den Va-riablenwertenx= 10864,y= 18817 fur die folgende Formel 9·x4−y4+2∗y2 = 1.Die Auswertung im Rahmen der gewohnlichen IEEE-754 Gleitkommaarithmetikliefert den Integerwert 2, wahrend die Berechnung mit ausreichender Genauigkeitden mathematisch korrekten Wert 1 liefert. Obwohl das Resultat der Gleitkomma-rechnung als Integerzahl erscheint und daher nichts auf Rundungsfehler hindeutet,ist also nicht einmal die erste Stelle des Ergebnisses korrekt.

Page 26: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

24 3 Uberprufung von Formeln

Im Kontext des interaktiven Skripts istubrigens wieder zu berucksichtigen, dass dieAnwender jederzeit auch eigene Befehle in der interaktiven Programmumgebungeingeben konnen und außerdem Zugang zu den Quelltexten der einzelnen Funktio-nen haben. Im Beispiel von Seite22 kann ein Student sich die gesuchte Losung al-so einfach durch Eingabe des Befehlsdisp(simple(F)) oderdisp(pretty(F))sauber formatiert anzeigen lassen. Falls dies nicht gewunscht ist, bleibt nur die Kap-selung der interaktiven Programmierumgebung hinter einer geeigneten Software,etwa einem Web-Proxy (vgl. Abbildung12).

3.4 Numerische Auswertung

Einzige Voraussetzung fur die numerische Auswertung von Formeln ist eine Platt-form, die als Text eingegebene Ausdrucke zur Laufzeit auswerten kann. In Matlableisten dies die Funktioneneval() undfeval(), in Jython ebenfalls die Funktioneval(). Naturlich bietet Matlab in dieser Hinsicht einen deutlich großeren Funkti-onsumfang, da die Ausdrucke von vornherein auch mit Arrays bzw. Matrizen um-gehen konnen. Bis auf die syntaxbedingten Einschrankungen konnen alle Beispieleaus Abschnitt3.1problemlos in Matlab-Syntax eingegeben werden; nur die als Be-zeichner nicht zulassigen griechischen Buchstaben mussen durch passende Namenersetzt werden. Jython dagegen unterstutzt zunachst nur Operationen auf Skalarenund nur die elementaren mathematischen Funktionen. Es existiert allerdings eineErweiterung, mit der eine weitgehend Matlab-kompatible Schreibweise von Array-Operationen nachgerustet werden kann. In beiden Plattformen lassen sich zusatzlichbenotigte Funktionen problemlosuber eigene m-Dateien bzw. Python-Skripte hin-zufugen. (Wie unten in Abschnitt3.5.2am Beispiel von Boole’schen Ausdruckengezeigt wird, ware es im Prinzip auch moglich, einen komplett eigener Parser zuentwickeln und fur die Auswertung von Formeln einzusetzen. Dies ist aber furarithmetische Ausdrucke kaum notwendig, da dieublichen Programmiersprachenbereits alle notwendigen Operationen unterstutzen.)

Die Uberprufung eines eingebenen Ausdrucks erfolgt dann durch Auswertung die-Auswertung andiskretenPunkten

ses Ausdrucks fur bestimmte Werte der freien Variablen und Paramenter und Ver-gleich mit den entsprechenden Werten einer Musterlosung. Die Funktion wird alsonur an einigen, diskreten Werten abgetastet, wahrend die im letzten Abschnitt be-schriebene symbolische Auswertung eine vollstandige Informationuber die Funk-tion liefert (bzw. liefern kann). Daruber hinaus treten bei derublichen numerischenAuswertung mit Gleitkommaarithmetik in jedem Fall Rundungsfehler auf, die ge-eignet berucksichtigt werden mussen, etwa durch Vorgabe von absoluten oder rela-tiven Toleranzen.

Naturlich kann die Musterlosung ebenso wie die eingegebene Funktion als Aus-druck vorliegen und parallel mit dieser ausgewertet werden. Alternativ ist es aberauch moglich, die Musterlosung nur als vorberechnete Liste der Funktionswertezu reprasentieren. Dies hat im Kontext des interaktiven Skripts mit seinem freienZugang zu allen Quelltexten der Vorteil, dass die Studierenden die erwartete Funk-tion nicht direkt ablesen konnen. Der in Abbildung12 gezeigte Umweguber einenProxy-Server wird daher nur selten notwendig sein.

Entsprechend der Auswahl der auszuwertenden Argumentwerte ergeben sich ei-ne Reihe von Varianten, die sich im Rechenaufwand und der Qualitat derUber-

Page 27: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

3.4 Numerische Auswertung 25

x

xx

y y

yy

x

d)c)

b)a)

f(x)

f(x)

f(x)f(x)

Abbildung 13: Vier Varianten zur numerischenUberprufung einer Funktion: a)Abtastung an regelmaßigen Stutzstellen, b) adaptiv ausgewahlte Stutzstellen, c)zufallig ausgewahlte Stutzstellen, d) Vorgabe von zulassigen bzw. verbotenen Re-gionen.

prufung unterscheiden. Am einfachsten zu realisieren ist die Auswertung auf Stutz-stellenxi , die ein vorher geeignet festgelegtes Intervall regelmaßig unterteilen (Ab-bildung13a). Der wesentliche Nachteil dieses Ansatzes ist, dass besonders

”inter-

essante“ Bereiche einer Funktion nur durch vergleichsweise wenige oder eventu-ell gar keine Werte abgetastet werden. Dieses Problem kann naturlich durch eineentsprechende Auswahl behoben werden, die mehr Stutzstellen fur die wichtigenBereiche der Funktion vorsieht (Abbildung13b). Diese Auswahl kann statisch vor-berechnet werden oder ausgehend von der (numerisch berechneten) Ableitung derFunktion adaptiert werden. Schließlich zeigt Abbildung13c eine zufallige Auswahlder Stutzstellen (Monte-Carlo Varfahren). Dieser Ansatz kommt insbesondere beimehrdimensionalen Funktionen in Frage, bei denen eine regelmaßige Anordnungder Stutzstellen zu sehr grober Abtastung fuhren wurde.

Neben dem punktweisen Vergleich mit einer Musterlosung sind auch weitere Vari-anten denkbar, insbesondere die Vorgabe von unteren und oder oberen Schrankenfur ganze Wertebereiche. Dieses Vorgehen wird in Abbildung13d anhand der Kenn-linie eines Tiefpassfilters skizziert.

Page 28: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

26 3 Uberprufung von Formeln

3.5 Boole’sche Ausdrucke

Wegen ihrer Bedeutung fur das Verstandnis und den Entwurf digitaler Schaltungenbildet die Boole’sche Algebra einen besonderen Schwerpunkt in der technischen In-formatik. Dies gilt auch fur dieUbungsaufgaben — fast die Halfte aller Aufgabenzur Vorlesung Technische Informatik 1 behandelt die Umrechnung und Minimie-rung von Boole’schen Ausdrucken bzw. Funktionen [4].

Leider enthalt die Symbolic Math Toolbox von Matlab keine Funktionen zur Ma-nipulation von logischen Ausdrucken, obwohl das zugrundeliegende Programmsy-stem (Maple) die elementaren Grundfunktionen durchaus bereitstellt. Bei nahererBetrachtung zeigt sich jedoch, dass auch Maple nicht alle der fur unsereUbungs-aufgaben benotigten Funktionen umfasst. Insbesondere fehlen Funktionen fur tech-nisch wichtige Aufgabenstellungen, etwa die Beschrankung auf bestimmte Opera-tionen (z.B. NAND- und NOR-Logik) oder die Minimierung des Realisierungsauf-wands. Mangels geeigneter Software muss im Rahmen dieses Projekts daher aufdie direkte und automatische symbolische Manipulation von logischen Ausdruckenverzichtet werden.

3.5.1 Uberpr ufung durch Umwandlung in Normalform

Anders als bei der numerischen Verarbeitung von kontinuierlichen Funktionen mitkeineRundungsfehler Gleitkommarechnung kann es bei logischen Ausdrucken nicht zu Rundungsfehlern

kommen. EineUberprufung der Eingaben auf Korrektheit ist daher exakt moglichund erfordert prinzipiell nur den Vergleich mit einer vorgegebenen Musterlosung.Dabei ist naturlich zu berucksichtigen, dass es durchaus auch mehrere gleichwertigeLosungen geben kann.

Der Vergleich mit einer Musterlosung wird dadurch erleichtert, dass eine ReiheNormalformenvon bekanntenNormalformenexistieren, die eine eindeutige Darstellung jeder Boo-le’schen Funktion erlauben. ZurUberprufung einer Funktion bzw. eines eingege-benen Ausdrucks reicht es daher aus, die Funktion in die gewunschte Normalformumzuwandeln und dann mit der vorhandenen Musterlosung zu vergleichen. Die fol-gende Liste zahlt einige der verbreiteten Normalformen auf:

• Funktionstabellen

• Disjunktive Normalform (AND-OR)

• Konjunktive Normalform (OR-AND)

• Reed-Muller Form (XOR-AND)

• Reduced-Ordered Binary-Decision Diagrams (ROBDD)

Der wesentliche Nachteil bei Verwendung von Normalformen ist die oft exponen-Komplexitats-abschatzungen tielle Komplexitat und der damit verbundene Rechenaufwand auch fur

”einfache“

Funktionen. Zwar zeigt eine bekannte Abschatzung von Shannon [43], dass fast al-le Boole’schen Funktionen mitn Variablen eine exponentielle Komplexitat O(2n)haben, aber viele in der Praxis wichtige Funktionen wie etwa Addierer lassen sichals Ausdrucke mit lediglichO(n) oderO(nlnn) Termen schreiben.

Page 29: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

3.5 Boole’sche Ausdrucke 27

Abbildung 14: Berechnung einer Funktionstabelle in unseren Jython-Applets. Ent-sprechende Funktionen stehen auch fur die Matlab-Skripte zur Verfugung.

Fur eine umfassende Einfuhrung in die Theorie und KomplexitatsabschatzungenBoole’scher Funktionen sei auf [44] verwiesen. Aber bereits das folgende kleineBeispiel (ausUbungsaufgabe T1.3.6) zeigt die unterschiedliche Komplexitat der-selben Funktion abhangig von der Darstellung:

f (x,y,z) = (x∨y)(y∨z)= (xyz)∨ (xyz)∨ (xyz)∨ (xyz) (DNF)= (x∨y∨ z)(x∨y∨z)(x∨ y∨z)(x∨ y∨z) (KNF)= 1+x+y+xy+yz (RMF)

Offenbar umfasst die Funktionstabelle einer Boole’schen Funktion mitn Eingangenimmer 2n Eintrage, so dass sich diese Darstellung nur fur verhaltnismaßig kleineFunktionen (etwan≤ 16 bzw. 216 = 65536 Termen) eignet. Aber auch die disjunk-tive und konjunktive Normalform sowie die seltener verwendete Reed-Muller Formerweisen sich in der Praxis als ungeeignet fur großesn, da fur viele Funktionenebenfalls eine exponentielle Anzahl der Terme auftritt.

Dagegen weisen die Reduced-Ordered Binary-Decision Diagrams [1] f ur viele ROBDDspraxisrelevante Funktionen ein gutartiges Verhalten auf und bilden deshalb auchdie Grundlage fur aktuelle Programme im professionellen Schaltungsentwurf. Lei-der sind die meisten dieser Programmpakete nur als C/C++ Versionen verfugbar,wahrend keine geeignete ROBDD-Toolbox fur Matlab existiert. Immerhin existie-ren seit kurzem einige Java-Packages, die bei Bedarf leicht nachtraglich in unsereSoftwareplattform integriert werden konnten [45].

Page 30: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

28 3 Uberprufung von Formeln

0 2 4 6 8 10 12 14 16 18 20

0.01

0.1

1

10

f=(a&b&c&d)|(e&f&g&h)|(m&l)

Jython / Matlab eval() performance

cpu

time

[sec

]

number of variables

Matlab, eval()Matlab, feval()Jython, compiledJython, interpreted

Abbildung 15: Performance der dynamischen Auswertung von Boole’schen Aus-drucken in Matlab und Jython. Angegeben ist jeweils die Laufzeit zur Berechnungder vollstandigen Funktionstabelle einer Testfunktion abhangig von der Anzahl derVariablen. In Matlab wurden die Funktionen eval() und feval() verwendet, in Jythonwurde der Ausdruck entweder direkt via eval() ausgewertet (interpretiert) bzw. zurLaufzeit compiliert. Im Beispiel konnen trotz der exponentiellen Komplexitat Funk-tionen mit bis zu 14 Variablen in weniger als einer Sekunde ausgewertet werden.

Im Kontext derUberprufung vonUbungsaufgaben spielen solche Komplexitats-betrachtungen zum Gluck keine zentrale Rolle, da praktisch alle in den Aufgabenvorkommenden Funktionen nur wenige (n< 6) Variablen umfassen. Tatsachlich ba-sieren die bisher von uns implementierten Algorithmen zurUberprufung von Boo-le’schen Funktionen direkt auf Funktionstabellen. Dies erlaubt nicht nur den di-rekten Vergleich mehrerer Funktionen, sondern ermoglicht bei Abweichungen auchgezielte Hilfestellungen durch einfaches Auflisten der zugehorigen Eingangsbele-gungen. Abbildung14zeigt exemplarisch die Darstellung einer Funktionstabelle inunseren Jython-Applets.

Der gegenuber anderen Darstellungen hohere Rechenaufwand zum Erstellen derPerformancevollstandigen Funktionstabelle muss dafur in Kauf genommen werden. Ange-sichts der kleinen Problemgroße fuhrt der exponentielle Rechenaufwand selbstbei Verwendung von Skriptsprachen (wie Matlab oder Jython) nicht zu ern-sten Performanceproblemen. Abbildung15 zeigt die exponentielle Abhangigkeitder benotigten Rechenzeit fur die Auswertung einer einfachen Beispielfunktion(a&b&c&d)|(e&f&g&h)|(m&l) von der Anzahl der aktiven Variablen. Dabei wur-den in Matlab die Funktioneneval() und feval() getestet, wahrend fur Jythondie direkte Auswertung per Interpreter und die zur Laufzeit compilierte Auswertungeingesetzt wurden. Der compilierte Jython-Code ist am schnellsten und benotigt aufdem Testrechner (2.4 GHz PC) ca. 1 Sekunde Rechenzeit fur die Aufstellung der

Page 31: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

3.5 Boole’sche Ausdrucke 29

Funktionstabelle der Testfunktion mitn = 14 Eingangsvariablen. Dies ist fur dieUberprufung vonUbungsaufgaben in jedem Fall ausreichend.

3.5.2 Nebenbedingungen fur Boole’sche Ausdrucke

Sowohl der Matlab-Workspace als auch der Jython-Interpreter erlauben die interak-tive Eingabe von Ausdrucken und Funktionen als Zeichenketten. In beiden Fallensteht also ein leistungsfahiger Parser zur Verfugung, der die vom Anwender ein-gegebenen Zeichenketten zur Laufzeit in ausfuhrbaren Programmcode umwandeltbzw. fehlerhafte Eingaben mit detaillierten Fehlermeldungen zuruckweist. Leidersind diese Parser in beiden Plattformen in vorgegebenen Funktionen (z.B.eval()

s.o.) gekapselt und erlauben keinen Zugriff auf die vom Parser erzeugten internenDatenstrukturen. Daher ist es unmoglich, diese internen Datenstrukturen zur wei-teren Analyse undUberprufung von Nebenbedingungen auszunutzen, die fur vieleunsererUbungsaufgaben gefordert sind. Die folgende Liste nennt einige Beispielefur solche Zusatzanforderungen an die Losungen:

• Uberprufung der Form desubergebenen Ausdrucks: z.B. Forderung nach dis-kunktiver, konjunktiver oder Reed-Muller-Form.

• Forderung nach funktionaler anstelle der Infix-Schreibweise, z.B.XOR(a,b)statta⊕b.

• Uberprufung der Realisierungskosten bei vorgegebener Kostenfunktion, z.B.Anzahl der Logikgatter.

• Einschrankung der Realisierung auf bestimmte Operatoren bzw. Gatter, z.B.NAND(NAND(1,a),NAND(1,b)) statta∨b.

• Forderung nach (struktur-) hazardfreier Realisierung.

• Kombinationen dieser Anforderungen.

Da die meisten dieser Anforderungen nur im Kontext der technischen InformatikZwei Strategien:bzw. der konkreten technologischen Umsetzung von Boole’schen Funktionen auf-treten, bietet keine derublichen Programmiersprachen eine Unterstutzung zurUber-prufung dieser Eigenschaften an. Es war daher notwendig, im Rahmen dieser Pro-jekts einen eigenen Parser fur Boole’sche Ausdrucke zu erstellen, der die Analyseder oben aufgezahlten Eigenschaften erlaubt.

Der einfachste Ansatz dazu, der auch in diversen unserer Matlab-Funktionen und1. String-manipulationJava-Klassen umgesetzt wurde, besteht in trivialen String-Manipulationen der ein-

gegeben Ausdrucke. Die Grundidee besteht darin, einen eingegebenen Ausdruck imersten Schritt zunachst vom Parser der jeweiligen Plattform (z.B. Matlab) auswer-ten zu lassen. Eventuelle Fehler im Ausdruck werden an dieser Stelle erkannt, sodass anschließend keine weitere Syntaxuberprufung notwendig ist. In den folgendenSchritten konnen dann die geforderten Eigenschaften durch einfache Stringopera-tionenuberpruft werden. Zum Beispiel kann die disjunktive oder konjunktive Formeines Ausdrucks durch Auftrennung an den Klammern und einfache Suche nachden innerhalb und außerhalb der Klammern vorkommenden Operatorsymbolen er-folgen. Entsprechend ist eine Berechnung der Realisierungskosten durch einfachesAuszahlen der Operatorsymbole moglich.

Page 32: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

30 3 Uberprufung von Formeln

Als Alternative wurde ein komplett eigener Parser fur Boole’sche Ausdrucke mit2. Eigener ParserHilfe des Java-basierten Parsergenerators JavaCC realisiert. In seiner jetzigen Formakzeptiert dieser Parser neben den Operatoren~, &, |, + (fur Negation, UND,ODER, XOR) auch die entsprechenden Funktionen wieNOT(), AND(), NAND().Zu jeder dieser Operationen existiert eine zugehorige Java-Klasse, die die jeweiligeOperation umsetzt. Der wahrend des Parsens fur den eingegebenen Ausdruck er-zeugte Baum aus den zugehorigen Java-Objekten kann anschließend bequem analy-siert und beliebig modifiziert werden. Aus dieser Implementierung ergeben sich dreiVorteileVorteile. Erstens gelingt dieUberprufung der meisten Nebenbedingungen (Realisie-rungskosten, Art und Anzahl der Operatoren, maximale Tiefe des Baums, usw.) mittrivialen rekursiven Funktionen. Zweitens realisiert der Parser den Zugriff auf dieim Ausdruck enthaltenen Variablenuber Arrayzugriffe, wahrend Matlab und Jythonihren Namensraum mit Hashtabellen verwalten mussen. Dadurch ergibt sich ein er-heblicher Performancevorteil bei mehrfacher Auswertung desselben Ausdrucks furviele Kombinationen der Variablenwerte, was etwa bei Aufstellung der Funktions-tabelle erforderlich ist. Drittens umfasst dieser Parser nur ca. 50 KByte an Pro-grammcode und ist auch standalone ohne eine interaktive Umgebung lauffahig. Dieserlaubt es uns, Applets zurUberprufung von Boole’schen Ausdrucken anzubieten,die wegen der geringen Codegroße sehr schnell geladen werden und damit selbstbei langsamer Internetanbindung (Modem, ISDN) problemlos eingesetzt werdenkonnen.

3.5.3 KV-Diagramme

Ein besonders anschauliches Hilfsmittel zur Manipulation und zur Minimierung vonSchaltfunktionen basiert auf den sogenannten Karnaugh-Veitch-Diagrammen [4].Wegen der geschickten Anordnung der einzelnen Terme in diesen Diagrammen sindmogliche Vereinfachungen durch Gruppierung von Termen unmittelbar

”auf einen

Blick“ zu erkennen, so dass sich das Verfahren ideal als Einfuhrung in die Thematikder Minimierung des Realisierungsaufwands logischer Schaltungen eignet.

Mit der Funktionkvdiagram steht ein interaktives Applet zur Eingabe und Mini-kvdiagram.mmierung von KV-Diagrammen direkt als Komponente des Matlab-Skripts zur Vorle-sung Technische Informatik 1 zur Verfugung. Es unterstutzt die Erzeugung und Vi-sualisierung von Diagrammen mit beliebig vielen Variablen und erlaubt die direkteManipulation sowohl in disjunktiver als auch konjunktiver Form. In der Praxis eig-nen sich aber nur Funktionen mit bis zu sechs Variablen fur die KV-Diagramme, dafur komplexere Funktionen dieUbersichtlichkeit schnell wieder verlorengeht undeine zweistufige Realisierung kaum in Betracht kommt. Zusammen mit der Hilfs-funktion checkkvmin, die die Anzahl der fur ein KV-Diagramm benotigten Gatterberechnet und mit dem vorgegebenen Realisierungsaufwand fur eine Musterlosungvergleicht, ist dieUberprufung allerUbungsaufgaben zu KV-Diagrammen direkt iminteraktiven Skript moglich.

Als Alternative wurde im Rahmen des Projekts zusatzlich ein fruher im Rahmeneiner Studienarbeit erstelltes Java-Applet [13] aktualisiert und an die Konventio-nen der Vorlesung T1 angepasst. Dies betrifft die Umstellung auf die Swing-GUI-Bibliotheken und eine andere Berechnung des Realisierungsaufwands (Anzahl derGatter anstelle der Anzahl der Gattereingange). Dieses Applet kann problemlos inHTML-Webseiten eingebettet werden und ist auch ohne Matlab-Lizenz lauffahig.

Page 33: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

3.5 Boole’sche Ausdrucke 31

Abbildung 16: Interaktive Manipulation und Minimierung einer Schaltfunktion mitKV-Diagrammen. Das Applet vergleicht von den Studierenden interaktiv eingegebe-ne und in disjunktiver oder konjunktiver Form minimierte Schaltfunktion mit einervorgegebenen Musterlosung.

Abbildung 16 sowie die Abbildung auf der Titelseite zeigen Screenshots diesesApplets bei Bearbeitung von Funktionen mit vier bzw. mit sechs Eingangsvariablen.Wie bei derublichen Darstellung mit Papier und Bleistift werden die zusammenge-fassten Terme dabei durch farbig markierte Schleifen dargestellt.

Als Hilfestellungen liefern beide Version der KV-Diagramm-Applets Hinweiseauf Abweichungen von der Musterlosung, die als Funktionstabelle mit optionalenDon’t-Care Termen vorgegeben wird. DieUberprufung des Realisierungsaufwandserfolgt jeweils durch Abzahlen der benotigten Gatter und Vergleich mit der vorge-gebenen Gatteranzahl, vgl. Abbildung16. Dieser Algorithmus akzeptiert auch diemoglichen Losungsvarianten, die durch andere Zusammenfassung von Termen ent-stehen konnen und zu gleichwertigen Losungen fuhren.

3.5.4 Ein graphischer Editor fur zweistufige Schaltungen

Neben der textuellen Darstellung von Boole’schen Ausdrucken und der Visualisie- Schaltbilderrung mit KV-Diagrammen wird drittens auch die graphische Reprasentation mitSchaltbildern haufig verwendet. Ein Vorteil der graphischen Darstellung ist, dass

Page 34: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

32 3 Uberprufung von Formeln

Abbildung 17: Der in der Abbildung gezeigte Editor fur zweistufige Schaltungenerlaubt die interaktive Eingabe einer Schaltung durch Anklicken der Kreuzungs-punkte zwischen den Eingangsleitungen (vertikal) und den Eingangen der Gatter(horizontal). Aus den vom Anwender gesetzten Verbindungen wird der zugehorigeBoole’sche Ausdruck berechnet und steht dann zurUberprufung zur Verfugung.

viele in der Praxis relevante Funktionen quasi auf einen Blick erkannt werdenkonnen. Voraussetzung fur die automatischeUberprufung und Hilfestellung ist of-fenbar ein geeigneter Schaltplaneditor. Bereits im letzten Projektbericht [12] wurdeerlautert, wie dieUberprufung durch Simulation und Signaturanalyse realisiert wer-den kann.

Fur einfache Schaltungen ist dieses Vorgehen jedoch unnotig kompliziert. Als Al-Spezialfallzweistufige

Schaltungenternative wurde ein zusatzlicher kleiner Graphikeditor speziell fur die Eingabe vonzweistufigen Schaltungengeschrieben, bei dem die Grundstruktur der Schaltung mit(derzeit) vier Eingangsvariablen und funf Gattern in der ersten Stufe fest vorgege-ben ist. Dieser in Abbildung17 gezeigte Editor erlaubt das interaktive

”Zusam-

menklicken“ einer Schaltung durch einfaches Anklicken der Kreuzungspunkte zwi-schen den vertikal verlaufenden Eingangsleitungen und den horizontalen Verbin-dungen zu den Gattern der ersten Stufe. Alternativ zur in der Abbildung gezeigtendisjunktiven Form (AND-OR) ist wiederum auch die konjunktive Form (OR-AND)moglich.

Es ist zu beachten, dass trotz der festgelegten zweistufigen Grundstruktur der Schal-vielegleichwertige

Losungentung immer noch viele gleichwertige Losungen fur jede zu realisierende logischeFunktion existieren, die sich durch Permutation der Eingangsleitungen und Gat-ter ineinanderuberfuhren lassen. Dies bedeutet naturlich, dass ein trivialer 1:1-

Page 35: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

3.5 Boole’sche Ausdrucke 33

Vergleich mit einer einzelnen Musterlosung nicht zurUberprufung in Frage kommt.Statt dessen wird vom Editor nach jederAnderung einer Verbindung automatischder zugehorige logische Ausdruck neu berechnet und steht als String zur Verfugung;in der Abbildung ergibt sich der Ausdrucky = (a∧b)∨ (a∧¬b∧c∧¬d)∨ ( ¬a∧c∧d). Dies erlaubt es insbesondere, die in Abschnitt3.5vorgestellten Algorithmenzur Uberprufung zu verwenden.

Die gewahlte Darstellung der Schaltplane entsprichtubrigens der in Datenblatternublichen Darstellung von programmierbaren Logikbausteinen wie GALs [41] unddient damit gleichzeitig als Vorbereitung auf den Umgang mit diesen Bausteinen.

Page 36: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

34 3 Uberprufung von Formeln

Page 37: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

35

4 Uberpr ufung von Programmen

Nicht zuletzt die taglich neuen Meldungenuber Sicherheitslucken in Anwendungs-programmen und Betriebssystemen zeigen die Bedeutung derUberprufung der Kor-rektheit und Sicherheit von Programmen. Trotz jahrelanger Forschungsarbeiten aufdiesem Gebiet beschranken sich die verfugbaren Ansatze aber immer noch aufkleine Teilbereiche, etwa bei Verwendung bestimmter Programmiersprachen oderWerkzeuge [36, 37]. Als Beispiel sei auf das ebenfalls via ELCH geforderte ProjektINCOM [38] hingewiesen, das sich speziell auf die Analyse von Programmen indeklarativen Sprachen beschrankt.

Wie bereits bei Vorstellung unserer Klassifikation vonUbungsaufgaben erlautert Abstraktions-ebenenwurde [11], lasst sich das gesamte Themengebeit der Softwareentwicklung zwang-

los durch die behandelten Abstraktionsebenen untergliedern (vgl. Abbildung1 aufSeite3). Im Rahmen der Vorlesungen zur technischen Informatik kommen dabeinur die untersten Abstraktionsebenen vor. Dies sind die direkte Programmierungvon Hardware mittels Microcode, die Programmierung mit Maschinensprache undschließlich eine Einfuhrung in die Assemblerprogrammierung. Die daruberliegen-den Ebenen dagegen sind den Einfuhrungsvorlesungen zur Programmierung bzw.praktischen Informatik sowie derenUbungen vorbehalten.

Der folgende Abschnitt4.1 beschreibt zunachst den Aufbau unseres Demonstra-Ubersichttionsrechners

”PRIMA“ und den im Rahmen des Projekt entwickelten Simulator

fur diese Maschine. In Abschnitt4.2 wird erlautert, wie die von den Studierendenentwickelten Programme fur diese Maschine durch Simulationuberpruft werdenkonnen. Schließlich beschreibt Abschnitt4.3 eine Reihe von Ansatzen zur Hilfe-stellung wahrend der Programmentwicklung.

4.1 Die Primitive Maschine PRIMA

In den meisten Lehrbuchern und Vorlesungsskripten zur Thematik der digitalen Sy-bottom-upsteme wird das Thema Rechnerarchitektur und speicherprogrammierbarer Rechner(”von-Neumann Rechner“) mit einembottom-up-Ansatz eingefuhrt. Aufbauend auf

der Boole’schen Algebra werden zunachst die Grundkomponenten eines Rechners(Multiplexer, Rechenwerke, Register, etc.) vorgestellt. Dann wird aus diesen Grund-komponenten ein einfacher Mikrorechner aufgebaut und dessen Funktionsweise an-hand der Ausfuhrung einzelner Befehle erlautert. Anschließend werden einfacheMaschinen-Programme fur diesen Rechner vorgefuhrt und die Grundprinzipien derAssembler-Programmierung erlautert.

Dieses bewahrte Vorgehen wird auch in unserer Vorlesung eingesetzt [4, 5]. Als Die PRIMAGrundlage dient diePrimitive Maschine(PRIMA), eine sehr einfache Akkumulator-maschine mit lediglich vier Registern und 256 Worten Hauptspeicher bei 8-bit Wort-breite. Der Befehlssatz umfasst ausschließlich die grundlegenden Rechenoperatio-nen, Lade- und Speicherbefehle mit direkter Adressierung sowie einige Sprungbe-fehle. Durch die horizontale Befehlskodierung reichen wenige Gatter zur Realisie-rung des Rechners aus, die gesamte Schaltung lasst sich bequem auf einem BlattPapier skizzieren. Der einfache Befehlszyklus der Maschine umfasst jeweils dreiTakte (Befehl holen, Adresse holen, Befehl ausfuhren). Lediglich das Inkrementie-ren des Befehlszahlers erfolgt implizit parallel zu denubrigen Operationen, was die

Page 38: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

36 4 Uberprufung von Programmen

Abbildung 18: Simulator fur die primitive Maschine (PRIMA) als Java-Applet. Ne-ben Register- und Speicherinhalten wird auf Wunsch ein Ablaufprotokoll darge-stellt; auch eine Disassemblierung der Speicherinhalte ist moglich.

Beobachtung der Zeitablaufe stark erleichtert. Da komplexere Adressierungsartenfehlen, mussen viele Operationen wie z.B. Arrayzugriffe mittels selbstmodifizieren-dem Code realisiert werden.

Der besonders einfache Aufbau der PRIMA erleichtert nicht nur das Verstandnis furdie Studierenden, sondern auch die Simulation. Derzeit verfugen wiruber mehre-re Simulatoren der PRIMA, sowohl als einfache standalone-Applikationen auf derBefehlsebene bis hinunter zu einer Simulation auf Gatterebene. Leider konnte einbereits 1996 realisiertes, stark graphisch orientieres Applet [40] didaktisch nichtuberzeugen. Die in diesem Applet eingesetzten Animationen zur Darstellung dereinzelnen Datentransfers sehen zwar hubsch aus, lenken aber eher vom Verstandnisder Vorgange ab als dieses zu unterstutzen.

Abbildung18 zeigt den in Rahmen dieses Projekt neu entwickelten Simulator, derSimulatorals kleines Java-Applet realisiert ist und ohne weitere Installation benutzt werdenkann. Die graphische Oberflache stellt die Register- und Speicherinhalte des Rech-ners dar; diese konnen alternativ als dezimale oder hexadezimale Werte dargestelltwerden und lassen sich direkt editieren. Neben der Ausfuhrung einzelner oder me-herer Befehle lassen sich auch die einzelnen Taktschritte simulieren, wobei die zu-gehorigen Operationen auf Wunsch im mittleren Textfeld protokolliert werden, umdie Zeitablaufe genau mitzuverfolgen. Als weitere Hilfestellung werden die zuletztzugegriffenen Speicherstellen farblich hervorgehoben, so dass Lese- und Schreib-zugriffe wahrend der Simulation unmittelbar deutlich werden.

Page 39: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

4.2 Uberprufung von Maschinenprogrammen 37

Zusammen mit dem neuen Simulator wurde auch ein einfacher Assembler erstellt,und Assemblerder die Programmentwicklung fur die PRIMA gegenuber der reinen Maschinen-sprache erheblich erleichtert. Da die Studierenden aber auch die Programmierungauf der reinen Maschinensprache kennenlernen sollen, ist noch entschieden, ob undwann dieser den Studierenden zur Verfugung gestellt wird.

4.2 Uberpr ufung von Maschinenprogrammen

Anders als bei Verwendung von hoheren Programmiersprachen mit ihren ausgefeil-Syntaktischeoder semantischeAnalysen . . .

ten Syntaxregeln und Typsystemen ergeben sich auf der Ebene der Maschinen- undAssemblerprogramme kaum Ansatzpunkte fur eine aufwendige Analyse der Pro-gramme. Da Maschinenprogramme letztlich nur ein einfaches Speicherabbild desjeweiligen Rechners sind, ergibt sich vielmehr die Situation, dass praktisch alle deruberhaupt moglichen Kombinationen (bei der PRIMA immerhin 22048) gleichzeitiglegale Programme sind. Eine rein syntaktischeUberprufung ist damit sinnlos. Aufder anderen Seite ist eine semantische Analyse praktisch nicht durchfuhrbar, zumalwegen des eingeschrankten Befehlssatzes der PRIMA fast immer selbstmodifizie-rende Programme notig sind.

Derzeit existiert nur eine einzige Ausnahme, wo aufwendige Algorithmen zur se-mantischen Analyse von Maschinencode eingesetzt werden. Dies ist der sogenann-tenBytecode Verifierals Komponente der Java Virtual Machine, der dazu dient, un-bekannten und potentiell bosartigen Programmcode vor der Ausfuhrung auf Konsi-stenz und Typsicherheit zuuberprufen. Eine ausfuhrliche Diskussion der fur diesenVerifier eingesetzten Techniken findet sich u.a. in [42]. Allerdings verfugt die dieJava Virtual Machineuber einen speziell zum Zweck derUberprufbarkeit entworfe-nen Befehlssatz und setzt eine aufwendige Speicherverwaltung mit diversen saubergetrennten Speicherbereichen voraus. Leider lassen sich die fur die Java VM einge-setzten Techniken deshalb nicht auf beliebige PRIMA-Programmeubertragen undanwenden.

Auch auf der Ebene des Assemblerprogrammierung stellen Syntaxfehler erfah-rungsgemaß keine Hurde fur die Studierenden dar, da die einzigen Fehlermoglich-keiten wie undefinierte Opcodes oder Symbole bereits vom Assembler durch geeig-nete Fehlermeldungen zuruckgewiesen werden.

Deshalb verbleibt wiederum die Simulation als einfachste Losung zurUberprufung und Simulationder Programme. Dazu werden die von den Studierenden entwickelten Programmezusammen mit den notwendigen Eingabedaten in den Simulator geladen. Danachwird das Programm im Simulator ausgefuhrt, bisuber eine geeignete Abbruchbe-dingung das Programmende erkannt wird oder eine vorher festgelegte Maximalan-zahl der Befehleuberschritten wurde. Schließlich werden die vom Programm be-rechneten Werte mit den erwarteten Ergebnissen verglichen. Dies ist moglich, so-fern die Aufgabenstellung ausreichend prazise formuliert ist, z.B. durch expliziteVorgabe der Speicheradressen fur die Eingaben und Ausgaben des Programms.

Angesichts der sehr einfachen Struktur von typischen Demonstrationsrechnern wieder PRIMA lassen sich auf aktuellen PCs leicht einige Millionen simulierter Be-fehle pro Sekunde berechnen. Das oben skizzierte Vorgehen bereitet deshalb keinePerformanceprobleme. Fur eine Reihe vonUbungsaufgaben durfte es sogar moglich

Page 40: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

38 4 Uberprufung von Programmen

1 ; Aufgabe T1.6.2.a:2 ; PRIMA Maschinenprogramm fur die Berechnung der Fakultat n!3 ; mit 0 <= n <= 5 mit Nachschlagen in einer Tabelle.4 ;5 ; Label Mnemonic Adr. Wert. Kommentar6

7 start:8 LD 50 0 9 ; Eingabewert n laden9 1 50 ;

10 ADD 19 2 0 ; Startadresse der Tabelle addieren11 3 19 ;12 ST 7 4 72 ; Index abspeichern (mitten im13 5 7 ; Programm: siehe nachsten Befehl)14 LD 0 6 9 ; Resultatwert laden (Adresse wurde15 7 0 ; vom vorigen Befehl geschrieben!)16 ST 51 8 72 ; Resultatwert n! abspeichern17 9 51 ;18

19 end:20 JMP end 10 128 ; Endlosschleife als Programmende21 11 10 ;22

23 table:24 19 20 ; Startadresse der Tabelle25 20 1 ; 0!26 21 1 ; 1!27 22 2 ; 2!28 23 6 ; 3!29 24 24 ; 4!30 25 120 ; 5!31

32 inout:33 50 4 ; Eingabe, hier n=4 (0..5)34 51 0 ; Resultat n!

Abbildung 19: Maschinenprogramm fur die PRIMA mit Lookup-Tabelle als Losungfur Aufgabe T1.6.2a. Erlauterung im Text.

sein, die Simulation fur alle moglichen Eingabedaten durchzufuhren und damit ei-ne vollstandigeUberprufung der Programme zu erreichen. Falls die Anzahl dermoglichen Eingaben zu groß sein sollte, wird sich die Simulation auf einen Satzrelevanter Eingabedaten sowie einige zusatzliche zufallig generierte Eingabedatenbeschranken mussen. Dieses Vorgehen lasst sich am besten mit einem Beispiel illu-strieren:

Aufgabe T2-6.2a: Es ist ein Prima-Programm fur die Berechnung derFakultat n! (mit 0 ≤ n≤ 5) zu entwicklen: mit Nachschlagen in einerTabelle.

Page 41: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

4.2 Uberprufung von Maschinenprogrammen 39

1 ; Jython-Skript zur Uberprufung von Aufgabe T1.6.2a2

3 ; PRIMA Simulator erzeugen, zu testendes Programm laden4 ;5 prima = de.mmkh.tams.Prima()6 prima.clearRAM()7 prima.loadRAM( ’t1-6-2a-markus-mustermann.txt’ )8

9 ; Eingaben setzen, Programm ausfuhren, Resultate vergleichen10 ;11 args = [0, 1, 2, 3, 4, 5]12 expected = [1, 1, 2, 6, 24, 120]13 for i in args:14 prima.setRAM( 50, args[i] )15 prima.reset()16 for t in range(0,100):17 prima.cycle()18 if (prima.getRAM(51) != expected[i]):19 message( ’Falsches Ergebnis fur n=’ + str(i) )20 return21 message( ’Programm funktioniert korrekt’ )

Abbildung 20: Skript zur automatischenUberprufung eines eingeschickten Pro-gramms durch Simulation und Wertevergleich mit der Musterlosung. Erlauterungim Text.

Der Schlussel zur Losung dieser Aufgabe liegt in der Umsetzung der notwendigenindizierten Adressierung durch selbstmodifizierenden Code: das Programm mussdie korrekte Adresse zum Zugriff auf das benotigte Element der Tabelle berech-nen und diese Adresse dann in einem Ladebefehl eintragen. Da die Funktionsta-belle insgesamt nur 6 Werte umfasst (0!=1, 1!=1, 2!=2, 3!=6, 4!=24, 5!=120) istdas zugehorige Programm sehr einfach zu erstellen. Eine mogliche Losung ist inAbbildung19 dargestellt. Das Programm besteht dabei nur auf sechs Befehlen undeinigen Bytes fur die geeignet initialisierten Datenbereiche.

Das Grundgerust eines Skriptes zur automatischenUberprufung ist in Abbildung20skizziert; die vollstandige Version verfugt uber ausfuhrlichere Meldungen. Eini-ge Erweiterungen zurUberprufung von aufwendigeren Programmen liegen auf derHand: insbesondere ist es wunschenswert, die Anzahl der zu simulierenden Zyklennicht fest zu kodieren, sondern abhangig von den Eingabewerten einzustellen oderdas Programmende zu erkennen.

Zusatzlich ist es moglich, strukturelle Merkmale des Programms zuuberprufen,etwa ob bestimmte Befehle wie Multiplikation, Shifts, oder bedingte Sprungeuber-haupt vorkommen. Wegen der selbstmodifizierenden Programme ist diese Art derUberprufung bei der PRIMA allerdings nur eingeschrankt moglich, da die ge-suchten Befehle oder Adressen eventuell erst wahrend des Programmablaufs ge-schrieben werden. Bei anderen Rechnerarchitekturen, zum Beispiel bei RISC-Architekturen mit ihrem sauberen Befehlssatz und derublichen vollstandigen Tren-

Page 42: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

40 4 Uberprufung von Programmen

nung des Speichers in separate Bereiche fur Programmcode und Daten durften dieseTests dagegen eine willkommene Unterstutzung derUberprufung bieten.

4.3 Hilfestellungen

Auch im Kontext der Rechnerarchitektur ergibt sich die wichtigste Hilfestellung furdie Lernenden wieder durch die Verfugbarkeit einerinteraktiven Umgebung: Im Si-mulator konnen die Programme schrittweise entwickelt und sofort getestet werden.Dabei sind viele typischen Fehler unmittelbar zu erkennen und lassen sich leichtkorrigieren. Dies gilt insbesondere fur Fluchtigkeitsfehler, nicht zuletzt Schreibfeh-ler in Befehlen und Adressen, oder die haufigen off-by-one Fehler bei Schleifentestsund Arrayzugriffen.

Wie im letzten Abschnitt erlautert wurde, ist die automatische Analyse vonMaschinen- und Assemblerprogrammen praktisch nicht zu leisten. Trotzdem kanndie interaktive Umgebung durch automatische Hilfestellungen erganzt werden, dieauf Plausibilitatstests beruhen. Dabei kommen sowohl statischeUberprufungenanhand des Programmtextes als auch dynamische Tests wahrend der Programm-ausfuhrung in Frage. Die folgende Auszahlung nennt einige Moglichkeiten:

• Uberprufung aller Befehle auf gultiger Opcode und korrekte Speicherausrich-tung; zum Beispiel verwendet die PRIMA ausschließlich 2-Wort Befehle, dieper Konvention auf geraden Adressen liegen sollten.

• Uberprufung der Gultigkeit der Zieladressen bei Sprungbefehlen; bei Assem-blerprogrammen zum Beispiel nur auf Adressen, die auch als Sprungmarkendefiniert sind.

• Vorgabe von bestimmten Adressbereichen fur Programmcode und (evtl. meh-rere separate) Datenbereiche. Erkennen und Abfangen von Lese- und Schreib-zugriffen auf Speicherstellen außerhalb dieser Adressbereiche.

• Erkennen moglicher Probleme durchUberschreiben von Programmcodewahrend der Programmausfuhrung. Auch fur selbstmodifizierende Program-me kannuberpruft werden, ob nur die Adressen oder auch Befehle geschrie-ben werden.

• Uberprufung, ob alle Eingabedaten gelesen werden und als Ausgabewerte ge-schrieben werden.

• Test auf Plausibilitat aufeinanderfolgender Befehle, wobei diese Abhangig-keiten fur die jeweilige Zielarchitektur vorberechnet werden konnen. Auf die-se Weise lassen sich unter anderem sinnlose Befehlsfolgen erkennen, etwa einbedingter Sprung direkt hinter einem Befehl, der sich konstant auf die jewei-lige Sprungbedingung auswirkt (bei der PRIMA etwa LD1, BZ).

Page 43: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

41

5 Zusammenfassung

Das interaktive Skript verfolgt den Ansatz, erlauternden Text nicht nur mit stati-schen Medien aufzubereiten sondern direkt mit interaktiv ausfuhrbarem Programm-code zu kombinieren. Dabei konnen nicht nur die Parameter sondern auch die zu-grunde liegenden Funktionen selbst vom Anwender modifiziert und erganzt werden,womit ideale Voraussetzungen fur entdeckendes Lernen gegeben sind.

Als Software-Plattform fur unsere Vorlesungen zur technischen Informatik dientzunachst Matlab. Das Prinzip der interaktiven Skripte lasst sich aber mit jeder Pro-grammierumgebung umsetzen, die das interaktive Ausfuhren von Programmtextenoder Skripten erlaubt. Unser Konzept zur Einbettung von kleinen Java-Applets ininteraktive HTML-Seiten ist hier eine interessante Alternative, da alle Funktionender bekannten Web-Browser zur Verfugung stehen und die Anwender in ihrer ge-wohnten Umgebung arbeiten. Mit dem in Abschnitt2.3 beschriebenen Konverterkonnten bisher drei vollstandige Vorlesungen mitsamt aller Materialien nach HTMLumgesetzt werden.

Die Integration vonUbungsaufgaben in die interaktiven Skripte erlaubt nicht nureine Kontrolle des Lernfortschritts, sondern ist eine zentrale Saule des didaktischenKonzepts. Inhalt und Ziel des vorliegenden Projekts ist die Realisierung von Ver-fahren, um die Studierenden beim Bearbeiten derUbungsaufgaben zu unterstutzenund gleichzeitig dieUbungsgruppenleiter von Routineaufgaben zu entlasten.

In diesem Report wurden Verfahren und Algorithmen fur die im ersten Bericht[11] aufgestellte Klasse der Formel-Aufgaben vorgestellt: Neben den Verfahren zurUberprufung der Losungen auf Korrektheit wurden jeweils auch Ansatze zu Hil-festellungen vorgestellt, um die Studierenden gezielt auf falsche Losungsansatzeoder Fluchtigkeitsfehler hinzuweisen, ohne jedoch die Losungen selbst vorwegzu-nehmen.

Da die im Projekt entwickelten Algorithmen und Verfahren eine Vielzahl vonmoglichenUbungsaufgaben abdecken und die Software ausreichend flexibel aus-gelegt ist, werden sich die Ergebnisse auch zur Unterstutzung vonUbungen undPraktika in anderen Fachgebieten einsetzen lassen.

Page 44: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

42 5 Zusammenfassung

Page 45: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

LITERATUR 43

Literatur

[1] R. E. Bryant,Graph-Based Algorithms for Boolean Function Manipu-lation, IEEE Transactions on Computers, C-35(8):677–691, 1986

[2] R. E. Bryant, D. R. O’Hallaron,Computer Systems, A Programmer’sPerspective, Prentice Hall, 2003, ISBN 0-13-034074-X

[3] Fachbereich Informatik der Universitat Hamburg,Studienfuhrer Infor-matik 2002/2003, www.informatik.uni-hamburg.de/

[4] K. v. d. Heide,Vorlesung Technische Informatik 1, Universitat Ham-burg, FB Informatik, WS2002,tams-www.informatik.uni-hamburg.de/lehre/ws2002/t1Vor/

[5] K. v. d. Heide,Vorlesung Technische Informatik 2, Universitat Ham-burg, FB Informatik, SS2003,tams-www.informatik.uni-hamburg.de/lehre/ss2003/vorlesungen/T2/

[6] K. v. d. Heide, M. Grove,Ubungsaufgaben und Musterlosungen zurVorlesung Technische Informatik, Universitat Hamburg, FB Informa-tik, SS2003,tams-www.informatik.uni-hamburg.de/onlineDoc/

[7] K. v. d. Heide, M. Grove, N. Hendrich, B. Wolfinger,Praktikum Tech-nische Informatik 1-4, Universitat Hamburg, FB Informatik, tams-www.informatik.uni-hamburg.de/onlineDoc/

[8] N. Hendrich,Hades Tutorial, tams-www.informatik.uni-hamburg.de/applets/hades/archive/tutorial.pdf

[9] N. Hendrich,A Java-based framework for simulation and teaching,Proc. 3rd European Workshop on Microelectronics Education,EWME-2000, 285–288, Aix en Provence, 2000

[10] N. Hendrich,Automatic checking of students’ designs using built-inselftest methods, Proc. 3rd European Workshop on MicroelectronicsEducation, EWME-2002, Baiona, 2002

[11] N. Hendrich, K. v.d.Heide,AutomatischeUberprufung und Hilfestel-lung zu Vorlesungs-begleitendenUbungsaufgaben, Projektbericht,Multimedia-Kontor Hamburg, 2003

[12] N. Hendrich, K. v.d.Heide,AutomatischeUberprufung und Hilfestel-lung zu Vorlesungs-begleitendenUbungsaufgaben, Projektbericht,Multimedia-Kontor Hamburg, 2004

[13] M. Mayer, Konzeption und Umsetzung eines Java-Applets zur Logik-minimierung mit KV-Diagrammen, Studienarbeit, Fachbereich Infor-matik, 1998

[14] J. L. Hennessy, D. A. Patterson,Computer organization and design: thehardware/software interface, Morgan Kaufmann, 1998, ISBN 1-558-60491-X

Page 46: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

44 LITERATUR

[15] J. Hugunin,Python and Java — The Best of Both Worlds, Proc. 6thInternation Python Conference, San Jose, 1997,

[16] D. Jansen (Hrsg.),Handbuch der Electronic Design AutomationHan-ser, 2001 ISBN 3-446-21288-4

[17] Jython Environment for Students, Georgia Institute of Technology,2002 http://coweb.cc.gatech.edu/cs1315/814

[18] Jython project homepage, www.jython.org

[19] J.W. Eaton and others,GNU Octave Project, www.octave.org

[20] The MathWorks, Inc.,Matlab Version 5 User’s Guide, 1997ISBN 0-13-272550-9

[21] The MathWorks, Inc.,Matlab Version 6 User’s Guide, 2002

[22] W. Schiffmann, R. Schmitz,Technische Informatik 1, Springer Verlag,2001, ISBN 3-540-42170-X

[23] W. Schiffmann, R. Schmitz,Technische Informatik 2, Springer Verlag,1999, ISBN 3-540-

[24] W. Schiffmann, R. Schmitz,Ubungsbuch zur Technischen Informatik 1und 2(2. Auflage), Springer Verlag, 2001, ISBN 3-540-42171-8

[25] R. W. Schmidt,Java Network Launching Protocol & API Specification,JSR-56, Sun Microsystems, Inc., 2001,

[26] R. Schulmeister,Grundlagen hypermedialer Lernsysteme: Theorie –Didaktik – Design, Oldenbourg, 1997, ISBN 3-486-24419-1

[27] A. S. Tanenbaum,Structured Computer Organization, 4th. Edition,Prentice Hall, 1999 ISBN 0-13-020435-8

[28] imc information multimedia communication AG,Clix 4 CampusLern-plattform, http://www.im-c.de/homepage/clixcampus.htm

[29] World wide web consortium,Extensible Markup Language (XML),http://www.w3.org/XML/

[30] P. Hubwieser,Didaktik der Informatik, Springer 2000, ISBN 3-540-43510-7

[31] H. Wojtkowiak, Test und Testbarkeit digitaler Schaltungen, Teubner1988, ISBN 3-519-02263-X

[32] N. Freed, N. Borenstein,Multipurpose Internet Mail Extensions (MI-ME), Part One: Format of Internet Message Bodies, Network WorkingGroup, RFC 2045, www.ietf.org/rfc/rfc2045.txt

[33] D. Raggett, A. Le Hors, I. Jacobs, Eds.World-wide web consortium,HTML 4.01 Specification, W3C Recommendation 24 December 1999,http://www.w3.org/TR/html401

Page 47: Das interaktive Skript - tams.informatik.uni-hamburg.de · • HTML-Browser mit Applet-Schnittstelle zu Matlab. Texte und passive Ele- Texte und passive Ele- mente wie Graphiken sind

LITERATUR 45

[34] S. Emmerson, Java Specification Requests,JSR 108: Units Specificati-on, http://www.jcp.org/en/jsr/detail?id=108, http://jade.dautelle.com

[35] A. Ruge,Ein HTML-Browser fur interaktive Lehrbucher, Diplomar-beit, Fachbereich Informatik, Universitat Hamburg, 2004

[36] K. Schneider,Verificatin of reactive systems: formal methods and al-gorithms, Springer, 2004

[37] B. Steffen, G. Levi (eds.),Verification, Model Checking, and AbstractInterpretation, Proc. VMCAI 2004, LNCS 2937, Springer 2004, ISBN3-540-20803-8

[38] W. Menzel,INCOM – Inputkorrektur durch Constraints und Markups,E-Learning Consortium Hamburg Projekt, Fachbereich Informatik,Universitat Hamburg, 2003

[39] M. Sommer,Inside CPU, E-Learning Consortium Hamburg Projekt,Hamburger Universitat fur Wirtschaft und Politik, 1997

[40] Y. Nahapetian,Simulation eines von-Neumann-Rechners in der Pro-grammiersprache Java, Studienarbeit, Fachbereich Informatik, Uni-versitat Hamburg, 1996

[41] Lattice Semiconductor Corp.,GAL 16V8 datasheet, Hillsboro, Oregon,2004

[42] T. Lindholm, F. Yellin,Java Virtual Machine Specification, 2nd Editi-on, Addison-Wesley, 1999

[43] C. Shannon,The synthesis of two-terminal switching circuits, BellSyst.Techn.J.28, 59-98 (1949)

[44] I. Wegener,The Complexity of Boolean Functions, Wiley-Teubner,1987, http://ls2-www.cs.uni-dortmund.de/monographs/bluebook

[45] Arash Vahidi,JDD, a Java Binary Decision Diagram Library,http://javaddlib.sourceforge.net/jdd/intro.html