Языки программирования - концепции и принципы

что при использовании целых чисел


C

int dial;                                    /* Текущая позиция шкалы */                         

 if (dial < 4) dial++;               /* Увеличить уровень нагрева*/

   Очевидно, что при использовании целых чисел программу становится трудно читать и поддерживать. Чтобы понять код программы, вам придется написать обширную документацию и постоянно в нее заглядывать. Чтобыулучшить программу, можно прежде всего задокументировать подразумевае­мые значения внутри самой программы:

 #define Off                  1                                                                        



C

#define Low                 2

#define Medium           3

#define High                 4

int dial;

if(dial<High)dial++;

  

   Однако улучшение документации ничего не дает для предотвращения следу­ющих проблем:

C

dial=-1;                 /* Нет такого значения*/                                  

dial = High + 1;    /* Нераспознаваемое переполнение*/

dial = dial * 3;      /* Бессмысленная операция*/

   Другими словами, представление шкалы с четырьмя позициями в виде цело­го числа позволяет программисту присваивать значения, которые выходят за допустимый диапазон, и выполнять команды, бессмысленные для реального объекта. Даже если программист не создаст преднамеренно ни одну из этих  проблем, опыт показывает, что они часто появляются в результате отсутствия I взаимопонимания между членами группы разработчиков программы, опеча- ток и других ошибок, типичных при создании сложных систем.      

    Решение состоит в том, чтобы разрешить разработчику программы созда- вать новые типы, точно соответствующие тем объектам реального мира, кото­рые нужно моделировать. Рассматриваемая здесь короткая упорядоченная последовательность значений настолько часто встречается, что современные языки программирования поддерживают создание типов, называемых типа­ми — перечислениями (enumiration types)*. В языке Ada вышеупомянутый при­мер выглядел бы так:


Содержание раздела