English
Related papers

Related papers: Simple and Effective Type Check Removal through La…

200 papers

State of the art optimisation passes for dependently typed languages can help erase the redundant information typical of invariant-rich data structures and programs. These automated processes do not dramatically change the structure of the…

Programming Languages · Computer Science 2023-01-06 Guillaume Allais

Static analysis tools come in many forms andconfigurations, allowing them to handle various tasks in a (secure) development process: code style linting, bug/vulnerability detection, verification, etc., and adapt to the specific requirements…

Dynamically typed programming languages are popular in education and the software industry. While presenting a low barrier to entry, they suffer from run-time type errors and longer-term problems in code quality and maintainability.…

Human-Computer Interaction · Computer Science 2023-03-20 Shuai Fu , Tim Dwyer , Peter J. Stuckey , Jackson Wain , Jesse Linossier

Type migration is the process of adding types to untyped code to gain assurance at compile time. TypeScript and other gradual type systems facilitate type migration by allowing programmers to start with imprecise types and gradually…

Software Engineering · Computer Science 2023-07-12 Ming-Ho Yee , Arjun Guha

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

Strong static type systems help programmers eliminate many errors without much burden of supplying type annotations. However, this flexibility makes it highly non-trivial to diagnose ill-typed programs, especially for novice programmers.…

Programming Languages · Computer Science 2022-10-10 Chuqin Geng , Haolin Ye , Yixuan Li , Tianyu Han , Brigitte Pientka , Xujie Si

Convertibility checking - determining whether two lambda-terms are equal up to reductions - is a crucial component of proof assistants and dependently-typed languages. Practical implementations often use heuristics to quickly conclude that…

Logic in Computer Science · Computer Science 2026-01-12 Nathanaëlle Courant , Xavier Leroy

The JavaScript programming language, which began as a simple scripting language for the Web, has become ubiquitous, spanning desktop, mobile, and server applications. This increase in usage has made JavaScript an attractive target for…

Cryptography and Security · Computer Science 2024-10-29 José Miguel Moreno , Narseo Vallina-Rodriguez , Juan Tapiador

Large Language Models (LLMs) exhibit enhanced capabilities by Chain-of-Thought reasoning. However, the extended reasoning sequences introduce significant GPU memory overhead due to increased key-value (KV) cache. Existing KV cache…

Machine Learning · Computer Science 2025-10-16 Haoyue Zhang , Hualei Zhang , Xiaosong Ma , Jie Zhang , Song Guo

This study examined code issue detection and revision automation by integrating Large Language Models (LLMs) such as OpenAI's GPT-3.5 Turbo and GPT-4o into software development workflows. A static code analysis framework detects issues such…

Software Engineering · Computer Science 2025-06-13 Seyed Moein Abtahi , Akramul Azim

Static analysis, the process of examining code without executing it, is crucial for identifying software issues. Yet, static analysis is hampered by its complexity and the need for customization for different targets. Traditional static…

Software Engineering · Computer Science 2023-12-15 Yu Hao , Weiteng Chen , Ziqiao Zhou , Weidong Cui

Today's programmers face a false choice between creating software that is extensible and software that is correct. Specifically, dynamic languages permit software that is richly extensible (via dynamic code loading, dynamic object…

Programming Languages · Computer Science 2016-08-23 Matthew A. Hammer , Bor-Yuh Evan Chang , David Van Horn

Meta-compiler frameworks, such as RPython and Graal/Truffle, generate high-performance virtual machines (VMs) from interpreter definitions. Although they generate VMs with high-quality just-in-time (JIT) compilers, they still lack an…

Programming Languages · Computer Science 2025-07-04 Yusuke Izawa , Hidehiko Masuhara , Carl Friedrich Bolz-Tereick

Gradual typing has gained popularity as a design choice for integrating static and dynamic typing within a single language. Several practical languages have adopted gradual typing to offer programmers the flexibility to annotate their…

Programming Languages · Computer Science 2026-03-09 Senxi Li , Feng Dai , Tetsuro Yamazaki , Shigeru Chiba

Attacks against computer systems exploiting software vulnerabilities can cause substantial damage to the cyber-infrastructure of our modern society and economy. To minimize the consequences, it is vital to detect and fix vulnerabilities as…

Software Engineering · Computer Science 2023-04-18 Son Nguyen , Thu-Trang Nguyen , Thanh Trong Vu , Thanh-Dat Do , Kien-Tuan Ngo , Hieu Dinh Vo

Context: Just-in-Time (JIT) compilers are able to specialize the code they generate according to a continuous profiling of the running programs. This gives them an advantage when compared to Ahead-of-Time (AoT) compilers that must choose…

Programming Languages · Computer Science 2025-03-03 Aurore Poirier , Erven Rohou , Manuel Serrano

Probabilistic programming languages are valuable because they allow domain experts to express probabilistic models and inference algorithms without worrying about irrelevant details. However, for decades there remained an important and…

Programming Languages · Computer Science 2019-07-03 Rajan Walia , Praveen Narayanan , Jacques Carette , Sam Tobin-Hochstadt , Chung-chieh Shan

Many modern virtual machines, such as JVMs, .NET Framework, and V8, employ a just-in-time (JIT) compiler to achieve their high-performance. There are two major compilation strategies; trace-based compilation and method-based compilation.…

Programming Languages · Computer Science 2020-12-01 Yusuke Izawa , Hidehiko Masuhara

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

A long-standing shortcoming of statically typed functional languages is that type checking does not rule out pattern-matching failures (run-time match exceptions). Refinement types distinguish different values of datatypes; if a program…

Programming Languages · Computer Science 2020-09-22 Khurram A. Jafery , Jana Dunfield