Dr. Andrew Broad
Computer Science
PhD Project
Source Code

The Java source code for the Code-Understanding System (CCUS) and the Comparative Code-Understanding System (CCUS) is included here for reference. It is intended for browsing only - it cannot be compiled and run, because it uses Jex (package jex), a MINT Group internal EXPRESS parser.

Also included here is the source code for the underlying frame system upon which the CUS and CCUS are built. This serves as a `buffer' between Jex and the CUS/CCUS, and provides a data-driven environment in which objects are represented as frames.


The Frame System

These classes form the underlying frame system upon which the CUS and CCUS are built. They provide a data-driven, object-centric environment (which could, in fact, be used as a substratum for other systems).

FIL.jj is a parser for my Frame-Instance Language (FIL), written in JavaCC.

Basic objects in the frame system Exceptions Converting Jex objects to frames

FIL_J.jj is a JavaCC parser for FIL-J, a variant of FIL for converting Java objects to frames in a data-driven manner.

jex_to_frames.filj is a FIL-J specification of how to convert Jex objects for frames (FIL-J is not expressive enough to convert all Jex objects to frames - the rest are hard-wired into JexToFrames).


The Code-Understanding System (CUS)

The CUS extracts higher-level constraints (HLCs) from a given EXPRESS model. ExpressCUS is the class containing the main function for the EXPRESS CUS; work also started on a Java CUS, which has a corresponding class JavaCUS.

Main objects in the CUS

The CUS uses a case-based reasoning (CBR) engine to extract HLCs from code-fragments. FIL_C.jj is a JavaCC parser for FIL-C, a variant of FIL for representing cases.

The CBR Engine

The Comparative Code-Understanding System (CCUS)

The CCUS compares two EXPRESS models, extracting and comparing HLCs to resolve the differences it encounters at the code level. CCUS is the class containing the main function.

Exception
Email me