TU Berlin > Fakultät IV > ISTI > Übersetzerbau und Programmiersprachen

Home
Aktuelles
MitarbeiterInnen
Lehre
    SS08
    WS07/08
    Alle Semester
    Grundlegendes
    Diplomarbeiten
Forschung
    Kolloquium
    Gastvorträge
    Projekte
    Vorträge
    Publikationen
    Dissertationen
    Bücher
Aktivitäten
Opal
Impressum

[english]

Gastvorträge

Authentication in pervasive and social computation

Dusko Pavlovic
Kestrel Institute
Datum: 22.1.2008
Beschreibung: In computer networks, information flows through a virtual space. In pervasive and social computation, information is also carried through physical space. This completely changes the security landscape.

In computer networks, the problem of authentication arises from the fact that all observations are local: a computer Alice can only observe her own actions, and therefore needs some solid cryptographic assumptions to prove to herself, say, that a computer Bob has indeed sent this message. However, if Alice and Bob are not computers on the Internet, but, say, PDAs in a cafe, then they can use their respective humans to observe each other's actions and in particular to directly authenticate some messages. This is something that computers on the Internet couldn't even dream about.

In this talk, I shall describe a framework for reasoning about authentication in the systems where some of the communication channels are deployed in a physical space.

Multi-Paradigmatic Model-Based Testing

Wolfgang Grieskamp
Microsoft Research
Datum: 29.9.2006
Beschreibung: For half a decade model-based testing has been applied at Microsoft in the internal develop- ment process. Though a success story compared to other formal quality assurance approaches like verification, a break-through of the technology on a broader scale is not yet in sight. What are the obstacles? Some lessons can be learned from the past and will be discussed. An approach to MBT is described which is based on multi-paradigmatic modeling, which gives users the freedom to choose among programmatic and diagrammatic notations, as well as state-based and scenario- based styles, reflecting the different concerns in the process. The diverse model styles can be combined by model composition in order to achieve an integrated and collaborative model-based testing process. The approach is realized in the successor of Microsoft Research's MBT tool Spec Explorer, and has a formal foundation in the framework of action machines.

Program verification and testing at Microsoft Research

Nikolai Tillmann
Microsoft Research
Datum: 6.1.2006
Beschreibung: This talk gives an overview of the ongoing research activities at Microsoft Research devoted to improving software development productivity using formal methods. In particular, I will introduce three methodologies which support the software development process in different stages. Each methodology is supported by tools: (1) Spec Explorer: system modeling and testing with model programs. (2) MUTT: better unit testing using symbolic execution to analyze existing implementations. (3) Spec# programming system: program verification by extending C# with pre/postconditions and invariants.

Tree Transducers - From Practice to Theory to Practice

Dr.-Ing. Armin Kühnemann
Institut für Theoretische Informatik Technische Universität Dresden
Datum: 10.2.2004
Beschreibung: Ausgehend von vier praktischen Problemen, (i) der Definition einer formalen Semantik für imperative Programmiersprachen, (ii) der Spezifikation von XML-Transformationen, (iii) der Verbesserung der Effizienz funktionaler Programme, und (iv) der Verbesserung des automatischen Beweisbarkeit von Programmeigenschaften, motivieren wir die Theorie der Tree Transducer. Wir wählen zwei gegenläufige theoretische Resultate für Tree Transducer, die Komposition und die Dekomposition, aus und zeigen, daß sich diese auch in der Praxis anwenden lassen. Insbesondere demonstrieren wir, wie die Komposition und deren Weiterentwicklung Akkumulation die Effizienz von Programmen verbessern kann, und wie die Deakkumulation, eine Weiterentwicklung der Dekomposition, die automatische Verifizierbarkeit verbessern kann.

