Trading off Complexity for Expressiveness in Programming Languages: Visions and Preliminary Experiences
Vincenzo De Florio, Chris Blondia

TL;DR
This paper introduces a modular extension system for programming languages that allows designers to balance complexity and expressiveness, especially for resource-constrained embedded devices, by selectively adding features.
Contribution
It proposes a flexible, modular approach to reshape programming languages, enabling fine-grained control over complexity and resource consumption.
Findings
Modular extensions enable customizable language features.
Designers can control resource overhead by selecting specific modules.
The approach improves flexibility in resource-scarce environments.
Abstract
When programming resource-scarce embedded smart devices, the designer often requires both the low-level system programming features of a language such as C and higher level capability typical of a language like Java. The choice of a particular language typically implies trade offs between conflicting design goals such as performance, costs, and overheads. The large variety of languages, virtual machines, and translators provides the designer with a dense trade off space, ranging from minimalistic to rich full-fledged approaches, but once a choice is made it is often difficult for the designer to revise it. In this work we propose a system of light-weighted and modular extensions as a method to flexibly reshape the target programming language as needed, adding only those application layer features that match the current design goals. In so doing complexity is made transparent, but not…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed systems and fault tolerance · IoT and Edge/Fog Computing
