dc.contributor.advisor | Parízek, Pavel | |
dc.creator | Dort, Vlastimil | |
dc.date.accessioned | 2024-11-28T14:50:44Z | |
dc.date.available | 2024-11-28T14:50:44Z | |
dc.date.issued | 2024 | |
dc.identifier.uri | http://hdl.handle.net/20.500.11956/195221 | |
dc.description.abstract | Populární objektově-orientované programovací jazyky jako Java nebo Scala typicky dovolují měnit objekty přiřazením nových hodnot do jejich datových položek. Zároveň je však běžné psát kód, který k objektům přistupuje pouze pro čtení. Technika Reference mutability (měnitelnost referencí) umožňuje omezit změny objektů tím, že pomocí typů rozlišuje reference na ty, které jsou pouze pro čtení, a ty, které umožňují objekt měnit. Pro jazyk Java byla tato technika již podrobně rozvinuta a existuje implementace ve formě rozšíření pro kompilátor. Scala je programovací jazyk, který se stále rozvíjí a do svého typového systému integruje mnoho pokročilých vlastností, z nichž nejpříznačnější jsou typy závislé na cestě (path-dependent types). Protože komplexnost těchto vlastností vzbuzuje obavy o možnost vzniku porušení typové bezpečnosti (type soundness), existuje formální kalkulus Dependent Object Types (DOT), který formálně dokazuje bezpečnost základních vlastností typového systému jazyka Scala. Tato práce se věnuje možnosti využití vlastností DOT kalkulu pro integraci systému reference mutability. Přinášíme definici kalkulu roDOT, který je založen na variantě DOT kalkulu s proměnlivými objekty, a který reprezentuje měnitelnost reference pomocí speciálního vnořeného typu (type member). Toto kódování umožňuje využít... | cs_CZ |
dc.description.abstract | Mainstream object-oriented programming languages, such as Java or Scala, typically allow objects to be mutated by assigning new values to their fields, but it is also common to write code that only accesses objects in a read-only way. Reference mutability is a tech- nique for controlling mutation by distinguishing read-only and mutable references with types. It has been thoroughly studied in Java, and implemented as compiler extensions. Scala is an evolving programming language which integrates many advanced type system features, most notably path-dependent types. To address questions about soundness, the formal Dependent Object Types (DOT) calculus has been developed, which provides a formal proof of soundness for the core of Scala's type system. In this thesis, we explore the possibility of using DOT's features to integrate reference mutability. We define the roDOT calculus, which is based on a version of DOT with mu- table fields, and encodes the mutability of object references using a special type member. This encoding makes it possible to use path dependent types to refer to mutability of a reference, and use intersection and union types to combine mutabilities and implement viewpoint adaptation, ensuring the transitive property of read-only references. In addi- tion to updating the type soundness... | en_US |
dc.language | English | cs_CZ |
dc.language.iso | en_US | |
dc.publisher | Univerzita Karlova, Matematicko-fyzikální fakulta | cs_CZ |
dc.subject | type systems|dependent types|DOT calculus|reference mutability|purity | en_US |
dc.subject | typové systémy|závislé typy|DOT kalkulus|čisté metody|proměnlivost referencí | cs_CZ |
dc.title | Read-only types and purity for DOT | en_US |
dc.type | dizertační práce | cs_CZ |
dcterms.created | 2024 | |
dcterms.dateAccepted | 2024-09-25 | |
dc.description.department | Department of Distributed and Dependable Systems | en_US |
dc.description.department | Katedra distribuovaných a spolehlivých systémů | cs_CZ |
dc.description.faculty | Matematicko-fyzikální fakulta | cs_CZ |
dc.description.faculty | Faculty of Mathematics and Physics | en_US |
dc.identifier.repId | 177096 | |
dc.title.translated | Typy pouze pro čtení a čisté metody pro DOT kalkulus | cs_CZ |
dc.contributor.referee | Dietl, Werner | |
dc.contributor.referee | Haller, Philipp | |
thesis.degree.name | Ph.D. | |
thesis.degree.level | doktorské | cs_CZ |
thesis.degree.discipline | Computer Science - Software Systems | en_US |
thesis.degree.discipline | Informatika - Softwarové systémy | cs_CZ |
thesis.degree.program | Computer Science - Software Systems | en_US |
thesis.degree.program | Informatika - Softwarové systémy | cs_CZ |
uk.thesis.type | dizertační práce | cs_CZ |
uk.taxonomy.organization-cs | Matematicko-fyzikální fakulta::Katedra distribuovaných a spolehlivých systémů | cs_CZ |
uk.taxonomy.organization-en | Faculty of Mathematics and Physics::Department of Distributed and Dependable Systems | en_US |
uk.faculty-name.cs | Matematicko-fyzikální fakulta | cs_CZ |
uk.faculty-name.en | Faculty of Mathematics and Physics | en_US |
uk.faculty-abbr.cs | MFF | cs_CZ |
uk.degree-discipline.cs | Informatika - Softwarové systémy | cs_CZ |
uk.degree-discipline.en | Computer Science - Software Systems | en_US |
uk.degree-program.cs | Informatika - Softwarové systémy | cs_CZ |
uk.degree-program.en | Computer Science - Software Systems | en_US |
thesis.grade.cs | Prospěl/a | cs_CZ |
thesis.grade.en | Pass | en_US |
uk.abstract.cs | Populární objektově-orientované programovací jazyky jako Java nebo Scala typicky dovolují měnit objekty přiřazením nových hodnot do jejich datových položek. Zároveň je však běžné psát kód, který k objektům přistupuje pouze pro čtení. Technika Reference mutability (měnitelnost referencí) umožňuje omezit změny objektů tím, že pomocí typů rozlišuje reference na ty, které jsou pouze pro čtení, a ty, které umožňují objekt měnit. Pro jazyk Java byla tato technika již podrobně rozvinuta a existuje implementace ve formě rozšíření pro kompilátor. Scala je programovací jazyk, který se stále rozvíjí a do svého typového systému integruje mnoho pokročilých vlastností, z nichž nejpříznačnější jsou typy závislé na cestě (path-dependent types). Protože komplexnost těchto vlastností vzbuzuje obavy o možnost vzniku porušení typové bezpečnosti (type soundness), existuje formální kalkulus Dependent Object Types (DOT), který formálně dokazuje bezpečnost základních vlastností typového systému jazyka Scala. Tato práce se věnuje možnosti využití vlastností DOT kalkulu pro integraci systému reference mutability. Přinášíme definici kalkulu roDOT, který je založen na variantě DOT kalkulu s proměnlivými objekty, a který reprezentuje měnitelnost reference pomocí speciálního vnořeného typu (type member). Toto kódování umožňuje využít... | cs_CZ |
uk.abstract.en | Mainstream object-oriented programming languages, such as Java or Scala, typically allow objects to be mutated by assigning new values to their fields, but it is also common to write code that only accesses objects in a read-only way. Reference mutability is a tech- nique for controlling mutation by distinguishing read-only and mutable references with types. It has been thoroughly studied in Java, and implemented as compiler extensions. Scala is an evolving programming language which integrates many advanced type system features, most notably path-dependent types. To address questions about soundness, the formal Dependent Object Types (DOT) calculus has been developed, which provides a formal proof of soundness for the core of Scala's type system. In this thesis, we explore the possibility of using DOT's features to integrate reference mutability. We define the roDOT calculus, which is based on a version of DOT with mu- table fields, and encodes the mutability of object references using a special type member. This encoding makes it possible to use path dependent types to refer to mutability of a reference, and use intersection and union types to combine mutabilities and implement viewpoint adaptation, ensuring the transitive property of read-only references. In addi- tion to updating the type soundness... | en_US |
uk.file-availability | V | |
uk.grantor | Univerzita Karlova, Matematicko-fyzikální fakulta, Katedra distribuovaných a spolehlivých systémů | cs_CZ |
thesis.grade.code | P | |
uk.publication-place | Praha | cs_CZ |
uk.thesis.defenceStatus | O | |