James F. Power’s research while affiliated with National University of Ireland, Maynooth and other places

What is this page?


This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.

Publications (127)


Building Specifications in the Event-B Institution: A Summary
  • Chapter

May 2023

·

10 Reads

·

1 Citation

Lecture Notes in Computer Science

·

·

James F. Power

This “journal-first” paper summarises a publication by the same authors in the journal Logical Methods in Computer Science which describes a formal semantics for the Event-B specification language using the theory of institutions. It defines an institution for Event-B and shows how the constructs of the Event-B specification language can be mapped into our institution. This algebraic semantics distinguishes three constituent sub-languages of Event-B: the superstructure, infrastructure and mathematical languages. An important impact of this work is that our semantics provides access to the generic modularisation constructs available in institutions, including specification-building operators for parameterisation and refinement. We demonstrate how these features subsume and enhance the corresponding features already present in Event-B through a detailed study of their use in a worked example. Further benefits of the institutional approach are its provision for mathematically definable interoperability to facilitate heterogeneous specification.KeywordsEvent-BSemanticsModularisationInteroperability


Figure 20: The shared variable decomposition of machine M into submachines M1 and M2. Here we wish to partition machine M into two sets of events, as shown by the dotted line.
Figure 22: The shared event decomposition of machine M into submachines M1 and M2. Here we wish to partition machine M into two sets of variables, as shown by the dotted line.
Building Specifications in the Event-B Institution
  • Article
  • Full-text available

November 2022

·

32 Reads

·

6 Citations

Logical Methods in Computer Science

This paper describes a formal semantics for the Event-B specification language using the theory of institutions. We define an institution for Event-B, EVT, and prove that it meets the validity requirements for satisfaction preservation and model amalgamation. We also present a series of functions that show how the constructs of the Event-B specification language can be mapped into our institution. Our semantics sheds new light on the structure of the Event-B language, allowing us to clearly delineate three constituent sub-languages: the superstructure, infrastructure and mathematical languages. One of the principal goals of our semantics is to provide access to the generic modularisation constructs available in institutions, including specification-building operators for parameterisation and refinement. We demonstrate how these features subsume and enhance the corresponding features already present in Event-B through a detailed study of their use in a worked example. We have implemented our approach via a parser and translator for Event-B specifications, EBtoEVT, which also provides a gateway to the Hets toolkit for heterogeneous specification.

Download

Figure 20: The shared variable decomposition of machine M into submachines M1 and M2. Here we wish to partition machine M into two sets of events, as shown by the dotted line.
Figure 22: The shared event decomposition of machine M into submachines M1 and M2. Here we wish to partition machine M into two sets of variables, as shown by the dotted line.
Building Specifications in the Event-B Institution

March 2021

·

58 Reads

This paper describes a formal semantics for the Event-B specification language using the theory of institutions. We define an institution for Event-B, EVT, and prove that it meets the validity requirements for satisfaction preservation and model amalgamation. We also present a series of functions that show how the constructs of the Event-B specification language can be mapped into our institution. Our semantics sheds new light on the structure of the Event-B language, allowing us to clearly delineate three constituent sub-languages: the superstructure, infrastructure and mathematical languages. One of the principal goals of our semantics is to provide access to the generic modularisation constructs available in institutions, including specification-building operators for parameterisation and refinement. We demonstrate how these features subsume and enhance the corresponding features already present in Event-B through a detailed study of their use in a worked example. We have implemented our approach via a parser and translator for Event-B specifications, EBtoEVT, which also provides a gateway to the Hets toolkit for heterogeneous specification.



Quantifying Activity and Collaboration Levels in Programming Assignments

July 2019

·

22 Reads

·

1 Citation

This paper presents an experience report from a third-year undergraduate compiler design course that is taught as part of a four year computer science degree. We analyse data from a study of practical assignments, evaluated in the context of take-home formative assignments and a supervised summative examination. We implement metrics to quantify the degrees of similarity between submissions for programming assignments, as well as measuring the level of activity. We present the results of our study, and discuss the utility of these metrics for our teaching practice.


