Computing and Information Systems - Theses

Permanent URI for this collection

Search Results

Now showing 1 - 1 of 1
  • Item
    Thumbnail Image
    Dauphin A Programming Language for Statistical Signal Processing - from principles to practice
    Kyprianou, Ross ( 2018)
    This dissertation describes the design and implementation of a new programming language called Dauphin for the signal processing domain. Dauphin's focus is on the primitive concepts and algorithmic structures of signal processing. In this language, random variables and probability distributions are as fundamental and easy to use as the numeric types of other languages. The basic algorithms of signal processing --- estimation, detection, classification and so on --- become the standard function calls. Too much time is expended by researchers in re-writing these basic algorithms for each application. Dauphin allows you to code these algorithms directly, so they can be coded once and put into libraries for future use. Ultimately, Dauphin aims to extend the power of the researcher by allowing them to focus on the real problems and simplify the process of implementing their ideas. The first half of this dissertation describes Dauphin and the design issues of existing languages used for signal processing that motivated its development. It includes a general investigation into programming language design and the identification of specific design criteria that impact signal processing programming. These criteria directed the features in Dauphin that support writing signal processing algorithms. Of equal importance, the criteria also provide a means to compare, with some objectivity, the suitability of different languages for signal processing. Following the discussion on language design, Dauphin's features are described in detail, then details related to Dauphin's implementation are presented, including a description of Dauphin's semantics and type system. The second half of the dissertation presents practical applications of the Dauphin language, focussing on three broad areas associated with signal processing: classification, estimation and Monte Carlo methods. These non-trivial applications, combined with examples throughout the dissertation, demonstrate that Dauphin is simple and natural to use, easy to learn and has sufficient expressiveness for general programming in the signal processing domain.