English
Related papers

Related papers: Syntax and Typing for Cedille Core

200 papers

Modern languages are equipped with static type checking/inference that helps programmers to keep a clean programming style and to reduce errors. However, the ever-growing size of programs and their continuous evolution require building fast…

Programming Languages · Computer Science 2018-11-28 Matteo Busi , Pierpaolo Degano , Letterio Galletta

Code retrieval is a common practice for programmers to reuse existing code snippets in open-source repositories. Given a user query (i.e., a natural language description), code retrieval aims at searching for the most relevant ones from a…

Software Engineering · Computer Science 2022-03-30 Wenchao Gu , Zongjie Li , Cuiyun Gao , Chaozheng Wang , Hongyu Zhang , Zenglin Xu , Michael R. Lyu

Bidirectional typechecking, in which terms either synthesize a type or are checked against a known type, has become popular for its scalability (unlike Damas-Milner type inference, bidirectional typing remains decidable even for very…

Programming Languages · Computer Science 2020-08-25 Jana Dunfield , Neelakantan R. Krishnaswami

Typestate systems are notoriously complex as they require sophisticated machinery for tracking aliasing. We propose a new, transition-oriented foundation for typestate in the setting of impure functional programming. Our approach relies on…

Programming Languages · Computer Science 2024-09-27 Hannes Saffrich , Yuki Nishida , Peter Thiemann

In recent years, languages like Haskell have seen a dramatic surge of new features that significantly extends the expressive power of their type systems. With these features, the challenge of kind inference for datatype declarations has…

Programming Languages · Computer Science 2019-11-15 Ningning Xie , Richard A. Eisenberg , Bruno C. d. S. Oliveira

We consider the application of Constraint Handling Rules (CHR) for the specification of type inference systems, such as that used by Haskell. Confluence of CHR guarantees that the answer provided by type inference is correct and consistent.…

Programming Languages · Computer Science 2020-02-19 Gregory J. Duck , Remy Haemmerle , Martin Sulzmann

Session types offer a type-based discipline for enforcing communication protocols in distributed programming. We have previously formalized simple session types in the setting of multi-threaded $\lambda$-calculus with linear types. In this…

Programming Languages · Computer Science 2017-04-25 Hanwen Wu , Hongwei Xi

Recent years have seen an increasing emphasis on information security, and various encryption methods have been proposed. However, for symmetric encryption methods, the well-known encryption techniques still rely on the key space to…

Cryptography and Security · Computer Science 2020-03-12 Xiang Li , Peng Wang

Error-correcting codes and related combinatorial constructs play an important role in several recent (and old) results in computational complexity theory. In this paper we survey results on locally-testable and locally-decodable…

Computational Complexity · Computer Science 2007-07-13 Luca Trevisan

This paper suggests an approach to the development of software testing and debugging automation tools based on precise program behavior models. The program behavior model is defined as a set of events (event trace) with two basic binary…

Software Engineering · Computer Science 2007-05-23 Mikhail Auguston

We present a simple programming language based on G\"odel numbering and prime factorization, enhanced with explicit, scoped loops, allowing for easy program composition. Further, we will present a theorem prover that allows expressing and…

Programming Languages · Computer Science 2022-12-07 Boro Sitnikovski

In the calculus of dependent lambda eliminations (CDLE), it is possible to define inductive datatypes via lambda encodings that feature constant-time destructors and a course-of-values induction scheme. This paper begins to address the…

Programming Languages · Computer Science 2020-05-05 Christopher Jenkins , Aaron Stump , Larry Diehl

Refinement types are a well-studied manner of performing in-depth analysis on functional programs. The dependency pair method is a very powerful method used to prove termination of rewrite systems; however its extension to higher order…

Logic in Computer Science · Computer Science 2011-01-25 Cody Roux

We introduce a novel approach for testing static typing implementations based on the concept of API-driven program synthesis. The idea is to synthesize type-intensive but small and well-typed programs by leveraging and combining application…

Programming Languages · Computer Science 2023-11-09 Thodoris Sotiropoulos , Stefanos Chaliasos , Zhendong Su

Many researchers have explored ways to bring static typing to dynamic languages. However, to date, such systems are not precise enough when types depend on values, which often arises when using certain Ruby libraries. For example, the type…

Programming Languages · Computer Science 2019-04-09 Milod Kazerounian , Sankha Narayan Guria , Niki Vazou , Jeffrey S. Foster , David Van Horn

We show that verification of object-oriented programs by means of the assertional method can be achieved in a simple way by exploiting a syntax-directed transformation from object-oriented programs to recursive programs. This transformation…

Logic in Computer Science · Computer Science 2011-11-09 Krzysztof R. Apt , Frank S. de Boer , Ernst-Ruediger Olderog , Stijn de Gouw

This paper shows that a variety of software model-checking algorithms can be seen as proof-search strategies for a non-standard proof system, known as a cyclic proof system. Our use of the cyclic proof system as a logical foundation of…

Programming Languages · Computer Science 2021-11-11 Takeshi Tsukada , Hiroshi Unno

Proof Theory and Type Theory are two branches of mathematical logic and theoretical computer science that explore the structure of mathematical proofs and the foundations of computation. Both are crucial for understanding formal systems,…

Logic in Computer Science · Computer Science 2026-03-04 Thorsten Altenkirch , Franco Barbanera , Ferruccio Damiani , Ugo de'Liguoro

While modern software development heavily uses versioned packages, programming languages rarely support the concept of versions in their semantics, which makes software updates more bulky and unsafe. This paper proposes a programming…

Programming Languages · Computer Science 2021-07-16 Yudai Tanabe , Luthfan Anshar Lubis , Tomoyuki Aotani , Hidehiko Masuhara

Gradual typing combines static and dynamic typing in the same language, offering the benefits of both to programmers. Static typing provides error detection and strong guarantees while dynamic typing enables rapid prototyping and flexible…

Programming Languages · Computer Science 2016-10-27 Michael M. Vitousek , Jeremy G. Siek