Книга: Давайте создадим компилятор!
Компромисс
Компромисс
Теперь, когда мы знаем как работать с точками с запятой, означает ли это, что я собираюсь поместить их в KISS/TINY? И да и нет. Мне нравится дополнительный сахар и защита, которые приходят с уверенным знанием, где заканчиваются утверждения. Но я не изменил своей антипатии к ошибкам компиляции, связанным с точками с запятой.
Так что я придумал хороший компромис: сделаем их необязательными!
Рассмотрите следующую версию Semi:
{–}
{ Match a Semicolon }
procedure Semi;
begin
if Token = ';' then Next;
end;
{–}
Эта процедура будет принимать точку с запятой всякий раз, когда вызвана, но не будет настаивать на ней. Это означает, что когда вы решите использовать точки с запятой, компилятор будет использовать дополнительную информацию чтобы удержаться на правильном пути. Но если вы пропустите одну (или пропустите их всех) компилятор не будет жаловаться. Лучший из обоих миров.
Поместите эту процедуру на место в первую версию вашей программы (с синтаксисом для C/Ada) и вы получите TINY Version 1.2.
- Компромиссы
- 2 Консенсус и компромисс
- Находите компромисс с пользователями
- Компромисс: постепенное улучшение
- 11.4. Компромиссы между CLI- и визуальными интерфейсами
- 13.1.2. Компромиссы между сложностью интерфейса и реализации
- 13.3.2. Компромиссы не действуют
- Правило № 9. Не идите на компромисс
- Никаких компромиссов. Беспроигрышные переговоры с экстремально высокими ставками. От топ-переговорщика ФБР
- Не идите на компромисс
- 5. Постигая культуру — чтобы понять перемены, их нужно пережить
- Зачем нужна TPM