PLanCompS: Programming Language Components and Specifications

Lead Research Organisation: Royal Holloway University of London
Department Name: Computer Science

Abstract

Abstracts are not currently available in GtR for all funded research. This is normally because the abstract was not required at the time of proposal submission, but may be because it included sensitive information such as personal details.

Publications

10 25 50
publication icon
Scott E (2019) Derivation representation using binary subtree sets in Science of Computer Programming

publication icon
Van Binsbergen L (2019) Executable component-based semantics in Journal of Logical and Algebraic Methods in Programming

publication icon
Scott E (2013) GLL parse-tree generation in Science of Computer Programming

publication icon
Van Binsbergen L (2018) GLL parsing with flexible combinators

publication icon
Scott E (2018) GLL syntax analysers for EBNF grammars in Science of Computer Programming

publication icon
Johnstone A (2014) Modular grammar specification in Science of Computer Programming

publication icon
Scott E (2023) Multiple Input Parsing and Lexical Analysis in ACM Transactions on Programming Languages and Systems

publication icon
Johnstone A (2015) Principled software microengineering in Science of Computer Programming

 
Description This research has shown that formally specified 'Fundamental Constructs' may be used to define the meaning (or 'semantics') of programming languages by software engineers who lack detailed training in formal semantics. A significant result is that we now have a quite-high language in which to discuss the implementation of programming language processors which is quite easy to understand, yet which may be expanded into a fully formal semantics with unambiguous mathematical foundations.

The project also made advances in syntax analysis of programming languages, demonstrating the practicality of a new algorithm called GLL. Within the project, new variants of GLL. These ideas have now been taken up within the software engineering community, where syntax analysis is used to help find insecure code idioms and to measure code quality.
Exploitation Route We shall ourselves move forward with tooling designed to be used by typical software engineers which allows straightforward construction of simple languages and deeper analysis of new programming language constructs in the context of existing languages.

We also expect other groups, some affiliated with this project, to implement these fundamental constructs as an abstraction layer within their formal semantics systems.

Advances have also been made in generalised parsing: in particular we have developed a new method for capturing all possible lexicalisations of a string without requiring a parser to operate at character level (which can be very inefficient). This work is presently being prepared for publication; the PhD student attached to the project has just received his award on the basis of this work.

We expect these tools to significantly improve the productivity and reliability of system design based on Domain Specific Languages, and Meta-Model Driven Design. Our overall hope is that in the future all new language designs will be prototyped using formal specification, and that small Domain Specific Languages will be directly executable from such concise specifications. This will resolve a difficult software maintenance problem since modifying language processors is presently widely felt to be a difficult task.
Sectors Digital/Communication/Information Technologies (including Software),Electronics

URL http://plancomps.org/
 
Description The tooling developed within this project has been used to implement the software for Leverhulme Project Grant 'Notions and Notations: Babbage's Language of Thought'. This project has featured in a BBC documentary on Ada Lovelace, and in the Ada 200 symposium at Oxford in December 2015. The Plan-28 project also hopes to make use of this material - see their blog at http://blog.plan28.org/2015/03/progress-on-understanding-babbages.html and video from the Ada symposium at https://podcasts.ox.ac.uk/series/ada-lovelace-symposium-celebrating-200-years-computer-visionary (item 15). In the software engineering domain, generalised parsing is now achieving widespread traction for software metrics, trait detection and testing. In all of these areas we see evidence that GLL parsing, as developed within this award and as part of an ongoing research effort, is the algorithm of choice. As evidence we note (1) the keynote speaker at the 2019 Software Language Engineering in Athens who noted these developments as part of a broad review of the field; (2) the development of GLL parsing framework for the Rust language (https://github.com/rust-lang/gll) which we are told is used as part of the Rust developers grammar tests, (3) the use of GLL parsing within the Sonarsource toolkit (https://blog.sonarsource.com/whats-coming-up-for-sonarqube-in-2014 and http://sonarqube-archive.15.x6.nabble.com/SonarSource-is-looking-for-talented-developers-td5027059.html) Sonarsource builds tools to measure code quality and security in software systems composed from disparate languages and dialects. Generalised parsing is an enabling technology for them. Their toolkit is widely used by many major companies: https://www.sonarsource.com/customers/
First Year Of Impact 2014
Sector Creative Economy,Digital/Communication/Information Technologies (including Software),Education
Impact Types Cultural

 
Description TU/e research partnership 
Organisation Eindhoven University of Technology
Country Netherlands 
Sector Academic/University 
PI Contribution Joint supervision of students; development of new theory; joint publications
Collaborator Contribution Joint supervision of students; development of new theory; joint publications
Impact Joint papers (see portfolio). Joint submission of EU Marie Curie proposal (unsuccessful)
 
Title ART translator generator tool 
Description ART is a generalised parser generator which implements the GLL algorithm in its various forms. It is under active development; thevfirst full release (as opposed to beta releases used by our immediate collaboarators in Eindhoven and Swansea) will be in 2014. 
Type Of Technology Software 
Year Produced 2013 
Open Source License? Yes  
Impact ART has been used in a prototype model-based engineering tool under development in Eindhoven, and in use by their commercial collaborators (company confidential).