A software architecture describes the structure of a computing system by specifying software components and their interactions. Mapping a software architecture to an implementation is a well known challenge. A key ele...
详细信息
ISBN:
(纸本)9781450304450
A software architecture describes the structure of a computing system by specifying software components and their interactions. Mapping a software architecture to an implementation is a well known challenge. A key element of this mapping is the architecture's description of the data and control-flow interactions between components. The characterization of these interactions can be rather abstract or very concrete, providing more or less implementation guidance, programming support, and static verification. In this paper, we explore one point in the design space between abstract and concrete component interaction specifications. We introduce a notion of interaction contract that expresses allowed interactions between components, describing both data and control-flow constraints. This declaration is part of the architecture description, allows generation of extensive programming support, and enables various verifications. We instantiate our approach in an architecture description language for Sense/Compute/Control applications, and describe associated compilation and verification strategies.
The proceedings contain 11 papers. The topics discussed include: securing outsourced database: architecture for protected web resource;implementation of request switch in PleskFS file system;automatic request analyzer...
ISBN:
(纸本)9781450341301
The proceedings contain 11 papers. The topics discussed include: securing outsourced database: architecture for protected web resource;implementation of request switch in PleskFS file system;automatic request analyzer for QoS enabled storage system;aspect markup of a source code for quick navigating a project;on development of static analysis tools for string-embedded languages;some aspects of a modern common-purpose programminglanguagedesign;CPU utilization prediction methods overview;discovering clones in software: from complex algorithms to everyday desktop tool;justification of the choice of neural networks learning algorithms for indoor mobile positioning;BDD by example: Russian Bylina written in gherkin language;and usage of design patterns as a kind of components of software architecture.
The field of quantum algorithms is vibrant. Still, there is currently a lack of programminglanguages for describing quantum computation on a practical scale, i.e., not just at the level of toy problems. We address th...
详细信息
ISBN:
(纸本)9781450320146
The field of quantum algorithms is vibrant. Still, there is currently a lack of programminglanguages for describing quantum computation on a practical scale, i.e., not just at the level of toy problems. We address this issue by introducing Quipper, a scalable, expressive, functional, higher-order quantum programminglanguage. Quipper has been used to program a diverse set of non-trivial quantum algorithms, and can generate quantum gate representations using trillions of gates. It is geared towards a model of computation that uses a classical computer to control a quantum device, but is not dependent on any particular model of quantum hardware. Quipper has proven effective and easy to use, and opens the door towards using formal methods to analyze quantum algorithms.
There are a number of constructs to implement context-dependent behavior, such as conditional branches using if statements, method dispatching in object-oriented programming (such as the state design pattern), dynamic...
详细信息
We describe the extension of a reactive programminglanguage with a behavioral contract construct. It is dedicated to the programming of reactive control of applications in embedded systems, and involves principles of...
详细信息
We describe the extension of a reactive programminglanguage with a behavioral contract construct. It is dedicated to the programming of reactive control of applications in embedded systems, and involves principles of the supervisory control of discrete event systems. Our contribution is in a language approach where modular discrete controller synthesis (DCS) is integrated, and it is concretized in the encapsulation of DCS into a compilation process. From transition system specifications of possible behaviors, DCS automatically produces controllers that make the controlled system satisfy the property given as objective. Our language features and compiling technique provide correctness-by-construction in that sense, and enhance reliability and verifiability. Our application domain is adaptive and reconfigurable systems: closed-loop adaptation mechanisms enable flexible execution of functionalities w.r.t. changing resource and environment conditions. Our language can serve programming such adaption controllers. This paper particularly describes the compilation of the language. We present a method for the modular application of discrete controller synthesis on synchronous programs, and its integration in the BZR language. We consider structured programs, as a composition of nodes, and first apply DCS on particular nodes of the program, in order to reduce the complexity of the controller computation;then, we allow the abstraction of parts of the program for this computation;and finally, we show how to recompose the different controllers computed from different abstractions for their correct co-execution with the initial program. Our work is illustrated with examples, and we present quantitative results about its implementation.
The broader application of digital computers to various areas of studies has prompted the design and usage of special purpose problem-oriented programminglanguages. Although designing and writing a compiler for a spe...
详细信息
In this paper, we describe a system, Hylian, for construction of a language-complete abstract semantic graph that can be used for statement-level analysis, both static and dynamic, of a C++ application. We begin by ex...
详细信息
Software language Engineering (SLE) has emerged as a field in computer science research and software engineering, but it has yet to become entrenched as part of the standard curriculum at universities. Many places hav...
详细信息
Software language Engineering (SLE) has emerged as a field in computer science research and software engineering, but it has yet to become entrenched as part of the standard curriculum at universities. Many places have a compiler construction (CC) course and a programminglanguages (PL) course, but these are not aimed at training students in typical SLE matters such as DSL design and implementation, language workbenches, generalized parsers, and meta-tools. We describe our experiences with developing and teaching software language engineering courses at the Universities of Bergen and Koblenz-Landau. We reflect on lecture topics, assignments, development of course material, and other aspects and variation points in course design.
The proceedings contain 46 papers. The topics discussed include: exploring and improving code completion for test code;on the generalizability of deep learning-based code completion across programminglanguage version...
ISBN:
(纸本)9798400705861
The proceedings contain 46 papers. The topics discussed include: exploring and improving code completion for test code;on the generalizability of deep learning-based code completion across programminglanguage versions;ESGen: commit message generation based on edit sequence of code change;capturing and understanding the drift between design, implementation, and documentation;towards summarizing code snippets using pre-trained transformers;improving AST-level code completion with graph retrieval and multi-field attention;HyperCRX: a browser extension for insights into GitHub projects and developers;innovating coding: evaluating the impact of innovative thinking in programming;and MESIA: understanding and leveraging supplementary nature of method-level comments for automatic comment generation.
暂无评论