English
Related papers

Related papers: FLAT: Formal Languages as Types

200 papers

Formal verification of a software system relies on formalising the requirements to which it should adhere, which can be challenging. While formalising requirements from natural-language, we have dependencies that lead to duplication of…

Software Engineering · Computer Science 2022-02-14 Matt Luckcuck , Marie Farrell , Oisín Sheridan

This paper presents Tree Notation, a new simple, universal syntax. Language designers can invent new programming languages, called Tree Languages, on top of Tree Notation. Tree Languages have a number of advantages over traditional…

Programming Languages · Computer Science 2017-10-25 Breck Yunits

Stylistic variation in text needs to be studied with different aspects including the writer's personal traits, interpersonal relations, rhetoric, and more. Despite recent attempts on computational modeling of the variation, the lack of…

Computation and Language · Computer Science 2019-09-04 Dongyeop Kang , Varun Gangal , Eduard Hovy

Large Language Models (LLMs) have revolutionized human-AI interaction by enabling intuitive task execution through natural language prompts. Despite their potential, designing effective prompts remains a significant challenge, as small…

Software Engineering · Computer Science 2025-04-08 Yuetian Mao , Junjie He , Chunyang Chen

This report explores how (potentially constrained) natural language can be used to enable non-experts to develop process models by simply describing scenarios in plain text. To this end, a framework, called BeePath, is proposed. It allows…

Computation and Language · Computer Science 2025-08-25 Andrea Burattin , Antonio Grama , Ana-Maria Sima , Andrey Rivkin , Barbara Weber

Benefits of static type systems are well-known: they offer guarantees that no type error will occur during runtime and, inherently, inferred types serve as documentation on how functions are called. On the other hand, many type systems have…

Programming Languages · Computer Science 2020-08-31 Isabel Wingen , Philipp Körner

Many of today's message-passing systems not only require messages to be exchanged in a certain order but also to happen at a certain \emph{time} or within a certain \emph{time window}. Such correctness conditions are particularly prominent…

Programming Languages · Computer Science 2024-11-26 Yue Yao , Grant Iraci , Cheng-En Chuang , Stephanie Balzer , Lukasz Ziarek

Despite being the most popular programming language, Python has not yet received enough attention from the community. To the best of our knowledge, there is no general static analysis framework proposed to facilitate the implementation of…

Software Engineering · Computer Science 2022-02-25 Li Li , Jiawei Wang , Haowei Quan

Human written source code in imperative programming languages exhibits typical patterns for variable use such as flags, loop iterators, counters, indices, bitvectors etc. Although it is widely understood by practitioners that these variable…

Programming Languages · Computer Science 2013-06-17 Yulia Demyanova , Helmut Veith , Florian Zuleger

Elixir is a functional programming language with dynamic typing. We propose a gradual type system that makes it possible to perform type-checking on a significant fragment of the language. An important feature of the type system is that it…

Programming Languages · Computer Science 2021-04-20 Mauricio Cassola , Agustín Talagorria , Alberto Pardo , Marcos Viera

The P4 programming language offers high-level, declarative abstractions that bring the flexibility of software to the domain of networking. Unfortunately, the main abstraction used to represent packet data in P4, namely header types, lacks…

Programming Languages · Computer Science 2019-06-25 Matthias Eichholz , Eric Campbell , Nate Foster , Guido Salvaneschi , Mira Mezini

Large Language Model (LLM) agents increasingly act inside real workspaces, where tools and skills determine whether model reasoning becomes reliable action. Existing skills remain largely informal: Markdown skills and instruction packs…

Artificial Intelligence · Computer Science 2026-05-20 Xi Zhang , Meijun Gao , Yuntian Zhao , Xinyu Tan , Yilun Yao , Feiyu Wang , Yanshu Wang , Dingsiyi , Tong Yang

The functional programming paradigm has a long and storied history, with its beginnings in the Lambda Calculus. In recent decades, pure functional languages such as Haskell have been shown to be highly effective in producing robust software…

Computers and Society · Computer Science 2025-12-04 Rajshekhar Sunderraman

Requirements over strings, commonly represented using natural language (NL), are particularly relevant for software systems due to their heavy reliance on string data manipulation. While individual requirements can usually be analyzed…

Software Engineering · Computer Science 2025-06-23 Boqi Chen , Aren A. Babikian , Shuzhao Feng , Dániel Varró , Gunter Mussbacher

In this paper we present our experience in developing a security application using a typed functional language. We describe how the formal grounding of its semantic and compiler have allowed for a trustworthy development and have…

Software Engineering · Computer Science 2014-04-29 Damien Doligez , Christèle Faure , Thérèse Hardin , Manuel Maarek

Fault localization is a practical research topic that helps developers identify code locations that might cause bugs in a program. Most existing fault localization techniques are designed for imperative programs (e.g., C and Java) and rely…

Software Engineering · Computer Science 2021-02-23 Guolong Zheng , ThanhVu Nguyen , Simón Gutiérrez Brida , Germán Regis , Marcelo F. Frias , Nazareno Aguirre , Hamid Bagheri

Flow-sensitive type systems offer an elegant way to ensure memory-safety in programming languages. Unfortunately, their adoption in new or existing languages is often hindered by a painful effort to implement or integrate them into…

Programming Languages · Computer Science 2021-06-24 Dimitri Racordon , Aurélien Coet , Didier Buchs

A key challenge when statically typing so-called dynamic languages is the ubiquity of value-based overloading, where a given function can dynamically reflect upon and behave according to the types of its arguments. Thus, to establish basic…

Programming Languages · Computer Science 2015-05-01 Panagiotis Vekris , Benjamin Cosman , Ranjit Jhala

In Programming by Example, a system attempts to infer a program from input and output examples, generally by searching for a composition of certain base functions. Performing a naive brute force search is infeasible for even mildly involved…

Artificial Intelligence · Computer Science 2012-09-19 Aditya Krishna Menon , Omer Tamuz , Sumit Gulwani , Butler Lampson , Adam Tauman Kalai

Large language models (LLMs) have become essential tools in software development, widely used for requirements engineering, code generation and review tasks. Software engineers often rely on LLMs to assess whether system code implementation…

Software Engineering · Computer Science 2025-08-19 Haolin Jin , Huaming Chen