English
Related papers

Related papers: FLAT: Formal Languages as Types

200 papers

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

Formal techniques have been shown to be useful in the development of correct software. But the level of expertise required of practitioners of these techniques prohibits their widespread adoption. Formal techniques need to be tailored to…

Software Engineering · Computer Science 2007-05-23 William Heaven , Alessandra Russo

Statically-annotated types have been shown to aid developers in a number of programming tasks, and this benefit holds true even when static type checking is not used. It is hypothesized that this is because developers use type annotations…

Software Engineering · Computer Science 2026-02-05 Samuel W. Flint , Robert Dyer , Bonita Sharif

Understanding how data moves, transforms, and persists, known as data flow, is fundamental to reasoning in procedural tasks. Despite their fluency in natural and programming languages, large language models (LLMs), although increasingly…

Artificial Intelligence · Computer Science 2025-06-02 Vishal Pallagani , Nitin Gupta , John Aydin , Biplav Srivastava

Large Language Models (LLMs) are increasingly used to build autonomous agents that perform complex tasks with external tools, often exposed through APIs in enterprise systems. Direct use of these APIs is difficult due to the complex input…

Dynamically typed programming languages like R allow programmers to write generic, flexible and concise code and to interact with the language using an interactive Read-eval-print-loop (REPL). However, this flexibility has its price: As the…

Computation · Statistics 2021-01-14 Michel Lang

Python's typing system has evolved pragmatically into a powerful but theoretically fragmented system, with scattered specifications. This paper proposes a formalization to address this fragmentation. The central contribution is a formal…

Programming Languages · Computer Science 2025-09-17 Andrei Nacu , Dorel Lucanu

Instead of a monolithic programming language trying to cover all features of interest, some programming systems are designed by combining together simpler languages that cooperate to cover the same feature space. This can improve usability…

Programming Languages · Computer Science 2018-04-13 Gabriel Scherer , Max New , Nick Rioux , Amal Ahmed

XPath is a language for addressing parts of an XML document. We give an abstract interpretation of XPath expressions in terms of relations on document node types. Node-set-related XPath language constructs are mapped straightforwardly onto…

Programming Languages · Computer Science 2019-05-20 Baltasar Trancón y Widemann , Markus Lepper

This paper explores how design patterns could be revisited in the era of mainstream functional programming languages. I discuss the kinds of knowledge that ought to be represented as functional design patterns: architectural concepts that…

Programming Languages · Computer Science 2023-07-17 Will Crichton

This paper presents a new language called APSL for formally describing protocols to facilitate automated testing. Many real world communication protocols exchange messages whose structures are not trivial, e.g. they may consist of multiple…

Software Engineering · Computer Science 2018-04-12 Tom Tervoort , I. S. W. B. Prasetya

We unify functional and logic programming by treating predicatesas functions equipped with their support: the set of inputs whose output is nonzero. Datalog, for instance, is a language of finitely supported boolean functions. Finite…

Programming Languages · Computer Science 2026-04-30 Michael Arntzenius , Max Willsey

Our scientific knowledge is increasingly built on software output. User code which defines data analysis pipelines and computational models is essential for research in the natural and social sciences, but little is known about how to…

Software Engineering · Computer Science 2020-03-16 Maxwell Shinn

Dynamic languages, such as Python and Javascript, trade static typing for developer flexibility and productivity. Lack of static typing can cause run-time exceptions and is a major factor for weak IDE support. To alleviate these issues, PEP…

Machine Learning · Computer Science 2022-01-20 Amir M. Mir , Evaldas Latoskinas , Sebastian Proksch , Georgios Gousios

Programs that process data that reside in files are widely used in varied domains, such as banking, healthcare, and web-traffic analysis. Precise static analysis of these programs in the context of software verification and transformation…

Programming Languages · Computer Science 2015-04-06 Raveendra Kumar Medicherla , Raghavan Komondoor , S. Narendran

Strings are ubiquitous in code. Not all strings are created equal, some contain structure that makes them incompatible with other strings. CSS units are an obvious example. Worse, type checkers cannot see this structure: this is the latent…

Programming Languages · Computer Science 2019-04-26 David Kelly , Mark Marron , David Clark , Earl T. Barr

Using large language models (LLMs) to generate source code from natural language prompts is a popular and promising idea with a wide range of applications. One of its limitations is that the generated code can be faulty at times, often in a…

Software Engineering · Computer Science 2025-01-14 Yue Chen Li , Stefan Zetzsche , Siva Somayyajula

Large Language Models (LLMs) have become increasingly capable of handling diverse tasks with the aid of well-crafted prompts and integration of external tools, but as task complexity rises, the workflow involving LLMs can be complicated and…

Artificial Intelligence · Computer Science 2024-06-21 Honghua Dong , Qidong Su , Yubo Gao , Zhaoyu Li , Yangjun Ruan , Gennady Pekhimenko , Chris J. Maddison , Xujie Si

Large Language Models (LLMs) are increasingly used in empirical software engineering (ESE) to automate or assist annotation tasks such as labeling commits, issues, and qualitative artifacts. Yet the reliability and reproducibility of such…

Software Engineering · Computer Science 2026-01-27 Mia Mohammad Imran , Tarannum Shaila Zaman

There is a huge performance gap between formal and informal language understanding tasks. The recent pre-trained models that improved the performance of formal language understanding tasks did not achieve a comparable result on informal…

Computation and Language · Computer Science 2020-04-30 Jing Gu , Zhou Yu