• No results found

Innovation Justification

5. Prototype Platform Evaluation

6.3. Innovation Justification

This subsection will now justify the claim of innovation presented previously in Section 6.1, and repeated here for convenience:

The integration of PHP scripting with programmer-level XML source code descriptions for the autocoding process, providing user customisation of code formatting, identifier naming, and dynamic autocoding functionality.

The justification will focus on the two main aspects of innovation: Successful Exploitation (Section 6.3.1) and Originality (Section 6.3.2).

6.3.1.

Successful Exploitation

The evaluation described in Section 5 and presented fully in Submission 6, implemented a case study that tested out the autocoding method developed on a real application. The case study showed that the autocoding method can be used successfully to implement a powerful and effective autocoding application.

Due to the proper design, implementation, and testing stages performed, the project has not only developed and proved the autocoding method used; it has also resulted in a fully functional autocoding platform. In the platform’s current state, it can be used immediately by Rapicore to replace the XSLT-based method currently used by NetGen for their internal autocoding requirements. Once the platform has been integrated, the additional functionality and benefits the new platform provides to the various users of the system are summarised in Table 18.

Users Identifier naming customisation Code formatting customisation

Language, compiler, and target selection User configuration portability

Process status and feedback

Individual options for each generation

Multiple application management and selection (including information on each application)

Robust and reliable output

Support for any application complexity level Developer Full computational ability

Large library support

C-styled programming through PHP Variable and constant support OOP development

Cross template variable support Pre-processing calculations

Basic and advanced application support

Autonomous naming and formatting processing (advanced applications) Rapicore Use of the platform with other tools through Host GUI component

Features that exceed those currently available in other tools Plenty of scope for expandability

Cost effective through the use of open source software Cross-platform compatibility

Table 18 - Prototype autocoding platform benefits

At the time of writing, Rapicore is already planning on porting the autocoding applications currently implemented using XSLT to the new XML and PHP-based method for internal code generation applications. The company is also planning to use the autocoding platform for other tools in addition to NetGen, for example, the use of the platform as a standalone autocoder for generating signal-based API stacks that link in with a standardised Hardware Abstraction Layer (HAL) interface.

To summarise, the autocoding method has/will successfully:

• Solved the issues with the XSLT-based method;

• Provided additional functionality and features;

• Generate customised source code to meet the user’s development requirements;

6.3.2.

Originality

This subsection will discuss the originality of the autocoding method proposed in this report. Although there is a single claim of innovation that consists of both PHP and XML code descriptions, for the purposes of this discussion the originality of the XML code descriptions and the integration of PHP will be justified individually.

6.3.2.1. XML Code Description

The use of XML to describe source code in itself is not a new concept. However, it is claimed that the use of programmer-level XML source code descriptions for the autocoding process, and its use to generate custom formatted and styled source code has not been done before.

There are a number of methods which use XML to represent source code for the purposes of compiler implementations. These use XML to create an Abstract Syntax Tree (AST) and/or Abstract Syntax Graph (ASG) which are then used by the compilers to generate the required machine code. Such languages include GXL [44], CppML [45], ATerms [46], and Harmonia [47]. However, unlike the use of these in the platform, these representations are intended as data exchange languages or for displaying program structural information. An AST typically represents small grammatical aspects of the source code rather than representing programming-level constructs directly; therefore these methods are not appropriate for autocoding applications.

The most closely related works to the research and developments presented in this report are srcML [48] and JavaML [49]. These use XML source code descriptions primarily for the analysis of source code using the abundance of XML tools and

techniques available. The emphasis with srcML is in combining text with both structural and textural information of the source code. The aim has also been to preserve semantic information from the source code, such as code formatting (the opposite to the purpose used in the platform).

JavaML is similar to srcML and is aimed at describing Java source code in particular. Unlike srcML, JavaML discards formatting information. The XML documents are then used with an XSLT template to display the source code to the user. Again, the focus of the work here seems to be on source code analysis; not on source code generation.

It is also believed that the autocoding method implemented by the platform provides the most customisable level of source code of the other tools researched during the literature review (Section 2). Unlike the other tools, the method is able to customise the code’s formatting down to the expression level, and provides full customisation of the identifiers used – features not found in other tools.

6.3.2.2. PHP Scripting

Through the literature review, it was found that no other autocoding tool available uses PHP for the autocoding process; let alone the integration of PHP with XML code descriptions. The languages that were used included: XSLT, TLC (Mathworks), C#, JScript.NET, VB.NET. A number of tools can generate PHP script; but none were found that used the language for the autocoding process itself.

PHP was selected in particular, based on a set of defined requirements that were believed to best suit the autocoding process based on the issues identified with XSLT

and past experience (Section 4.1). What has been proven in this project is that PHP can be used successfully to develop an autocoding platform and for performing the dynamic autocoding processing required. There is no evidence to suggest that this method has been researched or commercially exploited prior to this project.

Related documents