53 research outputs found

    Implementierung eines generischen Interpreters für Termersetzungssysteme höherer Ordnung auf Basis einer strukturellen operationalen Semantik

    Get PDF
    Wir haben ein Softwaresystem entwickelt, das in der Lage ist, Beschreibungen von Termersetzungssystemen höherer Ordnung, deren Reduktionsregeln auf einer strukturellen operationalen Semantik basieren, einzulesen und zu interpretieren. Das System ist dabei fähig, Reduktionskontexte für die Redexsuche zu benutzen, die entweder vom Benutzer definiert werden können oder automatisch anhand der strikten Positionen berechnet werden. Außerdem dürfen Kontexte und spezielle Definitionen für Term-Mengen, die wir Domains nennen, in den Reduktionsregeln verwendet werden. Mit dem resultierenden Reduktionssystem-Format können wir somit nicht nur den „lazy“ Lambda-Kalkül, den Call-by-Value Lambda-Kalkül und verwandte, um Konstruktoren und Fallunterscheidungen erweiterte Kalküle, wie die in Kapitel 4 vorgestellten Kernsprachen KFP und PCF, darstellen, sondern auch den (in Abschnitt 4.3 vorgestellten) Call-by-Need Lambda-Kalkül, welcher sich durch die Verwendung von Kontexten innerhalb der Regeln deutlich von den anderen Kalkülen abhebt. Allerdings hält sich der Call-by-Need Lambda-Kalkül damit nicht an das in Kapitel 5 vorgestellte GDSOS-Format, das u.a. sicherstellt, dass Bisimulation eine Kongruenz ist. Wir haben dabei in Abschnitt 5.3.3 bewiesen, dass sich ein GDSOS-Reduktionssystem in ein äquivalentes strukturiertes Auswertungssystem nach Howe übersetzen lässt. Unser System ist in der Lage, die GDSOS-Bedingungen zu prüfen und gibt eine Warnung aus, falls eine der nötigen Bedingungen nicht erfüllt ist (wobei aus dieser auch gleich der Grund des Verstoßes hervorgeht). Wie wir gesehen haben, ist unser System nicht nur befähigt, die einzelnen Reduktionsschritte für kleinere Bespiele ordnungsgemäß auszuführen, sondern es ist durchaus in der Lage, auch aufwendigere KFP-Ausdrücke, wie in unserem Quicksort- Beispiel, auszuwerten

    Definierbare Funktionen im Lambda-Kalkül mit Typen

    Get PDF

    Analysing equivalence of expressions in a non-strict functional programming language

    Get PDF
    Gegenstand der Arbeit ist ein Gleichheitskalkül für den Kern einer nicht-strikten funktionalen Programmiersprache. Funktionale Programmiersprachen unterstützen bestens die Prinzipien Abstraktion, Einkapselung, Hierarchiesierung und Modularisierung, die gemeinhin als Grundelemente des Software-Engineering betrachtet werden. Darüber hinaus bieten funktionale Programmiersprachen aufgrund ihrer Entwicklung aus dem Lambda-Kalkül eine große Nähe zu mathematischen Modellen. Daher besitzen sie im Bereich der Programmverifikation ausgeprägte Vorteile gegenüber imperativen oder objekt-orientierten Programmiersprachen. In der Arbeit wird nun ein Gleichheitsbegriff für Ausdrücke in funktionalen Programmiersprachen entwickelt und dessen Praktikabilität durch die Implementierung eines Beweisers untermauert. Dieser Gleichheitsbegriff ist die kontextuelle Gleichheit, die Ausdrücke aufgrund ihres Terminierungsverhaltens als Unterprogramme in allen möglichen Kontexten einordnet. Kontextuelle Gleichheit wird in Kapitel 2 vorgestellt, nachdem der klassische und der sogenannte "lazy" Lambda-Kalkül eingeführt wurden. Kapitel 3 enthält einen Überblick über die funktionale Programmierung, da auch die Implementierung des o.g. Beweisers in einer funktionalen Programmiersprache, nämlich Haskell, durchgeführt wird. In Kapitel 4 wird die funktionale Kernsprache, die Gegenstand der Untersuchung sein wird, beschrieben. Sie enthält alle wesentlichen Elemente wie z.B. Funktionsdefinition und -anwendung sowie Datentypen. Im selben Kapitel wird auch der Gleichheitsbegriff für diese Kernsprache definiert. Kapitel 5 schließlich entwickelt auf Basis der zuvor erfolgten Definitionen einen Kalkül für den Gleichheitsbeweis. Außerdem wird in diesem Kapitel auch die Umsetzung dieses Gleichheitskalküls präsentiert. Aus der Dissertation von Marko Schütz werden hierbei Erkenntnisse über die Kontextanalyse verwendet, um erfüllende Belegungen von freien Variablen zu berechnen. Die Arbeit schließt mit Beispielanalysen und Meßwerten sowie einer Diskussion der Ergebnisse und möglicher Erweiterungen

    Informatik-affine Themen in der Didaktik der Mathematik

    Get PDF
    Ähnlich wie es W. Dörfler in seinen „Impressionen aus (fast) vier Jahrzehnten Mathematikdidaktik“ in [Dörfler, 2013] beschreibt, ist auch dies ein durch persönliche Erfahrungen und Erinnerungen (an meine knapp 50-jährige Tätigkeit in Wirtschaft und Hochschule) gefärbter Essay – und alle daraus resultierenden Dörflerschen „caveats“ treffen sinngemäß auch auf diesen Beitrag zu

    Grußwort

    Get PDF
    entfällt &nbsp

    Tagungsband zum 21. Kolloquium Programmiersprachen und Grundlagen der Programmierung

    Get PDF
    Das 21. Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS 2021) setzt eine traditionelle Reihe von Arbeitstagungen fort, die 1980 von den Forschungsgruppen der Professoren Friedrich L. Bauer (TU München), Klaus Indermark (RWTH Aachen) und Hans Langmaack(CAU Kiel) ins Leben gerufen wurde.Die Veranstaltung ist ein offenes Forum für alle interessierten deutschsprachigen Wissenschaftlerinnen und Wissenschaftler zum zwanglosen Austausch neuer Ideen und Ergebnisse aus den Forschungsbereichen Entwurf und Implementierung von Programmiersprachen sowie Grundlagen und Methodik des Programmierens. Dieser Tagungsband enthält die wissenschaftlichen Beiträge,die bei dem 21. Kolloquium dieser Tagungsreihe präsentiert wurden, welches vom 27. bis 29. September 2021 in Kiel stattfand und von der Arbeitsgruppe Programmiersprachen und Übersetzerkonstruktion der Christian-Albrechts-Universität zu Kiel organisiert wurde

    Vorgehensmodelle als Basis der Gestaltung durchgaengiger CAD-Systeme

    Get PDF
    Für die Gestaltung einer durchgängigen Unterstützung des Entwurfsprozesses stehen gegenwärtig deskriptive Modelle der Entwurfsobjekte im Mittelpunkt der Untersuchungen. Diese Modelle gestatten das Ableiten von Repräsentationen sowie eine Weitergabe von Entwurfsergebnissen. Pragmatische Gliederungen des Entwurfsprozesses unterteilen diesen nach organisatorischen und betriebswirtschaftlichen Aspekten (Planbarkeit und Abrechenbarkeit) in eine Sequenz von Entwurfsphasen (HOAI). Diese Gliederungen berücksichtigen nicht das WIE des eigentlichen modellkreierenden Schaffensprozesses. Für ein echtes CADesign bildet dessen Klärung jedoch die erforderliche Voraussetzung. Im Beitrag wird dazu von einem vereinheitlichten Set generischer Entwurfsaktionen ausgegangen. Auch dann, wenn die verschiedenen Entwurfsphasen und die Entwurfshandlungen der einzelnen Ingenieurgewerke mit spezifische Entwurfsmodellen verbunden werden, besteht damit eine Grundlage zur methodischen Fundierung entsprechender CAD-Tools. Die methodische Verfahrensweise ähnelt der, die in Form von Styleguides zur Gestaltung von 'Graphical User Interfaces' vorgeschlagen wird. Wesentliche praktische Benutzungen solche Basisaktivitäten ergeben sich für: die Systematisierung computergestützter Entwurfshandlungen, insbesondere durch Erweiterung des deskriptiven um ein operationales Modell sowie deren erweiterte Interpretierbarkeit die Erzeugung wissensbasierter Werkzeuge zur automatischen Modellgenerierung/-konfiguration die Implementation von leistungsfähigen UNDO- bzw. TMS-Mechanismen

    Matlab

    Get PDF

    Untersuchungen zu den Verbvalenzen im Vedischen

    Full text link
    corecore