A Purely Functional Combinator Language for Software Quality Assessment

Quality assessment of open source software is becoming an important and active research area. One of the reasons for this recent interest is the consequence of Internet popularity. Nowadays, programming also involves looking for the large set of open source libraries and tools that may be reused when developing our software applications. In order to reuse such open source software artifacts, programmers not only need the guarantee that the reused artifact is certified, but also that independently developed artifacts can be easily combined into a coherent piece of software. In this paper we describe a domain specific language that allows programmers to describe in an abstract level how software artifacts can be combined into powerful software certification processes. This domain specific language is the building block of a web-based, open-source software certification portal. This paper introduces the embedding of such domain specific language as combinator library written in the Haskell programming language. The semantics of this language is expressed via attribute grammars that are embedded in Haskell, which provide a modular and incremental setting to define the combination of software artifacts.

[1]  Luís Soares Barbosa,et al.  Implementation of an Orchestration Language as a Haskell Domain Specific Language , 2009, FOCLASA.

[2]  S. Doaitse Swierstra,et al.  Higher order attribute grammars , 1989, PLDI '89.

[3]  Simon L. Peyton Jones,et al.  Concurrent Haskell , 1996, POPL '96.

[4]  João Saraiva,et al.  Lrc - A Generator for Incremental Language-Oriented Tools , 1998, International Conference on Compiler Construction.

[5]  João Saraiva,et al.  Designing and Implementing Combinator Languages , 1998, Advanced Functional Programming.

[6]  João Saraiva,et al.  Tools and libraries to model and manipulate circular programs , 2007, PEPM '07.

[7]  Simon L. Peyton Jones,et al.  Scrap your boilerplate: a practical design pattern for generic programming , 2003, TLDI '03.

[8]  Jayadev Misra,et al.  The Orc Programming Language , 2009, FMOODS/FORTE.

[9]  Joao Paulo Saraiva,et al.  Purely Functional Implementation of Attribute Grammars , 1999 .

[10]  João Saraiva,et al.  Strictification of circular programs , 2011, PEPM '11.

[11]  Donald E. Knuth,et al.  Semantics of context-free languages , 1968, Mathematical systems theory.

[12]  João Saraiva,et al.  Data Structure Free Compilation , 1999, CC.

[13]  Michael D. Adams Scrap your zippers: a generic zipper for heterogeneous types , 2010, WGP '10.

[14]  Gérard P. Huet,et al.  The Zipper , 1997, Journal of Functional Programming.

[15]  João Saraiva,et al.  A shortcut fusion rule for circular program calculation , 2007, Haskell '07.