13 research outputs found
Rely-guarantee Reasoning about Concurrent Reactive Systems: The PiCore Framework, Languages Integration and Applications
The rely-guarantee approach is a promising way for compositional verification
of concurrent reactive systems (CRSs), e.g. concurrent operating systems,
interrupt-driven control systems and business process systems. However,
specifications using heterogeneous reaction patterns, different abstraction
levels, and the complexity of real-world CRSs are still challenging the
rely-guarantee approach. This article proposes PiCore, a rely-guarantee
reasoning framework for formal specification and verification of CRSs. We
design an event specification language supporting complex reaction structures
and its rely-guarantee proof system to detach the specification and logic of
reactive aspects of CRSs from event behaviours. PiCore parametrizes the
language and its rely-guarantee system for event behaviour using a
rely-guarantee interface and allows to easily integrate 3rd-party languages via
rely-guarantee adapters. By this design, we have successfully integrated two
existing languages and their rely-guarantee proof systems without any change of
their specification and proofs. PiCore has been applied to two real-world case
studies, i.e. formal verification of concurrent memory management in Zephyr
RTOS and a verified translation for a standardized Business Process Execution
Language (BPEL) to PiCore.Comment: Submission to ACM Transactions on Programming Languages and Systems
in 202
An operational approach to semantics and translation for concurrent programming languages
The problems of semantics and translation for concurrent
programming languages are studied in this thesis.
A structural operational approach is introduced to specify the
semantics of parallelism and communication. Using this approach,
semantics for the concurrent programming languages CSP (Hoare's
Communicating Sequential Processes), multitasking and exception
handling in Ada, Brinch-Hansen's Edison and CCS (Milner's Calculus
of Communicating Systems) are defined and some of their properties
are studied.
An operational translation theory for concurrent programming
languages is given. The concept of the correctness of a translation
is formalised, the problem of composing transitions is studied and a
composition theorem is proved. A set of sufficient conditions for
proving the correctness of a translation is given.
A syntax-directed translation from CSP to CCS is given and proved
correct. Through this example the proof techniques of this approach
is demonstrated. Finally, as an application of operational semantics
and translation, a proposal for implementing multitasking in Ada is
given via a two-step syntax-directed translation
A fault tolerant distributed computer control system
Imperial Users onl
Computer science: Key to a space program renaissance. The 1981 NASA/ASEE summer study on the use of computer science and technology in NASA. Volume 2: Appendices
Adoption of an aggressive computer science research and technology program within NASA will: (1) enable new mission capabilities such as autonomous spacecraft, reliability and self-repair, and low-bandwidth intelligent Earth sensing; (2) lower manpower requirements, especially in the areas of Space Shuttle operations, by making fuller use of control center automation, technical support, and internal utilization of state-of-the-art computer techniques; (3) reduce project costs via improved software verification, software engineering, enhanced scientist/engineer productivity, and increased managerial effectiveness; and (4) significantly improve internal operations within NASA with electronic mail, managerial computer aids, an automated bureaucracy and uniform program operating plans
The Proceedings of the 23rd Annual International Conference on Digital Government Research (DGO2022) Intelligent Technologies, Governments and Citizens June 15-17, 2022
The 23rd Annual International Conference on Digital Government Research theme is “Intelligent Technologies, Governments and Citizens”. Data and computational algorithms make systems smarter, but should result in smarter government and citizens. Intelligence and smartness affect all kinds of public values - such as fairness, inclusion, equity, transparency, privacy, security, trust, etc., and is not well-understood. These technologies provide immense opportunities and should be used in the light of public values. Society and technology co-evolve and we are looking for new ways to balance between them. Specifically, the conference aims to advance research and practice in this field.
The keynotes, presentations, posters and workshops show that the conference theme is very well-chosen and more actual than ever. The challenges posed by new technology have underscored the need to grasp the potential. Digital government brings into focus the realization of public values to improve our society at all levels of government. The conference again shows the importance of the digital government society, which brings together scholars in this field. Dg.o 2022 is fully online and enables to connect to scholars and practitioners around the globe and facilitate global conversations and exchanges via the use of digital technologies. This conference is primarily a live conference for full engagement, keynotes, presentations of research papers, workshops, panels and posters and provides engaging exchange throughout the entire duration of the conference
Design components
PhD ThesisAlthough it is generally recognised that formal modelling is crucial for ensuring
the correctness of software systems, some obstacles to its wider adoption in software
engineering persist. One of these is that its productivity is low; another that
for modelling techniques and tools to be used efficiently, a broad range of specific
skills is required. With the gap between computer performance and engineers’
productivity growing, there is a need to raise the level of abstraction at which development
is carried out and off-load much of the routine work done manually today
to computers. Formal modelling has all the characteristics required to replace
programming and offer higher productivity. Nonetheless, as a branch of software
engineering it has yet to be generally accepted. While there is substantial research
accumulated in systems analysis and verification, notmuch has been done to foster
higher productivity and efficiency of modelling activity.
This study puts forward an approach that allows the modeller to encapsulate
design ideas and experience in a reusable package. This package, called a design
component, can be used in differentways. While a design component is generally intended
for constructing a new design using an existing one, we base our approach
on a refinement technique. The design encapsulated in the design component is
injected into a formal development by formally refining an abstract model. This
process is completely automated: the design component is integrated by a tool,
with the corresponding correctness proofs also handled automatically.
To help us construct design components we consider a number of techniques
of transforming models and describing reusable designs. We then introduce the
concept ofmodel transformation to encapsulate syntactic rewrite rules used to produce
new models. To capture high-level design we introduce the pattern language
allowing us to build abstraction and refinement patterns from model transformations.
Patterns automate the formal development process and reduce the number
of proofs. To help the modeller plan and execute refinement steps, we introduce
the concept of themodelling pattern. A modelling pattern combines refinement (or
abstraction) patterns with modelling guidelines to form a complete design component
Design components
Although it is generally recognised that formal modelling is crucial for ensuring the correctness of software systems, some obstacles to its wider adoption in software engineering persist. One of these is that its productivity is low; another that for modelling techniques and tools to be used efficiently, a broad range of specific skills is required. With the gap between computer performance and engineers’ productivity growing, there is a need to raise the level of abstraction at which development is carried out and off-load much of the routine work done manually today to computers. Formal modelling has all the characteristics required to replace programming and offer higher productivity. Nonetheless, as a branch of software engineering it has yet to be generally accepted. While there is substantial research accumulated in systems analysis and verification, notmuch has been done to foster higher productivity and efficiency of modelling activity. This study puts forward an approach that allows the modeller to encapsulate design ideas and experience in a reusable package. This package, called a design component, can be used in differentways. While a design component is generally intended for constructing a new design using an existing one, we base our approach on a refinement technique. The design encapsulated in the design component is injected into a formal development by formally refining an abstract model. This process is completely automated: the design component is integrated by a tool, with the corresponding correctness proofs also handled automatically. To help us construct design components we consider a number of techniques of transforming models and describing reusable designs. We then introduce the concept ofmodel transformation to encapsulate syntactic rewrite rules used to produce new models. To capture high-level design we introduce the pattern language allowing us to build abstraction and refinement patterns from model transformations. Patterns automate the formal development process and reduce the number of proofs. To help the modeller plan and execute refinement steps, we introduce the concept of themodelling pattern. A modelling pattern combines refinement (or abstraction) patterns with modelling guidelines to form a complete design component.EThOS - Electronic Theses Online ServiceGBUnited Kingdo