Design and Implementation of Typestate-oriented Programming Language
Návrh a implementace programovacího jazyka zaměřeného na Typestate
Authors
Supervisors
Reviewers
Editors
Other contributors
Journal Title
Journal ISSN
Volume Title
Publisher
České vysoké učení technické v Praze
Czech Technical University in Prague
Czech Technical University in Prague
Date of defense
2025-06-19
Abstract
V objektově orientovaném modelu určuje typestate množinu operací povolených nad instancí objektu v daném stavu. Takové operace jsou obvykle vyjádřené pomocí metod.
Zavádíme nové softwarové návrhové paradigma, ve kterém je typestate objektu definován pomocí atomických klauzulí vyjadřujících doménově specifické vlastnosti. Každá klauzule buď platí, neplatí, nebo je neznámá. Metody jsou pak rozděleny do odlišných implementací, z nichž každá vyžaduje ke spuštění jiné stavy klauzulí.
Předkládáme povrchový jazyk ztělesňující toto paradigma a implementujeme pro něj type checker.
Demostrujeme dosažené záruky spolehlivosti v programech a diskutujeme ergonomii modelování dómeny.
In the object-oriented model, typestate determines the set of operations permitted on an instance of an object in a particular state. These operations are typically represented as methods. We introduce a new software design paradigm in which the typestate of an object is defined using atomic clauses that express domain-specific properties. Each clause either holds, does not hold, or is unknown. Methods are then partitioned into distinct implementations, each requiring different clause states to execute. We present a surface language embodying this paradigm and implement a type checker. We also demonstrate the resulting reliability guarantees in programs and discuss the ergonomics of modeling a domain.
In the object-oriented model, typestate determines the set of operations permitted on an instance of an object in a particular state. These operations are typically represented as methods. We introduce a new software design paradigm in which the typestate of an object is defined using atomic clauses that express domain-specific properties. Each clause either holds, does not hold, or is unknown. Methods are then partitioned into distinct implementations, each requiring different clause states to execute. We present a surface language embodying this paradigm and implement a type checker. We also demonstrate the resulting reliability guarantees in programs and discuss the ergonomics of modeling a domain.
Description
Citation
Underlying research data set URL
Permanent link
Rights/License
Vysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem v platném znění.
A university thesis is a work protected by the Copyright Act of the Czech Republic. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one`s own expense. The use of thesis should be in compliance with the Copyright Act.
A university thesis is a work protected by the Copyright Act of the Czech Republic. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one`s own expense. The use of thesis should be in compliance with the Copyright Act.