Давайте создадим компилятор!   ::   Креншоу Джек

Страница: 340 из 382

Хорошая сторона модулей в том, что как и с объектами мы можем делать код модуля таким простым или таким сложным как нам угодно. До тех пор, пока интерфейс, встроенный в общедоступные процедуры и предсказывающий символ не изменяются, остальная часть программы абсолютно незатрагивается. И так как модули компилируются, а не просто включаются, время необходимое для связывания их вместе практически равно нулю. Снова, результат таков, что мы можем получить все преимущества сложной реализации без необходимости возиться с кодом как лишним багажом.

В следующих главах я предполагаю предоставить полноценный IDE для компилятора KISS используя настоящее Windows приложение, сгенерированное с помощью среды разработки Borland OWL. Сейчас, тем не менее, мы удовлетворим мое первое правило: Делать Это Проще.

МОДУЛЬ OUTPUT



Конечно, каждая приличная программа должна выводить результат и наша не исключение. Наши подпрограммы вывода включают функции Emit. Код для соответствующего модуля показан дальше:



{–}

unit Output;

{–}

interface

procedure Emit(s: string); { Emit an instruction }

procedure EmitLn(s: string); { Emit an instruction line }

{–}

implementation

const TAB = ^I;

{–}

{ Emit an Instruction }

procedure Emit(s: string);

begin

Write(TAB, s);

end;

{–}

{ Emit an Instruction, Followed By a Newline }

procedure EmitLn(s: string);

begin

Emit(s);

WriteLn;

end;

end.

{–}



(Заметьте, что этот модуль не имеет раздела инициализации, так что он не требует блока begin.

|< Пред. 338 339 340 341 342 След. >|

Java книги

Контакты: [email protected]