English
Related papers

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

200 papers

Building a high-performance JIT-capable VM for a dynamic language has traditionally required a tremendous amount of time, money, and expertise. We present Deegen, a meta-compiler that allows users to generate a high-performance JIT-capable…

Programming Languages · Computer Science 2024-11-26 Haoran Xu , Fredrik Kjolstad

Fuzzing has become a commonly used approach to identifying bugs in complex, real-world programs. However, interpreters are notoriously difficult to fuzz effectively, as they expect highly structured inputs, which are rarely produced by most…

Cryptography and Security · Computer Science 2023-04-06 Christopher Salls , Chani Jindal , Jake Corina , Christopher Kruegel , Giovanni Vigna

Verifiers that can prove programs correct against their full functional specification require, for programs with loops, additional annotations in the form of loop invariants---propeties that hold for every iteration of a loop. We show that…

Software Engineering · Computer Science 2016-02-09 Juan P. Galeotti , Carlo A. Furia , Eva May , Gordon Fraser , Andreas Zeller

The practice of unit testing enables programmers to obtain automated feedback on whether a currently edited program is consistent with the expectations specified in test cases. Feedback is most valuable when it happens immediately, as…

Software Engineering · Computer Science 2020-02-21 Toni Mattis , Robert Hirschfeld

Security vulnerabilities present in a code that has been written in diverse programming languages are among the most critical yet complicated aspects of source code to detect. Static analysis tools based on rule-based patterns usually do…

Cryptography and Security · Computer Science 2025-08-19 Hael Abdulhakim Ali Humran , Ferdi Sonmez

One of the most attractive features of untyped languages is the flexibility in term creation and manipulation. However, with such power comes the responsibility of ensuring the correctness of these operations. A solution is adding run-time…

Programming Languages · Computer Science 2017-10-17 Nataliia Stulova , José F. Morales , Manuel V. Hermenegildo

We present a new type system combining occurrence typing, previously used to type check programs in dynamically-typed languages such as Racket, JavaScript, and Ruby, with dependent refinement types. We demonstrate that the addition of…

Programming Languages · Computer Science 2016-10-05 Andrew M. Kent , David Kempe , Sam Tobin-Hochstadt

JavaScript has become one of the most widely used programming languages for web development, server-side programming, and even micro-controllers for IoT. However, its extremely functional and dynamic features degrade the performance and…

Software Engineering · Computer Science 2021-06-02 Joonyoung Park , Jihyeok Park , Dongjun Youn , Sukyoung Ryu

Block-based programming languages like Scratch have become increasingly popular as introductory languages for novices. These languages are intended to be used with a "tinkering" approach which allows learners and teachers to quickly…

Static analysis is the process of analyzing software code without executing the software. It can help find bugs and potential problems in software that may only appear at runtime. Although many static analysis tools have been developed for…

Software Engineering · Computer Science 2023-04-11 Pengzhan Zhao , Xiongfei Wu , Zhuo Li , Jianjun Zhao

Dynamic code, i.e., code that is created or modified at runtime, is ubiquitous in today's world. The behavior of dynamic code can depend on the logic of the dynamic code generator in subtle and non-obvious ways, with significant security…

Cryptography and Security · Computer Science 2019-10-31 Jesse Bartels , Jon Stephens , Saumya Debray

Just-in-time (JIT) compilers are used by many modern programming systems in order to improve performance. Bugs in JIT compilers provide exploitable security vulnerabilities and debugging them is difficult as they are large, complex, and…

Programming Languages · Computer Science 2021-08-27 HeuiChan Lim , Stephen Kobourov

Generating effective test inputs for a software system requires that these inputs be valid, as they will otherwise be rejected without reaching actual functionality. In the absence of a specification for the input language, common test…

Software Engineering · Computer Science 2025-03-12 Leon Bettscheider , Andreas Zeller

JavaScript has become one of the most widely used languages for Web development. However, it is challenging to ensure the correctness and reliability of Web applications written in JavaScript, due to their dynamic and event-driven features.…

Software Engineering · Computer Science 2019-05-21 Pengfei Gao , Fu Song , Taolue Chen , Yao Zeng , Ting Su

The breakneck evolution of modern programming languages aggravates the development of deductive verification tools, which struggle to timely and fully support all new language features. To address this challenge, we present ByteBack: a…

Programming Languages · Computer Science 2024-10-03 Marco Paganoni , Carlo A. Furia

Programming language detection is a common need in the analysis of large source code bases. It is supported by a number of existing tools that rely on several features, and most notably file extensions, to determine file types. We consider…

Software Engineering · Computer Science 2021-03-02 Francesca Del Bonifro , Maurizio Gabbrielli , Stefano Zacchiroli

For all the successes in verifying low-level, efficient, security-critical code, little has been said or studied about the structure, architecture and engineering of such large-scale proof developments. We present the design, implementation…

Programming Languages · Computer Science 2023-07-10 Son Ho , Aymeric Fromherz , Jonathan Protzenko

We formalize a new type system for Elixir, a dynamically typed functional programming language of growing popularity that runs on the Erlang virtual machine. Our system combines gradual typing with semantic subtyping to enable precise,…

Programming Languages · Computer Science 2025-09-30 Giuseppe Castagna , Guillaume Duboc

Statically typed languages offer numerous benefits to developers, such as improved code quality and reduced runtime errors, but they also require the overhead of manual type annotations. To mitigate this burden, language designers have…

Software Engineering · Computer Science 2024-11-01 Samuel W. Flint , Ali M. Keshk , Robert Dyer , Hamid Bagheri

There has been growing interest in automatically predicting missing type annotations in programs written in Python and JavaScript. While prior methods have achieved impressive accuracy when predicting the most common types, they often…

Software Engineering · Computer Science 2023-03-20 Jiayi Wei , Greg Durrett , Isil Dillig
‹ Prev 1 4 5 6 7 8 10 Next ›