Drei Dimensionen der Array-Optimierung in SAC

 
Dr. rer. nat. Clemens Grelck
Institut für Softwaretechnik und Programmiersprachen der Universität zu Lübeck
Datum: 20.1.2004
Beschreibung: SAC (Single Assignment C) ist eine rein-funktionale Arraysprache mit der Zielsetzung, Programmspezifikationen auf einem hohen Abstraktionsniveau mit einem hochperformanten Laufzeitverhalten zu verbinden. Der klassischen, von Maschinen-orientierten Progrmmiersprachen geprägten Sichtweise von Arrays als direkte Abbildungen in den Speicher mit lediglich rudimentären Indizierungsmöglichkeiten stellt SAC multidimensionale Arrays als abstrakte Datenstrukturen mit gewissen algebraischen Eigenschaften gegenüber. An die Stelle unübersichtlicher Schachtelungen von Schleifen zur Lösung eines individuellen Problems tritt das Prinzip der Komposition. Anwendungsprogramme entstehen durch stufenweise Komposition von einfachen und Problem-unspezifischen Array-Operationen zu immer komplexeren und immer Problem-spezifischeren Operationen. Dieses Prinzip führt nicht nur zu sehr knappen und abstrakten Programmspezifikationen, sondern erlaubt auch ein hohes Maß an Code-Wiederverwendung auf den verschiedenen Abstraktionsstufen.
Leider läuft das Programmierkonzept der Komposition von Array-Operationen dem zweiten Ziel von SAC, dem effizienten Laufzeitverhalten kompilierter Programme, zuwider. Die direkte Übersetzung führt zwangsläufig zu ausführbarem Code, der zur Laufzeit eine sehr große Anzahl temporärer oder intermediärer Datenstrukturen erzeugt. Diese führen zu erheblichem organisatorischem Mehraufwand für Speicherverwaltung und Schleifenausführung, zu einer geringen Datenlokalität und insgesamt zu einem mehr als unbefriedigenden Laufzeitverhalten.
Im Anschluss an eine kurze Einführung in die Prinzipien der Programmiersprache SAC identifizieren wir in dem Vortrag drei verschiedene Arten der Komposition von Array-Operationen und untersuchen jeweils die dadurch entstehenden Probleme und Herausforderungen für eine Übersetzung in effizienten Code. Für jede der drei Achsen des Problemfeldes wird eine konkrete Optimierungstechnik vorgestellt. Ihre aggregierte Wirkung wird an Hand einer Fallstudie untersucht.

Fehlersuche beim Debuggen nebenläufiger Programme

Dr. Frank Huch
Institut für Informatik und Praktische Mathematik Christian-Albrechts-Universität zu Kiel
Datum: 11.11.2003
Beschreibung: Nebenläufige Systeme können neue, bei sequentiellen Systemen nicht auftretende Fehler enthalten, wie z.B. Deadlocks, Lifelocks oder die Nichteinhaltung von wechselseitigem Ausschluss. Im Gegensatz zu klassischen Fehlern sequentieller Programme, hängen diese Fehler vom Prozess-Scheduling ab und treten möglicherweise nur in bestimmten Systemläufen auf.
Zum Finden von Fehlern werden in der Regel Debugger verwendet, welche den Programmablauf visualisieren und so ein besseres Verständnis der Fehlersituation ermöglichen sollen. Wir haben einen Debugger für Concurrent Haskell (eine nebenläufige Erweiterung der lazy- funktionalen Programmiersprache Haskell ) entwickelt. Dieser ermöglicht es, nebenläufige Haskell Programme auszuführen und manuell unterschiedliche Prozess-Scheduls auf Fehler zu überprüfen.
Ein Nachteil dieses (auch bei den meisten anderen nebenläufigen Sprachen verwendeten) Ansatzes ist, dass sich ein System beispielsweise kurz vor einem Deadlock befinden kann, der Benutzer aber ein falsches Scheduling wählt und so den Programmfehler nicht findet. Als Lösung für dieses Problem soll der Debugger (alle) möglichen Schedules simulieren und im Fehlerfall den Benutzer in den Fehler leiten. Da nicht nur Deadlocks mögliche Fehler sind, soll die Linearzeit Logik (LTL) zur Spezifikation allgemeiner Fehlerzustände verwendet werden.
Im Vortrag präsentieren wir die prototypische Implementierung des Debuggers, welche ohne eine Veränderung des Laufzeitsystems von Concurrent Haskell vorgenommen werden konnte.

Selektor-erzeugte Modelle verallgemeinerter logischer Programme

   
Sibylle Schwarz
Institut für Informatik der Universität Leipzig
Datum: 28.1.2003
Beschreibung: Logische Programme sind gut geeignet zur Repräsentation von Fach- und Alltagswissen in Fakten- und Regelform. Im Vortrag wird eine Klasse modelltheoretischer Semantiken für verallgemeinerte logische Programme vorgestellt. Bei der Untersuchung einzelner Vertreter wird klar, daß sich viele prominente Semantiken (wie zum Beispiel die inflationäre Fixpunkt- und die stabile Semantik) als Spezialfälle davon darstellen lassen.

