vix.ing · top · new · best · stats · spec

Translating declarative control elements to imperative using 'l-value redefinition graphs'

2021/03/04 by Anthony Savidis, Savidis, Anthony
Computer Science · Social Sciences · #Advanced Database Systems and Queries #FOS: Computer and information sciences #Logic, programming, and type systems #Programming Languages (cs.PL) #Software Engineering and Design Patterns #cs.PL

paper · pdf · doi:10.48550/arxiv.2103.03309

15 pages, 13 figures, includes code

arxiv created 2021/03/04 · openalex publication_date 2021/03/04 · arxiv updated 2021/03/08 · openalex created_date 2021/03/15 · openalex updated_date 2026/07/28

Abstract

We focus on control constructs that allow programmers define actions to be performed when respective conditions are met without requiring the explicit evaluation and testing of conditions as part of an imperative algorithm. Such elements are commonly referred as declarative, not theoretically related to declarative languages. We introduce declarative constructs in the C++ language, presenting the translation method to standard C++. The innovative feature of our method is the accommodation of l-values involving arbitrary pointer / array expressions and objects, supporting immediate runtime evaluation upon content update even if such l-values bind to variant storage locations at runtime. To accomplish this we define 'l-value redefinition graphs', capturing storage binding dependencies among variables, being the floor-plan of our code generation and runtime management approach.

Related