Language Support for Adaptation: Intent-Driven Programming in FAST

07/12/2019
by   Yao-Hsiang Yang, et al.
0

Historically, programming language semantics has focused on assigning a precise mathematical meaning to programs. That meaning is a function from the program's input domain to its output domain determined solely by its syntactic structure. Such a semantics, fosters the development of portable applications which are oblivious to the performance characteristics and limitations (such as a maximum memory footprint) of particular hardware and software platforms. This paper introduces the idea of intent-driven programming where the meaning of a program additionally depends on an accompanying intent specification expressing how the ordinary program meaning is dynamically modified during execution to satisfy additional properties expressed by the intent. These include both intensional properties—e.g., resource usage—and extensional properties—e.g., accuracy of the computed answer. To demonstrate the intent-driven programming model's value, this paper presents a general-purpose intent-driven programming language—called FAST—implemented as an extension of Swift. FAST consists of an intent compiler, a profiler, a general controller interface and a runtime module which supports interoperation with legacy C/C++ codes. Compared to existing frameworks for adaptive computing, supports dynamic adaptation to changes both in the operating environment and in the intent itself, and enables the mixing of procedural control and control based on feedback and optimization.

READ FULL TEXT
research
08/02/2019

The meaning of a program change is a change to the program's meaning

Programming is the activity of modifying a program in order to bring abo...
research
06/02/2022

A Constraint and Object Oriented Fifth Generation Programming Language and its Compiler and Runtime System

Since the advent of LISP, the fifth generation programming language has ...
research
09/16/2019

ReduKtor: How We Stopped Worrying About Bugs in Kotlin Compiler

Bug localization is well-known to be a difficult problem in software eng...
research
11/30/2018

Parametric Denotational Semantics for Extensible Language Definition and Program Analysis

We present a novel approach to construction of a formal semantics for a ...
research
08/03/1999

After Compilers and Operating Systems : The Third Advance in Application Support

After compilers and operating systems, TSIAs are the third advance in ap...
research
12/06/2022

Branching execution symmetry in Jeopardy by available implicit arguments analysis

When the inverse of an algorithm is well-defined – that is, when its out...
research
04/18/2019

ClangJIT: Enhancing C++ with Just-in-Time Compilation

The C++ programming language is not only a keystone of the high-performa...

Please sign up or login with your details

Forgot password? Click here to reset