English
Related papers

Related papers: Illustrating the Mezzo programming language

200 papers

We provide here a proof theoretic account of constraint programming that attempts to capture the essential ingredients of this programming style. We exemplify it by presenting proof rules for linear constraints over interval domains, and…

Artificial Intelligence · Computer Science 2007-05-23 Krzysztof R. Apt

Testing has become an indispensable activity of software development, yet writing good and relevant tests remains a quite challenging task. One well-known problem is that it often is impossible or unrealistic to test for every outcome, as…

Programming Languages · Computer Science 2017-08-18 Dimitri Racordon , Didier Buchs

An introductory formal languages course exposes advanced undergraduate and early graduate students to automata theory, grammars, constructive proofs, computability, and decidability. Programming students find these topics to be challenging…

Formal Languages and Automata Theory · Computer Science 2014-12-17 Marco T. Morazán , Rosario Antunez

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

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

Dependently typed lambda calculi such as the Logical Framework (LF) can encode relationships between terms in types and can naturally capture correspondences between formulas and their proofs. Such calculi can also be given a logic…

Logic in Computer Science · Computer Science 2010-05-25 Zachary Snow , David Baelde , Gopalan Nadathur

Computer programming is among the fundamental aspects of computer science curriculum. Many students first introduced to introductory computer programming courses experience difficulties in learning and comprehending. Vast amount of…

Programming Languages · Computer Science 2014-08-13 Ally S. Nyamawe

The demonstrated code-understanding capability of LLMs raises the question of whether they can be used for automated program verification, a task that demands high-level abstract reasoning about program properties that is challenging for…

Formal Languages and Automata Theory · Computer Science 2024-04-26 Haoze Wu , Clark Barrett , Nina Narodytska

We provide an overall description of the Ciao multiparadigm programming system emphasizing some of the novel aspects and motivations behind its design and implementation. An important aspect of Ciao is that, in addition to supporting logic…

Programming Languages · Computer Science 2011-03-01 M. V. Hermenegildo , F. Bueno , M. Carro , P. López-García , E. Mera , J. F. Morales , G. Puebla

While methods of code abstraction and reuse are widespread and well researched, methods of proof abstraction and reuse are still emerging. We consider the use of dependent types for this purpose, introducing a completely mechanical approach…

Programming Languages · Computer Science 2012-08-03 Christopher Schwaab , Jeremy G. Siek

We consider the problem of automated reasoning about dynamically manipulated data structures. The state-of-the-art methods are limited to the unfold-and-match (U+M) paradigm, where predicates are transformed via (un)folding operations…

Programming Languages · Computer Science 2014-07-24 Duc-Hiep Chu , Joxan Jaffar , Minh-Thai Trinh

Extreme Programming is the most prominent new, light-weight (or agile) methods, defined to contrast the current heavy-weight and partially overloaded object-oriented methods. It focuses on the core issues of software technology. One of its…

Software Engineering · Computer Science 2014-09-24 Bernhard Rumpe

Probabilistic programming languages rely fundamentally on some notion of sampling, and this is doubly true for probabilistic programming languages which perform Bayesian inference using Monte Carlo techniques. Verifying samplers - proving…

Programming Languages · Computer Science 2023-04-27 Fredrik Dahlqvist , Alexandra Silva , William Smith

Programming languages are incredibly versatile, enabling developers to create applications and programs that suit their individual requirements. This article introduces a new language called Cesno, designed from the ground up to offer an…

Software Engineering · Computer Science 2024-09-24 Ozelot Vanilla , Jingxiang Yu , Hemn Barzan Abdalla

Large language models (LLMs) often benefit from intermediate steps of reasoning to generate answers to complex problems. When these intermediate steps of reasoning are used to monitor the activity of the model, it is essential that this…

Machine Learning · Computer Science 2023-11-02 Fabien Roger , Ryan Greenblatt

Logic can be made useful for programming and for databases independently of logic programming. To be useful in this way, logic has to provide a mechanism for the definition of new functions and new relations on the basis of those given in…

Logic in Computer Science · Computer Science 2014-12-30 M. H. van Emden

Traditionally, computer programming has been the prerogative of professional developers using textual programming languages such as C, Java, or Python. Low-code programming promises an alternative: letting citizen developers create programs…

Programming Languages · Computer Science 2023-09-26 Martin Hirzel

In the logic programming paradigm, a program is defined by a set of methods, each of which can be executed when specific conditions are met during the current state of an execution. The semantics of these programs can be elegantly…

Logic in Computer Science · Computer Science 2024-10-02 Matteo Acclavio , Roberto Maieli

LLM-generated explanations can make technical content more accessible, but there is a ceiling on what they can support interactively. Because LLM outputs are static text, they cannot be executed or stepped through. We argue that grounding…

Human-Computer Interaction · Computer Science 2026-04-13 Hita Kambhamettu , Will Crichton , Sean Welleck , Harrison Goldstein , Andrew Head

ML is remarkable in providing statically typed polymorphism without the programmer ever having to write any type annotations. The cost of this parsimony is that the programmer is limited to a form of polymorphism in which quantifiers can…

Programming Languages · Computer Science 2020-04-02 Frank Emrich , Sam Lindley , Jan Stolarek , James Cheney , Jonathan Coates