Skip to Main content Skip to Navigation

Representing and computing with types in dynamically typed languages

Abstract : This thesis presents code generation techniques related to run-time type checking of heterogeneous but regular sequences. We generalize traditional regular expressions to accommodate surface syntax, internal representation, computation, optimization, and serialization (code generation) of rational type expressions. We explore traditional s-expression based representation contrasted with Binary Decision Diagrams which have been enhanced to represent Boolean operations in a type lattice supporting subtyping. We introduce the Maximal Disjoint Type Decomposition, prove the existence and uniqueness of a solution, and further explore several alternative algorithms for calculating it. The Maximal Disjoint Type Decomposition is used to generate a deterministic finite automaton representing a rational type expression, after which compile-time code is generated which will perform run-time type membership checks. Such code generation risks dealing with redundant type checks. We further investigate these potential problems and again use the theory of Binary Decision Diagrams to eliminate these redundant checks to produce optimized type checking code. The techniques and algorithms introduced and discussed in this thesis explore representations and computations dealing with type based computations in dynamic programming languages.
Complete list of metadatas
Contributor : Abes Star :  Contact
Submitted on : Sunday, November 22, 2020 - 1:08:03 AM
Last modification on : Monday, November 23, 2020 - 3:11:19 AM


Version validated by the jury (STAR)


  • HAL Id : tel-03018107, version 1


Jim Newton. Representing and computing with types in dynamically typed languages. Symbolic Computation [cs.SC]. Sorbonne Université, 2018. English. ⟨NNT : 2018SORUS440⟩. ⟨tel-03018107⟩



Record views


Files downloads