A Pattern-based Foundation for Language-Driven Software Engineering

Reichert, Tim (2011) A Pattern-based Foundation for Language-Driven Software Engineering. Doctoral thesis, Northumbria University.

[img]
Preview
Text (PhD thesis)
reichert.tim_phd.pdf

Download (2MB) | Preview

Abstract

This work brings together two fundamental ideas for modelling, programming and analysing software systems. The first idea is of a methodological nature: engineering software by systematically creating and relating languages. The second idea is of a technical nature: using patterns as a practical foundation for computing. The goal is to show that the systematic creation and layering of languages can be reduced to the elementary operations of pattern matching and instantiation and that this pattern-based approach provides a formal and practical foundation for language-driven modelling, programming and analysis.

The underpinning of the work is a novel formalism for recognising, deconstructing, creating, searching, transforming and generally manipulating data structures. The formalism is based on typed sequences, a generic structure for representing trees. It defines basic pattern expressions for matching and instantiating atomic values and variables. Horizontal, vertical, diagonal and hierarchical operators are different ways of combining patterns. Transformations combine matching and instantiating patterns and they are patterns themselves. A quasiquotation mechanism allows arbitrary levels of meta-pattern functionality and forms the basis of pattern abstraction. Path polymorphic operators are used to specify fine-grained search of structures. A range of core concepts such as layering, parsing and pattern-based computing can naturally be defined through pattern expressions.

Three language-driven tools that utilise the pattern formalism showcase the applicability of the pattern-approach. Concat is a self-sustaining (meta-)programming system in which all computations are expressed by matching and instantiation. This includes parsing, executing and optimising programs. By applying its language engineering tools to its own meta-language, Concat can extend itself from within. XMF (XML Modeling Framework) is a browser-based modelling- and meta-modelling framework that provides flexible means to create and relate modelling languages and to query and validate models. The pattern functionality that makes this possible is partly exposed as a schema language and partly as a JavaScript library. CFR (Channel Filter Rule Language) implements a language-driven approach for layered analysis of communication in complex networked systems. The communication on each layer is visible in the language of an “abstract protocol” that is defined by communication patterns.

Item Type: Thesis (Doctoral)
Uncontrolled Keywords: Programming language design, pattern matching, meta-programming, modeling, network analysis
Subjects: G400 Computer Science
G600 Software Engineering
Department: Faculties > Engineering and Environment > Mathematics, Physics and Electrical Engineering
University Services > Graduate School > Doctor of Philosophy
Related URLs:
Depositing User: Ellen Cole
Date Deposited: 21 Dec 2011 16:53
Last Modified: 05 Oct 2022 17:30
URI: https://nrl.northumbria.ac.uk/id/eprint/4385

Actions (login required)

View Item View Item

Downloads

Downloads per month over past year

View more statistics