







The theme of this workshop is the proliferation of ideas about calling into question the cultural roots of our current programming languages, and the search for alternative paradigms with other cultural bases.
Convivial Computing Salon #6: Convivial design heuristics for software systems
Its Time for a New Programming Language
Today, when compared to any other point in programming history, we find ourselves spoiled for choice when it comes to programming…

Identifying Barriers to Adoption for Rust through Online Discourse (PLATEAU 2018) - SPLASH 2018
For PLATEAU 2019, see the workshop webpage at http://plateau-workshop.org/. Programming languages exist to enable programmers to develop software effectively. But programmer efficiency depends on the usability of the languages and tools with which they develop software. The aim of this workshop is to discuss methods, metrics and techniques for evaluating the usability of languages and language tools. The supposed benefits of such languages and tools cover a large space, including making programs easier to read, write, and maintain; allowing programmers to write more flexible and powerful ...

The Next Two Years of Software Engineering
Exploring five critical questions shaping software engineering through 2026, with contrasting scenarios for each. These lenses help prepare for the evolving ...

Resugaring | Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation
Syntactic sugar plays a crucial role in engineering programming languages. It offers convenient syntax and higher-level of abstractions, as witnessed by its pervasive use in both general-purpose and domain-specific contexts. Unfortunately, the ...

A small matter of programming: perspectives on end user computing
A Small Matter of Programming asks why it has been so d…

The Next 7000 Programming Languages
Landin’s seminal paper “The next 700 programming languages” considered programming languages prior to 1966 and speculated on the next 700. Half-a-century on, we cast programming languages in a Darwinian ‘tree of life’ and explore languages, their features (genes) and language evolution from the viewpoint of ‘survival of the fittest’.

Indigitalization: Indigenous Computing Theory - Jon Corbett
LLMs as Collaborators in Language Specification and Design (PLSS 2026) - SPLASH/ISSTA 2026
Workshop on Programming Language Standardization and Specification This workshop aims to foster cross-pollination between researchers and industry professionals with experience in programming language specification and standardization. It provides a forum where participants can share insights, case studies, and best practices, and collaboratively explore solutions to current challenges. The goal of the workshop is to improve the collective understanding of how programming languages are specified, standardized, and evolved in practice. The workshop examines specifications as the foundation ...

Amy J. Ko : Searching for Justice in Programming Language Design
The Spoofax language workbench | Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
As part of the Digital Library's transition to Open Access, new features for researchers are available in the Premium Edition. Click here to learn more.

The mythical matched modules | Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Certified compilers are complex software systems. Like other large systems, they demand modular, extensible designs. While there has been progress in extensible metatheory mechanization, scaling extensibility and reuse to meet the demands of full ...

"Do What I Mean": Name Resolution in Programming Languages | Will Crichton
Resolving names is a hard problem that permeates many aspects of programming like variable scoping, structured control flow, and method resolution. I show how a few core ideas underlie seemingly disparate parts of programming language design.
Local-first software: pragmatism vs idealism
A Design Space Exploration of Async/Await
Many modern programming languages include some form of asynchronous programming. In particular, a growing number now have what we call straight-line asynchrony: attempts to provide asynchronous functions that look similar to synchronous functions, thereby enabling asynchrony without introducing complex control. These languages often share construct names like "async" and "await," which suggests that they have deep semantic similarities. Yet, a close examination reveals that these languages are quite different along several dimensions, often subtly. These differences have real semantic consequences: similar-looking programs can exhibit divergent behavior, confusing developers and language designers alike. This paper therefore presents a design space exploration of straight-line asynchrony. We dissect several existing languages, and show how no two of them agree as a whole on design decisions that affect the presence and ordering of execution. We articulate a design space with nine dimensions covering the full lifecycle of an asynchronous computation, covering questions such as: What precise guarantees does a language give upon calling an asynchronous function? What happens at the end of a task's life? How can a task handle being cancelled? We explore these questions through concrete examples, informal design discussion, and a formal semantics. Our ultimate goal is to help programmers, language designers, and language theorists all better understand the emerging landscape of straight-line asynchrony.

Co-creating with emergent processes ✦ Hijinx World
Existential musings over algorithmic design with creative programming legend Dan Tapper.
