English
Related papers

Related papers: Set-Theoretic Types for Erlang: Theory, Implementa…

200 papers

Static analysis is the analysis of a program without executing it, usually carried out by an automated tool. Symbolic execution is a popular static analysis technique used both in program verification and in bug detection software. It works…

Software Engineering · Computer Science 2024-08-06 Gabor Horvath , Reka Kovacs , Zoltan Porkolab

We define and study "row polymorphism" for a type system with set-theoretic types, specifically union, intersection, and negation types. We consider record types that embed row variables and define a subtyping relation by interpreting types…

Programming Languages · Computer Science 2025-09-29 Giuseppe Castagna , Loïc Peyrot

Dynamic typing is an important feature of dynamic programming languages. Primitive operators such as those for performing arithmetic and comparisons typically operate on a wide variety of in put value types, and as such, must internally…

Programming Languages · Computer Science 2014-01-15 Maxime Chevalier-Boisvert , Marc Feeley

Large language models (LLMs) are increasingly used to generate requirements specifications, design documents, code, and test cases. In contrast, much less attention has been given to a more difficult assurance problem: statically verifying…

Software Engineering · Computer Science 2026-05-19 Zhi Quan Zhou , Dave Towey , Tsong Yueh Chen

Gradual dependent types can help with the incremental adoption of dependently typed code by providing a principled semantics for imprecise types and proofs, where some parts have been omitted. Current theories of gradual dependent types,…

Programming Languages · Computer Science 2022-05-04 Joseph Eremondi , Ronald Garcia , Éric Tanter

Many universities have courses and projects revolving around compiler or interpreter implementation as part of their degree programmes in computer science. In such teaching activities, tool support can be highly beneficial. While there are…

Programming Languages · Computer Science 2022-09-21 Georgian-Vlad Saioc , Hans Hüttel

Static type errors are a common stumbling block for newcomers to typed functional languages. We present a dynamic approach to explaining type errors by generating counterexample witness inputs that illustrate how an ill-typed program goes…

Programming Languages · Computer Science 2018-03-20 Eric L Seidel , Ranjit Jhala , Westley Weimer

Intersection and union types denote conjunctions and disjunctions of properties. Using bidirectional typechecking, intersection types are relatively straightforward, but union types present challenges. For union types, we can case-analyze a…

Programming Languages · Computer Science 2021-03-24 Jana Dunfield

Assertion checking is an invaluable programmer's tool for finding many classes of errors or verifying their absence in dynamic languages such as Prolog. For Prolog programmers this means being able to have relevant properties such as modes,…

In a reversible language, any forward computation can be undone by a finite sequence of backward steps. Reversible computing has been studied in the context of different programming languages and formalisms, where it has been used for…

Programming Languages · Computer Science 2016-08-22 Naoki Nishida , Adrián Palacios , Germán Vidal

Due to the rise of machine learning, Python is an increasingly popular programming language. Python, however, is dynamically typed. Dynamic typing has shown to have drawbacks when a project grows, while at the same time it improves…

Software Engineering · Computer Science 2019-12-03 Casper Boone , Niels de Bruin , Arjan Langerak , Fabian Stelmach

We present {\lambda}ert, a type theory supporting refinement types with explicit proofs. Instead of solving refinement constraints with an SMT solver like DML and Liquid Haskell, our system requires and permits programmers to embed proofs…

Programming Languages · Computer Science 2023-11-27 Jad Elkhaleq Ghalayini , Neel Krishnaswami

Whilst there have been great advances in HPC hardware and software in recent years, the languages and models that we use to program these machines have remained much more static. This is not from a lack of effort, but instead by virtue of…

Programming Languages · Computer Science 2016-10-31 Nick Brown

We propose an approach on model checking information flow for imperative language with procedures. We characterize our model with pushdown system, which has a stack of unbounded length that naturally models the execution of procedural…

Cryptography and Security · Computer Science 2010-12-15 Cong Sun , Liyong Tang , Zhong Chen

We propose the integration of staged metaprogramming into a session-typed message passing functional language. We build on a model of contextual modal type theory with multi-level contexts, where contextual values, closing arbitrary terms…

Programming Languages · Computer Science 2026-01-22 Pedro Ângelo , Atsushi Igarashi , Yuito Murase , Vasco T. Vasconcelos

Statically analyzing dynamically-typed code is a challenging endeavor, as even seemingly trivial tasks such as determining the targets of procedure calls are non-trivial without knowing the types of objects at compile time. Addressing this…

Machine Learning · Computer Science 2023-10-05 Lukas Seidel , Sedick David Baker Effendi , Xavier Pinho , Konrad Rieck , Brink van der Merwe , Fabian Yamaguchi

Extending a given language with new dedicated features is a general and quite used approach to make the programming language more adapted to problems. Being closer to the application, this leads to less programming flaws and easier…

Logic in Computer Science · Computer Science 2010-03-26 Claude Kirchner , Pierre-Etienne Moreau , Cláudia Tavares

Gradually typed languages allow statically typed and dynamically typed code to interact while maintaining benefits of both styles. The key to reasoning about these mixed programs is Siek-Vitousek-Cimini-Boyland's (dynamic) gradual…

Programming Languages · Computer Science 2018-07-10 Max S. New , Amal Ahmed

Computational interpretations of linear logic allow static control of memory resources: the data produced by the program are endowed through its type with attributes that determine its life cycle, and guarantee safe deallocation. The use of…

Programming Languages · Computer Science 2025-10-09 Hector Gramaglia

Gradual typing is an approach to integrating static and dynamic typing within the same language, and puts the programmer in control of which regions of code are type checked at compile-time and which are type checked at run-time. In this…

Programming Languages · Computer Science 2019-09-16 Matteo Cimini
‹ Prev 1 4 5 6 7 8 10 Next ›