Jump to content

Ортогональность (программирование)

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

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

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

A Reg1, memory_cell
AR Reg1, Reg2

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

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

ADDL operand1, operand2

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

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

В пересмотренном отчете об алгоритмическом языке Алгол 68 об «ортогональном проектировании» говорилось следующее:

Количество независимых примитивных концепций было сведено к минимуму, чтобы язык было легко описывать, изучать и реализовывать. С другой стороны, эти концепции применялись «ортогонально», чтобы максимизировать выразительную силу языка, пытаясь при этом избежать вредных излишеств.

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

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

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

С другой стороны, ортогональность не обязательно приводит к более простым системам, как показывает пример инструкций IBM и VAX — в конце концов, менее ортогональные архитектуры ЦП RISC оказались более успешными, чем архитектуры CISC .

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

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

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

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

  • Программист-прагматик: от подмастерья к мастеру Эндрю Ханта и Дэвида Томаса. Аддисон-Уэсли. 2000. ISBN   978-0-201-61622-4 .
  • А. ван Вейнгаарден, Ортогональная конструкция и описание формального языка , Mathematich Centrum, Амстердам, MR 76, октябрь 1965 г.

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

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6cb20322ed11f1db8b66ddb0f15392b3__1678466940
URL1:https://arc.ask3.ru/arc/aa/6c/b3/6cb20322ed11f1db8b66ddb0f15392b3.html
Заголовок, (Title) документа по адресу, URL1:
Orthogonality (programming) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)