Делать выбор представления данных всегда нужно с учетом операций, которые нужно выполнять с данными. Хороший пример – представление чисел, которые сами суть абстракции свойств некоторых объектов:
- Если единственное (или основное) действие, которое нужно выполнять, – сложение, то хорошим представлением числа может быть черточек. Правило сложения при таком представлении – очевидное и очень простое. Римская нотация основана на этом принципе простоты, и правила сложения просты для маленьких чисел.
- С другой стороны, представление арабскими цифрами требует не очевидных правил сложения (для маленьких чисел), и их нужно запоминать. Однако ситуация меняется на противоположную, если нужно складывать большие числа или выполнять умножение и деление. Разбиение этих операций на более простые шаги гораздо проще в случае арабской нотации благодаря ее систематической позиционной структуре.
В задаче представления положения объекта:
- первое решение может касаться выбора пары чисел в, скажем, декартовых или полярных координатах.
- Второе решение может привести к представлению с плавающей точкой, где каждое вещественное число x состоит из пары целых, обозначающих дробную часть f и показатель e по некоторому основанию (например, x = f * 2e).
- Третье решение, основанное на знании, что данные будут храниться в компьютере, может привести к двоичному позиционному представлению целых чисел.
- Наконец, последнее решение может состоять в том, чтобы представлять двоичные цифры электрическими зарядами в полупроводниковом устройстве памяти.
Решения низкого уровня можно оставить проектировщикам вычислительного оборудования, у которых заведомо больше информации о существующих технологиях, чтобы сделать разумный выбор, приемлемый для всех (или почти всех) приложений, где играют роль числа.
Язык программирования представляет абстрактный компьютер, допускающий интерпретацию в терминах данного языка, что может подразумевать определенный уровень абстракции по сравнению с объектами, используемыми в реальном вычислительном устройстве.
Например, неразумно включать в язык общего назначения геометрические фигуры, так как из за внутренне присущей им сложности их подходящее представление будет сильно зависеть от действий, выполняемых с ними.
Язык программирования представляет абстрактный компьютер, допускающий интерпретацию в терминах данного языка, что может подразумевать определенный уровень абстракции по сравнению с объектами, используемыми в реальном вычислительном устройстве.
Например, неразумно включать в язык общего назначения геометрические фигуры, так как из за внутренне присущей им сложности их подходящее представление будет сильно зависеть от действий, выполняемых с ними.