0000000000485151

AUTHOR

André Pacak

showing 2 related works from this author

Generating incremental type services

2019

In this vision paper, we propose a method for generating fully functional incremental type services from declarations of type rules. Our general strategy is to translate type rules into Datalog, for which efficient incremental solvers are already available. However, many aspects of type rules don't naturally translate to Datalog and need non-trivial translation. We demonstrate that such translation may be feasible by outlining the translation rules needed for a language with typing contexts (name binding) and bidirectional type rules (local type inference). We envision that even rich type systems of DSLs can be incrementalized by translation to Datalog in the future.

050101 languages & linguisticsLocal typeProgramming languageComputer science05 social sciencesName bindingInference02 engineering and technologyType (model theory)Translation (geometry)computer.software_genreDatalog0202 electrical engineering electronic engineering information engineering020201 artificial intelligence & image processing0501 psychology and cognitive sciencescomputercomputer.programming_languageProceedings of the 12th ACM SIGPLAN International Conference on Software Language Engineering
researchProduct

A systematic approach to deriving incremental type checkers

2020

Static typing can guide programmers if feedback is immediate. Therefore, all major IDEs incrementalize type checking in some way. However, prior approaches to incremental type checking are often specialized and hard to transfer to new type systems. In this paper, we propose a systematic approach for deriving incremental type checkers from textbook-style type system specifications. Our approach is based on compiling inference rules to Datalog, a carefully limited logic programming language for which incremental solvers exist. The key contribution of this paper is to discover an encoding of the infinite typing relation as a finite Datalog relation in a way that yields efficient incremental up…

Operator overloadingRelation (database)Computer scienceProgramming languageInferencecomputer.software_genreDatalogSimple (abstract algebra)CompilerSafety Risk Reliability and QualityRule of inferencecomputerSoftwareLogic programmingcomputer.programming_languageProceedings of the ACM on Programming Languages
researchProduct