File Download
  Links for fulltext
     (May Require Subscription)
Supplementary

postgraduate thesis: Iso-type systems : simple dependent type theories for programming

TitleIso-type systems : simple dependent type theories for programming
Authors
Advisors
Issue Date2019
PublisherThe University of Hong Kong (Pokfulam, Hong Kong)
Citation
Yang, Y. [楊彦芃]. (2019). Iso-type systems : simple dependent type theories for programming. (Thesis). University of Hong Kong, Pokfulam, Hong Kong SAR.
AbstractDependent types have been drawing a lot of attention in programming language designs. A key reason is that they allow unifying types and terms that are usually distinct syntactic levels in traditional language designs. Unified syntax brings some interesting advantages over separate syntax, including added expressiveness and less duplication of concepts. However, it is challenging to combine dependent types with common programming features, such as unrestricted general recursion and object-oriented programming (OOP) features including subtype polymorphism and abstract type members. To address these challenges, we propose three novel dependently typed calculi with both simplicity and expressiveness, namely Pure Iso-Type Systems (PITS), the λI≤ calculus and the λIΣ calculus. PITS is a generic language framework that employs unified syntax, supports general recursion and preserves decidable type checking. It is comparable in simplicity to pure type systems (PTS), and is useful to serve as a foundation for functional languages that stand in-between traditional ML-like languages and full-spectrum dependently typed languages. The key to retain decidable type checking in the presence of general recursion is a generalization of iso-recursive types called iso-types. Iso-types replace the implicit conversion rule typically used in dependently typed calculi and make every computation explicit via cast operators. We study three variants of PITS that differ on the reduction strategy employed by the cast operators and prove type-safety and decidability of type checking for all variants. The λI≤ calculus is a variant of PITS with unified subtyping, a novel technique that unifies typing and subtyping and enables the combination of dependent types and subtyping. In λI≤, there is only one judgment that is akin to a typed version of subtyping. Both the typing relation, as well as type well-formedness are just special cases of the unified subtyping relation. λI≤ supports essential features for modeling OOP, such as high-order subtyping, bounded quantification and top types. It can fully subsume System F≤ and enjoys several standard and desirable properties, such as type-safety and transitivity of subtyping. The λIΣ calculus is a variant of λI≤ with strong dependent sums. Strong sums are useful to model Scala-like traits with type members. λIΣ adopts a novel treatment of strong sums called iso-strong sums. The destructors of iso-strong sums are typed using intermediate type-level applications instead of standard direct substitutions. The necessary type-level computation can be done by just call-by-value casts. λIΣ supports impredicativity and enjoys the same desirable properties as λI≤, including type-safety and transitivity.
DegreeDoctor of Philosophy
SubjectFunctional programming languages
Programming languages (Electronic computers)
Dept/ProgramComputer Science
Persistent Identifierhttp://hdl.handle.net/10722/268423

 

DC FieldValueLanguage
dc.contributor.advisorDos Santos Oliveira, BC-
dc.contributor.advisorCheng, CK-
dc.contributor.authorYang, Yanpeng-
dc.contributor.author楊彦芃-
dc.date.accessioned2019-03-21T01:40:21Z-
dc.date.available2019-03-21T01:40:21Z-
dc.date.issued2019-
dc.identifier.citationYang, Y. [楊彦芃]. (2019). Iso-type systems : simple dependent type theories for programming. (Thesis). University of Hong Kong, Pokfulam, Hong Kong SAR.-
dc.identifier.urihttp://hdl.handle.net/10722/268423-
dc.description.abstractDependent types have been drawing a lot of attention in programming language designs. A key reason is that they allow unifying types and terms that are usually distinct syntactic levels in traditional language designs. Unified syntax brings some interesting advantages over separate syntax, including added expressiveness and less duplication of concepts. However, it is challenging to combine dependent types with common programming features, such as unrestricted general recursion and object-oriented programming (OOP) features including subtype polymorphism and abstract type members. To address these challenges, we propose three novel dependently typed calculi with both simplicity and expressiveness, namely Pure Iso-Type Systems (PITS), the λI≤ calculus and the λIΣ calculus. PITS is a generic language framework that employs unified syntax, supports general recursion and preserves decidable type checking. It is comparable in simplicity to pure type systems (PTS), and is useful to serve as a foundation for functional languages that stand in-between traditional ML-like languages and full-spectrum dependently typed languages. The key to retain decidable type checking in the presence of general recursion is a generalization of iso-recursive types called iso-types. Iso-types replace the implicit conversion rule typically used in dependently typed calculi and make every computation explicit via cast operators. We study three variants of PITS that differ on the reduction strategy employed by the cast operators and prove type-safety and decidability of type checking for all variants. The λI≤ calculus is a variant of PITS with unified subtyping, a novel technique that unifies typing and subtyping and enables the combination of dependent types and subtyping. In λI≤, there is only one judgment that is akin to a typed version of subtyping. Both the typing relation, as well as type well-formedness are just special cases of the unified subtyping relation. λI≤ supports essential features for modeling OOP, such as high-order subtyping, bounded quantification and top types. It can fully subsume System F≤ and enjoys several standard and desirable properties, such as type-safety and transitivity of subtyping. The λIΣ calculus is a variant of λI≤ with strong dependent sums. Strong sums are useful to model Scala-like traits with type members. λIΣ adopts a novel treatment of strong sums called iso-strong sums. The destructors of iso-strong sums are typed using intermediate type-level applications instead of standard direct substitutions. The necessary type-level computation can be done by just call-by-value casts. λIΣ supports impredicativity and enjoys the same desirable properties as λI≤, including type-safety and transitivity.-
dc.languageeng-
dc.publisherThe University of Hong Kong (Pokfulam, Hong Kong)-
dc.relation.ispartofHKU Theses Online (HKUTO)-
dc.rightsThe author retains all proprietary rights, (such as patent rights) and the right to use in future works.-
dc.rightsThis work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.-
dc.subject.lcshFunctional programming languages-
dc.subject.lcshProgramming languages (Electronic computers)-
dc.titleIso-type systems : simple dependent type theories for programming-
dc.typePG_Thesis-
dc.description.thesisnameDoctor of Philosophy-
dc.description.thesislevelDoctoral-
dc.description.thesisdisciplineComputer Science-
dc.description.naturepublished_or_final_version-
dc.identifier.doi10.5353/th_991044091308003414-
dc.date.hkucongregation2019-
dc.identifier.mmsid991044091308003414-

Export via OAI-PMH Interface in XML Formats


OR


Export to Other Non-XML Formats