Domain-Specific languages (DSLs) are a popular way to simplify and streamline programmatic solutions of commonly occurring yet specialized tasks. While the design of frameworks for implementing DSLs has been a popular...
详细信息
ISBN:
(纸本)9798400711800
Domain-Specific languages (DSLs) are a popular way to simplify and streamline programmatic solutions of commonly occurring yet specialized tasks. While the design of frameworks for implementing DSLs has been a popular topic of study in the research community, significantly less attention has been given to studying how those frameworks end up being used by practitioners and assessing utility of their features for building DSLs "in the wild". In this paper, we conduct such a study focusing on a particular framework for DSL construction: the Racket programminglanguage. We provide (a) a novel taxonomy of languagedesign intents enabled by Racket-embedded DSLs, and (b) a classification of ways to utilize Racket's mechanisms that make the implementation of those intents possible. We substantiate our taxonomy with an analysis of 30 popular Racket-based DSLs, discussing how they make use of the available mechanisms and accordingly achieve their design intents. the taxonomy serves as a reusable measure that can help languagedesigners to systematically develop, compare, and analyze DSLs in Racket as well as other frameworks.
the proceedings contain 8 papers. the topics discussed include: Dr Wenowdis: specializing dynamic language C extensions using type information;interleaving static analysis and LLM prompting;a better approximation for ...
ISBN:
(纸本)9798400706219
the proceedings contain 8 papers. the topics discussed include: Dr Wenowdis: specializing dynamic language C extensions using type information;interleaving static analysis and LLM prompting;a better approximation for interleaved Dyck reachability;interactive source-to-source optimizations validated using static resource analysis;when to stop going down the rabbit hole: taming context-sensitivity on the fly;ValBench: benchmarking exact value analysis;static analysis for transitioning to CHERI C/C++;and Misconceptions about Loops in C.
Arm Morello is a prototype system that supports CHERI hardware capabilities for improving runtime security. As Morello becomes more widely available, there is a growing effort to port open source code projects to this...
详细信息
ISBN:
(纸本)9798400703805
Arm Morello is a prototype system that supports CHERI hardware capabilities for improving runtime security. As Morello becomes more widely available, there is a growing effort to port open source code projects to this novel platform. Although high-level applications generally need minimal code refactoring for CHERI compatibility, low-level systems code bases require significant modification to comply withthe stringent memory safety constraints that are dynamically enforced by Morello. In this paper, we describe our work on porting the MicroPython interpreter to Morello withthe CheriBSD OS. Our key contribution is to present a set of generic lessons for adapting managed runtime execution environments to CHERI, including (1) a characterization of necessary source code changes, (2) an evaluation of runtime performance of the interpreter on Morello, and (3) a demonstration of pragmatic memory safety bug detection. Although MicroPython is a lightweight interpreter, mostly written in C, we believe that the changes we have implemented and the lessons we have learned are more widely applicable. To the best of our knowledge, this is the first published description of meaningful experience for scripting language runtime engineering with CHERI and Morello.
programming with versions is a recent proposal that supports multiple versions of software components in a program. though it would provide greater freedom for the programmer, the concept is only realized as a simple ...
详细信息
ISBN:
(纸本)9781450399197
programming with versions is a recent proposal that supports multiple versions of software components in a program. though it would provide greater freedom for the programmer, the concept is only realized as a simple core calculus, called..VL, where a value consists of lambda-terms with multiple versions. We explore a design space of programming with versions in the presence of data structures and module systems, and propose BatakJava, an object-oriented programminglanguage in which multiple versions of a class can be used in a program. this paper presents BatakJava's languagedesign, its core semantics with subject reduction, an implementation as a source-to-Java translator, and a case study to understand how we can exploit multiple versions in BatakJava for developing an application program with an evolving library.
programminglanguages providing high-level abstractions can increase a programmers' productivity and the safety of a program. language-oriented programming is a paradigm in which domain-specific languages are deve...
详细信息
ISBN:
(纸本)9781450399197
programminglanguages providing high-level abstractions can increase a programmers' productivity and the safety of a program. language-oriented programming is a paradigm in which domain-specific languages are developed to solve problems within specific domains with (high-level) abstractions relevant to those domains. However, language development involves complex design and engineering processes. these processes can be simplified by reusing (parts of) existing languages and by offering language-parametric tooling. In this paper we present iCoLa, a meta-language supporting incremental (meta-)programming based on reusable components. In our implementation of iCoLa, languages are firstclass citizens, providing the full power of the host-language (Haskell) to compose and manipulate languages. We demonstrate iCoLa through the construction of the Imp, SIMPLE, and MiniJava languages via the composition and restriction of language fragments and demonstrate the variability of our approach through the construction of several languages using a fixed-set of operators.
the fast-and-loose, permissive semantics of dynamic programminglanguages limit the power of static analyses. For that reason, soundness is often traded for precision through dynamic program analysis. Dynamic analysis...
详细信息
ISBN:
(纸本)9781450399197
the fast-and-loose, permissive semantics of dynamic programminglanguages limit the power of static analyses. For that reason, soundness is often traded for precision through dynamic program analysis. Dynamic analysis is only as good as the available runnable code, and relying solely on test suites is fraught as they do not cover the full gamut of possible behaviors. Fuzzing is an approach for automatically exercising code, and could be used to obtain more runnable code. However, the shape of user-defined data in dynamic languages is difficult to intuit, limiting a fuzzer's reach. We propose a feedback-driven blackbox fuzzing approach which draws inputs from a database of values recorded from existing code. We implement this approach in a tool called signatr for the R language. We present the insights of its design and implementation, and assess signatr's ability to uncover new behaviors by fuzzing 4,829 R functions from 100 R packages, revealing 1,195,184 new signatures.
Writing highly maintainable and efficient software code is becoming increasingly difficult, especially while following the rapid, agile development process and working in a distributed team. One of the key indicators ...
详细信息
the proceedings contain 7 papers. the topics discussed include: BinFPE: accurate floating-point exception detection for GPU applications;modeling code manipulation in JIT compilers;statically detecting data leakages i...
ISBN:
(纸本)9781450392747
the proceedings contain 7 papers. the topics discussed include: BinFPE: accurate floating-point exception detection for GPU applications;modeling code manipulation in JIT compilers;statically detecting data leakages in data science code;ensuring determinism in blockchain software with GoLiSA: an industrial experience report;ADA: a tool for visualizing the architectural overview of open-source repositories;abstract interpretation of Michelson smart-contracts;and towards an implementation of differential dynamic logic in PVS.
this paper describes an ongoing effort to embed and verify differential dynamic logic (dL) in the Prototype Verification System (PVS). dL is a logic for specifying and formally reasoning about hybrid systems, i.e., sy...
详细信息
暂无评论