DNA-Computing - Rechnen mit Molekülen

 
Dr.-Ing. Monika Sturm
Technische Universität Dresden, Institut für Theoretische Informatik
Datum: 16.7.2002
Beschreibung: In den letzten Jahren wurden in der Informatik verschiedene Ideen zur Entwicklung unkonventioneller Rechenmodelle verfolgt und realisiert. Alternativ zu klassischen Modellen basieren einige dieser Entwicklungen auf der Abstraktion biochemischer Prozesse. DNA-Computing stellt in diesem Zusammenhang eine spezielle Form für das Rechnen mit Molekülen dar. DNA dient dabei als Datenträger und die Rechenoperationen werden durch geeignete molekularbiologische und biochemische Prozesse realisiert.
Ziel der Arbeiten an der TU Dresden ist die Entwicklung eines Modells für einen universellen DNA-Computer und dessen Implementierung im molekularbiologischen Labor. Algorithmen, die konstruiert werden, nutzen eine massive Datenparallelität, die es ermöglicht, mit DNA-Computern Rechengeschwindigkeiten zu erreichen, die einen Vergleich zu bekannter elektronischer Rechentechnik herausfordern. Der Vortrag thematisiert zunächst die Entwicklung des interdisziplinären Forschungsgebietes und stellt drei wichtige Aspekte in den Mittelpunkt. Die Vorstellung experimenteller Arbeiten soll zeigen, welche mathematischen Problemstellungen für DNA-Computing charakteristisch sind und welche Ergebnisse bisher erreicht wurden. Ein weiterer Aspekt beschäftigt sich mit der Fragestellung, wie ein theoretisches Modell aufgebaut sein könnte, welches DNA-Computing formal beschreibt, notwendige molekularbiologische Operationen umfaßt und laborpraktisch realisierbar ist. In einem letzten Aspekt soll betrachtet werden, wie ein funktional implementiertes Tool zur Konstruktion von DNA-Algorithmen und ein probabilistisches Simulationsmodell zur Vorbereitung von Experimenten eingesetzt werden.

Verification Diagrams: Graph+Logic+Automata

 
Zohar Manna
Stanford University
Datum: 9.4.2002
Beschreibung: Verification Diagrams combine deductive ("theorem-proving") and algorithmic ("model-checking") verification to establish general temporal-logic properties of infinite-state reactive systems. The diagram serves as an abstraction of the system, while its underlying automaton represents the desired temporal behavior. We present two approaches: the use of w-automata (exponential) and alternating automata (linear).

Typisierung in Assemblersprachen mit Explizitem Forwarding

Lennart Beringer
University of Edinburgh, UK
Datum: 18.12.2001
Beschreibung: Parallele Ausführung von Instruktionen und Result forwarding sind verbreitete Implementierungstechniken für moderne Prozessoren. In asynchronen Architekturen mit Operandenschlangen führt die gleichzeitige Benutzung beider Konzepte zu Komplikationen wie Deadlock oder Nichtdeterminismus. Um solche Interaktionen besser zu analysieren, führe ich eine Assemblersprache ALEF ein, in der beide Aspekte explizit sichtbar sind. Verschiedene Ausführungsmodelle können als unterschiedliche operationale Semantiken für diese Sprache aufgefaßt werden, und folglich mit programmiersprachlichen Methoden analysiert werden.
Neben sequentieller Ausführung (instruction set architecture) werden wir parallele Ausführung betrachten, sowie Ausführungen, bei denen die Länge der Operandenschlangen begrenzt sind.
Die für das jeweilige Ausführungsmodell auftretenden charakteristischen Fehlersituationen können in Analogie zum Vorgehen bei der Entwicklung von Programmiersprachen durch Typsysteme charakterisiert werden und so zur Compilezeit eliminiert werden. Typen beschreiben dabei Abstraktionen von Laufzeitkonfigurationen, basierend auf Notation aus Linearer Logik.
Die Komponierbarkeit von Basisblöcken wird durch ein einfaches Unifikationsproblem dargestellt, ähnlich zu verwandten Problemen beim Typisieren von JVM code. Sollte die Zeit ausreichen, werde ich kurz Aspekte der Programmanalyse diskutieren, die bei der Übersetzung mit Zielsprache ALEF auftreten.

Valid HTML 4.01 Transitional Valid CSS!