An empirical analysis of the transition from Python 2 to Python 3

April 2019

·

383 Reads

·

31 Citations

Empirical Software Engineering

Python is one of the most popular and widely adopted programming languages in use today. In 2008 the Python developers introduced a new version of the language, Python 3.0, that was not backward compatible with Python 2, initiating a transitional phase for Python software developers. In this paper, we describe a study that investigates the degree to which Python software developers are making the transition from Python 2 to Python 3. We have developed a Python compliance analyser, PyComply, and have analysed a previously studied corpus of Python applications called Qualitas. We use PyComply to measure and quantify the degree to which Python 3 features are being used, as well as the rate and context of their adoption in the Qualitas corpus. Our results indicate that Python software developers are not exploiting the new features and advantages of Python 3, but rather are choosing to retain backward compatibility with Python 2. Moreover, Python developers are confining themselves to a language subset, governed by the diminishing intersection of Python 2, which is not under development, and Python 3, which is under development with new features being introduced as the language continues to evolve. © 2018 Springer Science+Business Media, LLC, part of Springer Nature


Grammar engineering for multiple front-ends for Python: Grammar Engineering in Practice

December 2018

·

117 Reads

Software Practice and Experience

In this paper, we describe our experience in grammar engineering to construct multiple parsers and front ends for the Python language. We present a metrics‐based study of the evolution of the Python grammars through the multiple versions of the language in an effort to distinguish and measure grammar evolution and to provide a basis of comparison with related research in grammar engineering. To conduct this research, we have built a toolkit, pygrat, which builds on tools developed in other research. We use pygrat to build a system that automates much of the process needed to translate the Python grammars from EBNF to a formalism acceptable to the bison parser generator. We exploit the suite of Python test cases, used by the Python developers, to validate our parser generation. Finally, we describe our use of the menhir parser generator to facilitate the parser and front‐end construction, eliminating some of the transformations and providing practical support for grammar modularisation.


Formalised EMFTVM bytecode language for sound verification of model transformations

October 2018

·

199 Reads

·

5 Citations

Software and Systems Modeling

Model-driven engineering is an effective approach for addressing the full life cycle of software development. Model transformation is widely acknowledged as one of its central ingredients. With the increasing complexity of model transformations, it is urgent to develop verification tools that prevent incorrect transformations from generating faulty models. However, the development of sound verification tools is a non-trivial task, due to unimplementable or erroneous execution semantics encoded for the target model transformation language. In this work, we develop a formalisation for the EMFTVM bytecode language by using the Boogie intermediate verification language. It ensures the model transformation language has an implementable execution semantics by reliably prototyping the implementation of the model transformation language. It also ensures the absence of erroneous execution semantics encoded for the target model transformation language by using a translation validation approach.


An Institution for Event-B

December 2017

·

37 Reads

·

17 Citations

Lecture Notes in Computer Science

This paper presents a formalisation of the Event-B formal specification language in terms of the theory of institutions. The main objective of this paper is to provide: (1) a mathematically sound semantics and (2) modularisation constructs for Event-B using the specification-building operations of the theory of institutions. Many formalisms have been improved in this way and our aim is thus to define an appropriate institution for Event-B, which we call EVT\mathcal {EVT}. We provide a definition of EVT\mathcal {EVT} and the proof of its satisfaction condition. A motivating example of a traffic-light simulation is presented to illustrate our approach.



Citations (70)


... The last two stages (similarity confirmation and investigation) require human intervention, and their accuracy and completion time are heavily affected by the number of false positives generated by the tool; that is, student submissions that are marked as suspicious when they have not actually been copied. This number can be high if the tool's preprocessing nullifies too much program variation while the assessments are too simple, as in first-year courses [14,20]; when they use a restrictive programming language, such as SQL [27] or Verilog [44]; or when they incorporate common 'starter code' provided for them to use [3]. ...

