When a programmer has determined that no more changes will be made to the program, the C or S options compact the object code or suppress the symbol table.
As seen in the example of output from COMPILE with the A option, the last opcode on each line is EOL, for End-Of-Line. When a program is fully debugged, a programmer might choose to compile it with the C option to suppress the EOL opcodes, since they are necessary only for debugging purposes. Thus the programmer can reduce the size of the object code by 1 byte for each line of source code. In the 8-line program ADDNUMS, only 8 bytes would be saved, but the C option could make a significant difference for a larger program.
The EOL opcodes, however, are used to count lines for error messages and for the interactive debugger. By using the C option, further debugging of the program becomes exceedingly difficult. If errors do occur in a program compiled with the C option, all errors will report on line 1, and the interactive debugger will be largely inoperable.
The compiler creates a symbol table along with the object code. The symbol table, along with any messages generated by the compiler, can be suppressed with the S option to COMPILE.
The symbol table is necessary for the mvBASIC interactive debugger, which is largely inoperable without it. However, a programmer can choose to suppress the symbol table when the program is fully debugged and ready for use.
See Using the mvBASIC Debugger for further discussion on this subject.
See Also
Option for Debugging a Program (X)