Matches in SemOpenAlex for { <https://semopenalex.org/work/W2287934881> ?p ?o ?g. }
Showing items 1 to 78 of
78
with 100 items per page.
- W2287934881 abstract "Statically typed languages verify programs at compile-time. As a result many programming mistakes are detected at an early stage of development. A programmer does not have to specify types for every single term manually, however. Many programming languages can reconstruct a termâs type using type inference algorithms. While helpful, programmers often find it hard to comprehend the choice of typing decisions that led to the derived type for a term. A particularly serious consequence is that the reporting of type errors yields cryptic messages and misleading program locations. In this thesis we propose a novel approach to explaining type checking decisions by exploring fragments of type derivation trees. Our approach applies to programming languages that use local type inference: typing decisions are made locally and the type information is only propagated between the adjacent AST nodes. We design an algorithm that backtracks through the nodes of type derivation trees in order to discover the typing decisions that introduce the types for the first time during the type inference process. Our algorithm has two properties: - it is type-driven, meaning that we only visit the nodes and their respective typing decisions if they participated in the inference of a type. - it is autonomous, meaning that it does not require any user-input in its operation. These properties allow us to identify the complete and precise set of locations defining the source of a type; previous work mostly focussed on heuristics or used approximations for locating the cause of an error. Our algorithm is not tied to a particular implementation of a type checker: our type derivation trees can be reconstructed from a pre-existing type checker without modifying its internal logic or affecting its regular compilation times. It therefore readily applies to existing programs: we can not only provide improved feedback for them, we also expose limitations of local type inference algorithms and their implementations, without artificially limiting the language features. We implement our type debugging algorithm on top of Scalaâs type checker. Our analysis applies to a range of erroneous scenarios. It provides better error locations than the standard type error reporter of the Scala compiler. This type debugging analysis is just a starting point from which many interesting and useful applications around type debugging can be built: - we implement an interactive type debugger that guides the users through the decisions of local type inference for erroneous and error-free programs alike. - with precise and minimal source code locations we can also offer surgical-level code modifications that fix for example the limitations of local type inference. - we open the door for programmatically defined, application-specific error feedback or corrections. To the best of our knowledge this thesis is the first to address the problem of type errors for programming languages that use local type inference. Current trends suggest that this scheme is gaining in popularity with mainstream languages other than Scala." @default.
- W2287934881 created "2016-06-24" @default.
- W2287934881 creator A5047380871 @default.
- W2287934881 date "2016-01-01" @default.
- W2287934881 modified "2023-09-23" @default.
- W2287934881 title "Decrypting Local Type Inference" @default.
- W2287934881 doi "https://doi.org/10.5075/epfl-thesis-6741" @default.
- W2287934881 hasPublicationYear "2016" @default.
- W2287934881 type Work @default.
- W2287934881 sameAs 2287934881 @default.
- W2287934881 citedByCount "2" @default.
- W2287934881 countsByYear W22879348812016 @default.
- W2287934881 countsByYear W22879348812020 @default.
- W2287934881 crossrefType "journal-article" @default.
- W2287934881 hasAuthorship W2287934881A5047380871 @default.
- W2287934881 hasConcept C111919701 @default.
- W2287934881 hasConcept C121332964 @default.
- W2287934881 hasConcept C127705205 @default.
- W2287934881 hasConcept C138958017 @default.
- W2287934881 hasConcept C154945302 @default.
- W2287934881 hasConcept C177264268 @default.
- W2287934881 hasConcept C18903297 @default.
- W2287934881 hasConcept C198370458 @default.
- W2287934881 hasConcept C199360897 @default.
- W2287934881 hasConcept C2776214188 @default.
- W2287934881 hasConcept C2777299769 @default.
- W2287934881 hasConcept C2778514511 @default.
- W2287934881 hasConcept C41008148 @default.
- W2287934881 hasConcept C44779574 @default.
- W2287934881 hasConcept C61797465 @default.
- W2287934881 hasConcept C62520636 @default.
- W2287934881 hasConcept C80444323 @default.
- W2287934881 hasConcept C86803240 @default.
- W2287934881 hasConceptScore W2287934881C111919701 @default.
- W2287934881 hasConceptScore W2287934881C121332964 @default.
- W2287934881 hasConceptScore W2287934881C127705205 @default.
- W2287934881 hasConceptScore W2287934881C138958017 @default.
- W2287934881 hasConceptScore W2287934881C154945302 @default.
- W2287934881 hasConceptScore W2287934881C177264268 @default.
- W2287934881 hasConceptScore W2287934881C18903297 @default.
- W2287934881 hasConceptScore W2287934881C198370458 @default.
- W2287934881 hasConceptScore W2287934881C199360897 @default.
- W2287934881 hasConceptScore W2287934881C2776214188 @default.
- W2287934881 hasConceptScore W2287934881C2777299769 @default.
- W2287934881 hasConceptScore W2287934881C2778514511 @default.
- W2287934881 hasConceptScore W2287934881C41008148 @default.
- W2287934881 hasConceptScore W2287934881C44779574 @default.
- W2287934881 hasConceptScore W2287934881C61797465 @default.
- W2287934881 hasConceptScore W2287934881C62520636 @default.
- W2287934881 hasConceptScore W2287934881C80444323 @default.
- W2287934881 hasConceptScore W2287934881C86803240 @default.
- W2287934881 hasLocation W22879348811 @default.
- W2287934881 hasOpenAccess W2287934881 @default.
- W2287934881 hasPrimaryLocation W22879348811 @default.
- W2287934881 hasRelatedWork W147652095 @default.
- W2287934881 hasRelatedWork W176902785 @default.
- W2287934881 hasRelatedWork W2082769530 @default.
- W2287934881 hasRelatedWork W2117009500 @default.
- W2287934881 hasRelatedWork W2128210194 @default.
- W2287934881 hasRelatedWork W2134093956 @default.
- W2287934881 hasRelatedWork W2150034903 @default.
- W2287934881 hasRelatedWork W2171400988 @default.
- W2287934881 hasRelatedWork W2249290787 @default.
- W2287934881 hasRelatedWork W2310514039 @default.
- W2287934881 hasRelatedWork W2529699941 @default.
- W2287934881 hasRelatedWork W2568717661 @default.
- W2287934881 hasRelatedWork W2602897444 @default.
- W2287934881 hasRelatedWork W2735874758 @default.
- W2287934881 hasRelatedWork W2757480792 @default.
- W2287934881 hasRelatedWork W2886025031 @default.
- W2287934881 hasRelatedWork W563872716 @default.
- W2287934881 hasRelatedWork W71601957 @default.
- W2287934881 hasRelatedWork W1792651782 @default.
- W2287934881 hasRelatedWork W193626754 @default.
- W2287934881 isParatext "false" @default.
- W2287934881 isRetracted "false" @default.
- W2287934881 magId "2287934881" @default.
- W2287934881 workType "article" @default.