Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

В компьютерном программировании , ортогональность означает , что операции изменить только одну вещь , не затрагивая другие. [1] Этот термин наиболее часто используется в отношении наборов команд сборки как ортогональный набор команд .

Ортогональность в языке программирования означает, что относительно небольшой набор примитивных конструкций может быть объединен относительно небольшим количеством способов для создания структур управления и данных языка. [2] Это связано с простотой; чем более ортогонален дизайн, тем меньше исключений. Это упрощает изучение, чтение и написание программ на языке программирования. Значение ортогонального признака не зависит от контекста; ключевыми параметрами являются симметрия и согласованность (например, указатель - это ортогональное понятие).

Пример из IBM Mainframe и VAX подчеркивает эту концепцию. У мэйнфрейма IBM есть две разные инструкции для добавления содержимого регистра в ячейку памяти (или другой регистр). Эти утверждения показаны ниже:

Reg1, memory_cellAR Reg1, Reg2

В первом случае содержимое Reg1добавляется к содержимому ячейки памяти; результат сохраняется в Reg1. Во втором случае содержимое Reg1добавляется к содержимому другого регистра ( Reg2), а результат сохраняется в Reg1.

В отличие от приведенного выше набора операторов, VAX имеет только один оператор для добавления:

ADDL операнд1, операнд2

В этом случае два операнда ( operand1и operand2) могут быть регистрами, ячейками памяти или их комбинацией; инструкция добавляет содержимое operand1к содержимому operand2, сохраняя результат в operand1.

Инструкция VAX по сложению более ортогональна, чем инструкции, предоставленные IBM; следовательно, программисту легче запомнить (и использовать) тот, который предоставляется VAX.

Дизайн языка C может быть рассмотрен с точки зрения ортогональности. Язык C несколько непоследователен в трактовке понятий и языковой структуры, что затрудняет изучение (и использование) языка пользователем. Ниже приведены примеры исключений:

  • Структуры (но не массивы) могут быть возвращены из функции.
  • Массив может быть возвращен, если он находится внутри структуры.
  • Член структуры может быть любым типом данных (кроме void или структуры того же типа).
  • Элемент массива может иметь любой тип данных (кроме void). Все передается по значению (кроме массивов).

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

См. Также [ править ]

Ссылки [ править ]

  1. ^ «Компактность и ортогональность» . www.catb.org . Проверено 6 апреля 2018 .
  2. ^ Себеста, Роберт В. (2010). Понятия языков программирования (9-е изд.). Бостон: Эддисон-Уэсли. п. 10 . ISBN 9780136073475. OCLC  268788303 .

Дальнейшее чтение [ править ]

  • Прагматичный программист: от подмастерья к мастеру Эндрю Хант и Дэвид Томас. Эддисон-Уэсли. 2000. ISBN 978-0-201-61622-4 . 

Внешние ссылки [ править ]