Reference:

Choosing Code Segments to Exclude from Code Similarity Detection
Calibration and Analysis of Source Code Similarity Measures for Verilog Hardware Description Language Projects
  • Citing Conference Paper
  • February 2020

... In this research work, Python 3.8.5 is used. Python is known for being simple to read and write, allowing developers to work faster and more efficiently integrate systems [58]. The tool used for coding is Jupyter Notebook. ...

An empirical analysis of the transition from Python 2 to Python 3

Empirical Software Engineering

... In addition, we have implemented an eb2evt translator tool that transforms Event-B specifications that have been developed using the Rodin Platform into specifications over the EVT institution. We have used this to validate our semantic definitions, and to provide interoperability with the existing large corpus of specifications available in this format [FMP17c]. ...

An Institution for Event-B
  • Citing Chapter
  • December 2017

Lecture Notes in Computer Science

... Due to the lack of behavioral semantics of Event-B itself, the researchers proposed to use CSP as the behavioral semantic model of Event-B to facilitate the expression of the sequence of events in the Event-B model. It can also ensure its behavior refinement while using Event-B's own refinement mechanism to ensure action refinement [4], [5]. In addition, due to the similarity of the invalidation-divergence semantics between CSP and Event-B, CSP is also used as the behavior refinement framework of Event-B to ensure that behavioral VOLUME 10, 2022 This work is licensed under a Creative Commons Attribution 4.0 License. ...

Combining Event-B and CSP: An Institution Theoretic Approach to Interoperability
  • Citing Conference Paper
  • October 2017

Lecture Notes in Computer Science

... Our approach, using simple syntactic features and gradient-boosted tree models, improves on the baseline synthesizer by over 26% on training and testing sets in the best iteration, and solves benchmarks that are out of reach of state-of-the-art synthesis tools. In future work, we will exploit our new data to investigate the application of other data-dependent machine learning methods to the SyGuS domain, for instance, algorithm selection and run-time prediction (Healy, Monahan, and Power 2016), and we hope that others will do the same. ...

Predicting SMT Solver Performance for Software Verification

Electronic Proceedings in Theoretical Computer Science

... to instantiate the new element specifying the value of its attributes (line 11). The links section contains standard Gallina code to instantiate links outgoing from the new element (lines [14][15][16][17]. ...

Formalised EMFTVM bytecode language for sound verification of model transformations

Software and Systems Modeling

... Healy et al. [24] conducted a solver portfolio for the Why3 platform [4]. The solver selection was done via decision trees which predicted the anticipated runtime of a proof obligation for each solver, and choosing the fastest one. ...

Evaluating the use of a general-purpose benchmark suite for domain-specific SMT-solving
  • Citing Conference Paper
  • April 2016

... Among the main formal methods for software verification, the application of theorem proving to transformation verification has been very limited. Automated theorem proving for MTs has shown its effectiveness for simple transformations and/or correctness properties (Büttner, Egea, Cabot, & Gogolla 2012;Cheng et al. 2015;Oakes et al. 2015). On the other hand, arbitrarily complex transformations and properties may require interactive theorem proving, that is generally very time consuming, and necessitates an expertise that typically transformation experts do not have. ...

A Sound Execution Semantics for ATL via Translation Validation
  • Citing Conference Paper
  • July 2015

Lecture Notes in Computer Science

... vkey125 is a GUI application that uses the V GUI library [43], a multi-platform C++ graphical interface framework to facilitate construction of GUI applications. ISOclauses is a suite of 428 C++ programs gleaned from the ISO C++ standard, and previously used to measure the conformance of C++ compilers [26]. Apart from the small, intricate examples in ISOclauses, all of the test cases are complete applications, except for three that use large libraries: ep matrix, vkey125 and graphdraw use the NTL, V GUI and IV Tools libraries respectively. ...

C++ compilers & ISO conformance
  • Citing Article
  • November 2003

Doctor Dobbs Journal