The new system we created implements a new Macro COSY environment. It is run
on the SUN workstation under the UNIX operating system. The work was under the
direction of Dr Lauer. The system consists of four main processors.
They are LEXCICAL ANALYZER which translates
a COSY program from a string into a token list, PARSER which uses the token
list to produce a syntax tree according to the Macro COSY grammar, CSR CHECKER
which checks whether the syntax tree satisfies all context-sensitive
restrictions, and EXPANDER which expands the Macro COSY program from its
corresponding syntax tree into a string which is in the form of a Basic COSY
program. We also have a DISPLAYER which displays the expanded Macro COSY
program on the screen with a good looking style.
From this project, we have learned a lot of things especially in system design
using SML and the expansion of the Macro COSY programs. The functional
programming language Standard ML of New Jersey provides a series of useful
and convenient mechanisms such as functions, module facilities and polymorphic
types to aid us to create the system easily. Because of its strong type
checking system, we can easily to find out bugs when the program has some
problem. Its module facilities allow us to divide this large system into parts.
Before combining these parts together, we can test these parts individually.
This reduces the program development time as well as improve the
reliability of the program.
Due to time constraints, we did not expend a lot of effort on making the program more efficient. When we compile the system, it will take more than half an hour to finish it. This should be improved in the future. We also found some rules which seem redundant during testing. After we comment out those parts of rules(see sections 3.2 and 3.3), the system still can expand the existing examples. We will leave this problem to the reader.