Trading off Complexity for Expressiveness in Programming Languages: Visions and Preliminary Experiences

10/04/2019
by   Vincenzo De Florio, et al.
0

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 hidden: While the programmer can benefit of higher level constructs, the designer can deal with modular building blocks each characterized by a certain algorithmic complexity and therefore each accountable for a given share of the overhead. As a result the designer is given a finer control on the amount of resources that are consumed by the run-time executive of the chosen programming language.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/19/2022

@C – augmented version of C programming language

The augmented version of C programming language is presented. The langua...
research
12/10/2019

User-Centered Programming Language Design in the Obsidian Smart Contract Language

Programming language designers commonly guess what language designs woul...
research
05/31/2019

On the Interaction of Object-Oriented Design Patterns and Programming Languages

Design patterns are distilled from many real systems to catalog common p...
research
10/21/2019

Transparent Synchronous Dataflow

There are several functional approaches to dataflow programming, produce...
research
05/09/2023

Using Knowledge Units of Programming Languages to Recommend Reviewers for Pull Requests: An Empirical Study

Code review is a key element of quality assurance in software developmen...
research
07/19/2022

Proposed Consistent Exception Handling for the BLAS and LAPACK

Numerical exceptions, which may be caused by overflow, operations like d...
research
12/22/2021

Computable Model Discovery and High-Level-Programming Approximations to Algorithmic Complexity

Motivated by algorithmic information theory, the problem of program disc...

Please sign up or login with your details

Forgot password? Click here to reset