Parsing and semantic modelling for software engineering applications

The ability to parse source code, in order to extract information from it, is an essential element of software engineering research and practice. However, serious practical difficulties often arise from factors such as ambiguities in standard grammars and inflexible parsing tools. For example, substantial changes to standard grammars may be needed in order to meet the limitations of parsing engines; this threatens the accuracy, completeness and consistency of the information available. Good parsing on its own is not enough: an inadequate semantic model limits the information available to tool builders. In our work, we have developed an approach to parsing and semantic modelling which addresses issues such as these. Our approach is based on a more flexible LR parser generator which includes the use of generalised LR (GLR) parsing to accommodate ambiguous grammars. This allows us to decouple syntactic and semantic analysis. In this paper, we present our parser generator, yakyacc, and our semantic model for Java, JST, and discuss the benefits of their use in software engineering research. The resulting parsers may be used in a variety of contexts, either as the basis for integrated applications or as components in an application pipeline containing a number of other tools. We illustrate the benefits of our approach with representative examples from two of our current software engineering research projects.

[1]  Neville Churcher,et al.  Modelling and Measuring Collaborative Software Engineering , 2005, ACSC.

[2]  David Spector,et al.  Full LR(1) parser generation , 1981, SIGP.

[3]  Ben Shneiderman,et al.  Tree-maps: a space-filling approach to the visualization of hierarchical information structures , 1991, Proceeding Visualization '91.

[4]  Karl J. Lieberherr,et al.  Assuring good style for object-oriented programs , 1989, IEEE Software.

[5]  Neville Churcher,et al.  A Generated Parser of C , 2001 .

[6]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[7]  Neville Churcher,et al.  Object oriented metrics: precision tools and configurable visualisations , 2003, Proceedings. 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry (IEEE Cat. No.03EX717).

[8]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[9]  Neville Churcher,et al.  Visualising Class Cohesion with Virtual Worlds , 2003, InVis.au.

[10]  Neville Churcher,et al.  Inhomogeneous Force-Directed Layout Algorithms in the Visualisation Pipeline: From Layouts to Visualisations , 2004, InVis.au.

[11]  Paul Strooper Proceedings of the 2005 Australian Software Engineering Conference , 2004 .

[12]  Neville Churcher,et al.  Towards synchronous collaborative software engineering , 2004, 11th Asia-Pacific Software Engineering Conference.

[13]  Donald E. Knuth,et al.  An empirical study of FORTRAN programs , 1971, Softw. Pract. Exp..

[14]  Brian Henderson-Sellers,et al.  Object-oriented metrics: measures of complexity , 1995 .

[15]  Shari Lawrence Pfleeger,et al.  Software metrics (2nd ed.): a rigorous and practical approach , 1997 .

[16]  Arthur J. Riel,et al.  Object-Oriented Design Heuristics , 1996 .

[17]  Peter Eades,et al.  A Heuristic for Graph Drawing , 1984 .

[18]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[19]  Brian Henderson-Sellers,et al.  Coupling and cohesion (towards a valid metrics suite for object-oriented analysis and design) , 1996, Object Oriented Syst..

[20]  Neville Churcher,et al.  Virtual Worlds for Software Visualisation , 1999 .

[21]  Neville Churcher,et al.  An extensible framework for collaborative software engineering , 2003, Tenth Asia-Pacific Software Engineering Conference, 2003..

[22]  Neville Churcher,et al.  Informing the Design of Pipeline-Based Software Visualisations , 2005, APVIS.

[23]  David Pager,et al.  A practical general method for constructing LR(k) parsers , 1977, Acta Informatica.

[24]  Neville Churcher,et al.  XML in the Visualisation Pipeline , 2001, VIP.

[25]  Jarke J. van Wijk,et al.  Botanical visualization of huge hierarchies , 2001, IEEE Symposium on Information Visualization, 2001. INFOVIS 2001..

[26]  David Spector,et al.  Efficient full LR(I) parser generation , 1988, SIGP.

[27]  Martin Hitz,et al.  Chidamber & Kemerer's Metrics Suite: a Measurement Theory Perspective , 1996 .

[28]  Neville Churcher,et al.  Building Virtual Worlds with the Big-Bang Model , 2001, InVis.au.

[29]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[30]  Masaru Tomita,et al.  Efficient parsing for natural language , 1985 .

[31]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[32]  Rikk Carey,et al.  The annotated VRML 2.0 reference manual , 1997 .

[33]  Neville Churcher,et al.  Comments on "A Metrics Suite for Object Oriented Design" , 1995, IEEE Trans. Software Eng..

[34]  Murray Hill,et al.  Yacc: Yet Another Compiler-Compiler , 1978 .

[35]  Martin J. Shepperd,et al.  Towards a conceptual framework for object oriented software metrics , 1995, SOEN.