{"title":"Guard Analysis and Safe Erasure Gradual Typing: a Type System for Elixir","authors":"Giuseppe Castagna, Guillaume Duboc","doi":"arxiv-2408.14345","DOIUrl":null,"url":null,"abstract":"We define several techniques to extend gradual typing with semantic\nsubtyping, specifically targeting dynamic languages. Focusing on the Elixir\nprogramming language, we provide the theoretical foundations for its type\nsystem. Our approach demonstrates how to achieve type soundness for gradual\ntyping in existing dynamic languages without modifying their compilation, while\nstill maintaining high precision. This is accomplished through the static\ndetection of \"strong functions\", which leverage runtime checks inserted by the\nprogrammer or performed by the virtual machine, and through a fine-grained type\nanalysis of pattern-matching expressions with guards.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2024-08-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Programming Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2408.14345","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
We define several techniques to extend gradual typing with semantic
subtyping, specifically targeting dynamic languages. Focusing on the Elixir
programming language, we provide the theoretical foundations for its type
system. Our approach demonstrates how to achieve type soundness for gradual
typing in existing dynamic languages without modifying their compilation, while
still maintaining high precision. This is accomplished through the static
detection of "strong functions", which leverage runtime checks inserted by the
programmer or performed by the virtual machine, and through a fine-grained type
analysis of pattern-matching expressions with guards.