We present the QWALKEKO meta-programming library for Clojure that enables querying the history of versioned software projects in a declarative manner. Unique to this library is its support for regular path expressions...
详细信息
ISBN:
(纸本)9780769553030
We present the QWALKEKO meta-programming library for Clojure that enables querying the history of versioned software projects in a declarative manner. Unique to this library is its support for regular path expressions within history queries. Regular path expressions are akin to regular expressions, except that they match a sequence of successive snapshots of a software project along which user-specified logic conditions must hold. Such logic conditions can concern the source code within a snapshot, versioning information associated with the snapshot, as well as patterns of source code changes with respect to other snapshots. We have successfully used the resulting multi-faceted queries to detect refactorings in project histories. In this paper, we discuss how applicative logic meta-programming enabled combining the heterogenous components of QWALKEKO into a uniform whole. We focus on the applicative logic interface to a new implementation of a well-known change distilling algorithm. We use the problem of detecting and categorizing changes made to SELENIUM-based test scripts for illustration purposes.
Formal methods are essential in assuring system correctness. However, formal specification languages have steep learning curves, thus hindering broader application to system development in practice. To address this pr...
详细信息
Formal methods are essential in assuring system correctness. However, formal specification languages have steep learning curves, thus hindering broader application to system development in practice. To address this problem, we propose NetSpec, a tool that generates system specification via intuitive example-based interface, DeCon, a high-level language for Ethereum smart contracts that provides unified interfaces for contract implementation and specification, and DCV, a safety verification tool for DeCon. NetSpec aims to be i) highly expressive, capable of synthesizing network specifications with complex semantics; ii) scalable, by virtue of using a novel stochastic search algorithm to efficiently explore an unbounded solution space, and iii) robust, avoiding the need for exhaustive input-output examples by actively generating new examples. Our experiments demonstrate that NetSpec can synthesize a wide range of specifications used in network verification, analysis, and implementations. Furthermore, NetSpec improves upon existing approaches in terms of expressiveness, efficiency, and robustness to examples. DeCon, a specification language for Ethereum smart contracts, models a contract as a set of relational tables that store transaction records, driven by the observation that smart contract operations and contract-level properties can be naturally expressed as relational constraints. This relational representation enables convenient specification of contract properties, facilitates run-time monitoring of potential property violations, and brings clarity to debugging via data provenance. DeCon programs are compiled into executable Solidity programs, with instrumentation for run-time property monitoring. Our case studies demonstrate that DeCon can implement realistic smart contracts such as ERC20 and ERC721 digital tokens. The evaluation shows that DeCon has comparable efficiency with the open-source reference implementation, incurring 14% median gas overhead for exec
Intent-based Networking (IBN) aims at simplifying network configuration and management by using high-level objectives that express the desired state of the network rather than the details of how to implement it. In th...
详细信息
ISBN:
(纸本)9798350399806
Intent-based Networking (IBN) aims at simplifying network configuration and management by using high-level objectives that express the desired state of the network rather than the details of how to implement it. In this article, we propose a declarative methodology and an associated open-source Prolog prototype (i) to model IBN intents related to the provisioning of Virtual Network Function (VNF) chains, and (ii) to process those intents to assemble and place a VNF chain that fulfils them. Our prototype is assessed over a lifelike motivating scenario.
We propose a framework that can be used to produce functioning web applications from SBVR models. To achieve this, we begin by discussing the concept of declarative application generation and examining the commonaliti...
详细信息
ISBN:
(纸本)9783642049842
We propose a framework that can be used to produce functioning web applications from SBVR models. To achieve this, we begin by discussing the concept of declarative application generation and examining the commonalities between SBVR and the RESTful architectural style of the web. We then show how a relational database schema and RESTful interface can be generated from an SBVR model. In this context, we discuss how SBVR can be used to semantically describe hypermedia on the Web and enhance its evolvability and loose coupling properties. Finally, we show that this system is capable of exhibiting process-like behaviour without requiring explicitly defined processes.
Non-interference is a semantic program property that assigns confidentiality levels to data objects and prevents illicit information flows from high to low security levels. In this paper, we extend a certification tec...
详细信息
ISBN:
(纸本)9781479967179
Non-interference is a semantic program property that assigns confidentiality levels to data objects and prevents illicit information flows from high to low security levels. In this paper, we extend a certification technique for confidentiality of Java classes regarding non-interference, in order to consider objects and object aliasing. The technique is based on rewriting logic, which is efficiently implemented in the high-level programming language Maude. Starting from a previous Java abstract semantics specification written in Maude, we develop an information flow sensitive Java semantics that allows us to observe global non-interference properties, with object aliasing. In order to achieve a finite state transition system, we develop an abstract Java semantics that we use for secure and effective confidentiality analysis. We have implemented our methodology and developed some experiments that demonstrate the feasibility of our approach.
This paper presents DeCon, a declarative programming language for implementing smart contracts and specifying contract-level properties. Driven by the observation that smart contract operations and contract-level prop...
详细信息
ISBN:
(纸本)9781450394130
This paper presents DeCon, a declarative programming language for implementing smart contracts and specifying contract-level properties. Driven by the observation that smart contract operations and contract-level properties can be naturally expressed as relational constraints, DeCon models each smart contract as a set of relational tables that store transaction records. This relational representation of smart contracts enables convenient specification of contract properties, facilitates run-time monitoring of potential property violations, and brings clarity to contract debugging via data provenance. Specifically, a DeCon program consists of a set of declarative rules and violation query rules over the relational representation, describing the smart contract implementation and contract-level properties, respectively. We have developed a tool that can compile DeCon programs into executable Solidity programs, with instrumentation for run-time property monitoring. Our case studies demonstrate that DeCon can implement realistic smart contracts such as ERC20 and ERC721 digital tokens. Our evaluation results reveal the marginal overhead of DeCon compared to the open-source reference implementation, incurring 14% median gas overhead for execution, and another 16% median gas overhead for run-time verification.
This work extends the declarative sensornet programming model with automated program optimizations that attempt to minimize energy expenditure at various points in the communications stack.
ISBN:
(纸本)9781595939906
This work extends the declarative sensornet programming model with automated program optimizations that attempt to minimize energy expenditure at various points in the communications stack.
declarative models help improve the reliability of software systems: models can be used to convey requirements, analyze system designs and verify implementation properties. Alloy is a commonly used modeling language. ...
详细信息
ISBN:
(纸本)9781450385626
declarative models help improve the reliability of software systems: models can be used to convey requirements, analyze system designs and verify implementation properties. Alloy is a commonly used modeling language. A key strength of Alloy is the Analyzer, Alloy's integrated development environment (IDE), which allows users to write and execute models by leveraging a fully automatic SAT based analysis engine. Unfortunately, writing correct constraints of complex properties is *** help users identify fault locations, AlloyFL is a fault localization technique that takes as input a faulty Alloy model and a fault-revealing test suite. As output, AlloyFL returns a ranked list of locations from most to least suspicious. This paper describes our Java implementation of AlloyFL as an extension to the Analyzer. Our experimental results show AlloyFL is capable of detecting the location of real world faults and works in the presence of multiple faulty locations.
Failed computations are a frequent problem in software system development. Some failures have external reasons (e.g., missing files) that can be caught by exception handlers. Many other failures have internal reasons,...
详细信息
ISBN:
(纸本)9781450364416
Failed computations are a frequent problem in software system development. Some failures have external reasons (e.g., missing files) that can be caught by exception handlers. Many other failures have internal reasons, such as calling a partially defined operation with unintended arguments. In order to avoid the latter kind of failures, one can try to analyze the program at compile time for potential occurrences of these failures at run time. In this paper we present an approach to verify the absence of such failures in functional logic programs. Since programming with failures is a typical technique in logic programming, we are not interested to abandon partially defined operations at all. Instead, we want to verify conditions which ensure that operations can be executed without running into a failure. For this purpose, we propose to annotate operations with non-fail conditions that are verified at compile time with an SMT solver. For successfully verified programs, it is ensured that computations never fail provided that the non-fail condition of the main operation is satisfied.
Autograders - programs which run automated tests on student code submissions in order to judge functional correctness - are a useful way to provide immediate feedback to students on the quality of their work, and to r...
详细信息
ISBN:
(纸本)9781450394338
Autograders - programs which run automated tests on student code submissions in order to judge functional correctness - are a useful way to provide immediate feedback to students on the quality of their work, and to reduce the manual effort required to assign grades. Platforms such as Gradescope (***) are increasingly a critical type of infrastructure for CS courses, especially as enrollments grow. The declarative Autograder Framework (DAF) is an open source Ruby library intended to make autograders relatively easy to implement, by cleanly separating the concerns of what is tested from how that testing is carried out. It has been used successfully in several courses to autograde tens of thousands of code submissions for more than one thousand students.
暂无评论