A programmable programming language

@article{Felleisen2018APP,
  title={A programmable programming language},
  author={Matthias Felleisen and Robert Bruce Findler and Matthew Flatt and Shriram Krishnamurthi and Eli Barzilay and Jay A. McCarthy and Sam Tobin-Hochstadt},
  journal={Communications of the ACM},
  year={2018},
  volume={61},
  pages={62 - 71}
}
As the software industry enters the era of language-oriented programming, it needs programmable programming languages. 

Figures from this paper

Digital Competencies of the Future Programmer: SWIFT
  • Swift
  • Computer Science
  • 2020
TLDR
The article discusses the innovative Swift programming language, and the relevance of the use of a new language in the context of the digital economy is indicated.
Macros for domain-specific languages
TLDR
This paper presents an architecture for implementers of macros, a powerful means of extending languages that has proven useful in both general-purpose and domain-specific programming contexts.
Emerging languages: An alternative approach to teaching programming languages
  • S. Perugini
  • Computer Science
    Journal of Functional Programming
  • 2019
TLDR
An alternate approach to teaching a programming language course is presented that results in a variety of course desiderata including scope for instructor customization; alignment with current trends in language evolution, practice, and research; and congruence with industrial needs.
A Typing Discipline for Hardware Interfaces
TLDR
A dependent type-system and proof-of-concept modelling language is developed to reason about the physical structure of hardware interfaces using user provided descriptions and provides correct-by-construction guarantees that the interfaces on an IP Core will be well-typed if they adhere to a specified standard.
From Macros to DSLs: The Evolution of Racket
TLDR
This paper presents the evolution of Racket’s macro system, including a false start, and assesses its current state.
Macros for domain-specific languages
TLDR
This paper presents an architecture for implementing macro- Extensible DSLs on top of macro-extensible host languages, which empower programmers to safely grow DSL's on their own and tailor them to their needs.
Methods, Languages and Tools for Future System Development
  • B. Steffen
  • Computer Science
    Computing and Software Science
  • 2019
TLDR
The following summary of the contributions of the second topical part of the celebration volume LNCS 10,000 aims at establishing a common perspective and indicating the state and progress of this convergence.
Task-Specific Programming Languages for Promoting Computing Integration: A Precalculus Example
TLDR
A set of task-specific programming languages for use in social studies and precalculus courses to offer an alternative to more general purpose programming languages (such as Scratch or Python) for integrating computing into other disciplines.
Dependent type systems as macros
TLDR
This paper explains the implementation details of Turnstile+, as well as how it may be used to create a wide-variety of dependently typed languages, from a lightweight one with indexed types, to a full spectrum proof assistant, complete with a tactic system and extensions for features like sized types and SMT interaction.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 47 REFERENCES
Programming languages as operating systems (or revenge of the son of the lisp machine)
The MrEd virtual machine serves both as the implementation platform for the DrScheme programming environment, and as the underlying Scheme engine for executing expressions and programs entered into
The Racket Manifesto
TLDR
The paper explains these principles and how Racket lives up to them, presents the evaluation framework behind the design process, and concludes with a sketch of Racket's imperfections and opportunities for future improvements.
The Spoofax language workbench
Spoofax is a language workbench for efficient, agile development of textual domain-specific languages with state-of-the-art IDE support. It provides a comprehensive environment that integrates syntax
The design and implementation of a dataflow language for scriptable debugging
TLDR
The design of a language for scripting debuggers is presented, which offers powerful primitives that can precisely and concisely capture many important debugging and comprehension metaphors.
Linguistic reuse
TLDR
This dissertation develops a framework to treat programming languages as software engineering artifacts, in which languages are identifiable, reusable entities that programmers can compose and link to produce larger languages.
Macro-by-example: Deriving syntactic transformations from their specifications
TLDR
A “macro-by-example” specification language for syntactic abstractions in Lisp and related languages is described, which gives a formal semantics for the language and a derivation of a compiler from the semantics.
Debugging hygienic macros
Design Principles Behind Smalltalk
TLDR
A language of description that serves as an interface between the models in the human mind and those in computing hardware, and a language of interaction that matches the human communication system to that of the computer.
Debugging macros
TLDR
A stepping debugger specialized to the concerns of macro expansion is developed that presents the macro expansion process as a linear rewriting sequence of annotated terms; it graphically illustrates the binding structure of the program as expansion reveals it; and it adapts to the programmer's level of abstraction.
Resugaring: lifting evaluation sequences through syntactic sugar
TLDR
This work shows how to compute reduction steps in terms of the surface syntax, and makes these statements about emulation and abstraction precise, prove that they hold in the formalism, and verify part of the system in Coq.
...
1
2
3
4
5
...