Overview
News
Salaries
Products
People
Growth
Offices
Financials

Overview

The Art, Science, and Engineering of Programming journal is a fully refereed, open access, free, electronic journal. It welcomes papers on the art of programming, broadly construed.

News

Blog 8 months ago
Pitfalls in VM Implementation on CHERI: Lessons from Porting CRuby
CHERI (Capability Hardware Enhanced RISC Instructions) is a novel hardware designed to address memory safety issues. By replacing traditional pointers with hardware capabilities, it enhances security in modern software systems. A Virtual Machine (VM) is o
Read more
Report
Blog 8 months ago
Efficient Selection of Type Annotations for Performance Improvement in Gradual Typing
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 programs as needed.
Read more
Report
Blog 8 months ago
Hybrid Structured Editing: Structures for Tools, Text for Users
In programming, better tools often yield better results. For that, modern programming environments offer mechanisms to allow for their extensibility. The closer those tools are to the code, the easier it is for programmers to map the information provided
Read more
Report
Blog 8 months ago
JoinActors: A Modular Library for Actors with Join Patterns
Join patterns are a high-level programming construct for message-passing applications. They offer an intuitive and declarative approach for specifying how concurrent and distributed components coordinate, possibly depending on complex conditions over comb
Read more
Report
Blog 8 months ago
Evaluating LLMs in the Context of a Functional Programming Course: A Comprehensive Study
Large-Language Models (LLMs) are changing the way learners acquire knowledge outside the classroom setting. Previous studies have shown that LLMs seem effective in generating to short and simple questions in introductory CS courses using high-resource pro
Read more
Report
Blog 1 year ago
Chorex: Restartable, Language-Integrated Choreographies
We built Chorex, a language that brings choreographic programming to Elixir as a path toward robust distributed applications. Chorex is unique among choreographic languages because it tolerates failure among actors: when an actor crashes, Chorex spawns a
Read more
Report
Blog 1 year ago
BlueScript: A Disaggregated Virtual Machine for Microcontrollers
Virtual machines (VMs) are highly beneficial for microcontroller development. In particular, interactive programming environments greatly facilitate iterative development processes, and higher execution speeds expand the range of applications that can be
Read more
Report
Blog 1 year ago
Filling the Gaps of Polarity: Implementing Dependent Data and Codata Types with Implicit Arguments
The expression problem describes a fundamental tradeoff between two types of extensibility: extending a type with new operations , such as by pattern matching on an algebraic data type in functional programming, and extending a type with new constructors
Read more
Report
Blog 1 year ago
If-T: A Benchmark for Type Narrowing
Context: The design of static type systems that can validate dynamically-typed programs ( gradually ) is an ongoing challenge. A key difficulty is that dynamic code rarely follows datatype-driven design. Programs instead use runtime tests to narrow down t
Read more
Report
Blog 1 year ago
Generating Inputs for Grammar Mining using Dynamic Symbolic Execution
A vast number of software systems include components that parse and process structured input. In addition to programming languages, which are analyzed by compilers or interpreters, there are numerous components that process standardized or proprietary dat
Read more
Report
Show more news