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.
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 systemFIL_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 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 CUSThe 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 EngineThe 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.