Ортогональность (программирование) - Orthogonality (programming)
Эта статья включает в себя список общих Рекомендации, но он остается в основном непроверенным, потому что ему не хватает соответствующих встроенные цитаты.Август 2012 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
В компьютерное программирование, ортогональность означает, что операции изменяют только одно, не затрагивая другие[1]. Этот термин наиболее часто используется в отношении наборов инструкций по сборке, так как ортогональный набор команд.
Ортогональность в языке программирования означает, что относительно небольшой набор примитивных конструкций может быть объединен относительно небольшим количеством способов для создания структур управления и данных языка.[2]. Это связано с простотой; чем более ортогонален дизайн, тем меньше исключений. Это упрощает изучение, чтение и написание программ на языке программирования. Значение ортогонального признака не зависит от контекста; ключевыми параметрами являются симметрия и согласованность (например, указатель - это ортогональное понятие).
Пример из IBM Mainframe и VAX подчеркивает эту концепцию. У мэйнфрейма IBM есть две разные инструкции для добавления содержимого регистр в ячейку памяти (или другой регистр). Эти утверждения показаны ниже:
Reg1, memory_cellAR Reg1, Reg2
В первом случае содержимое Reg1
добавляются к содержимому ячейки памяти; результат сохраняется в Reg1
. Во втором случае содержимое Reg1
добавляются к содержимому другого регистра (Reg2
) и результат сохраняется в Reg1
.
В отличие от приведенного выше набора операторов, VAX имеет только один оператор для добавления:
ADDL операнд1, операнд2
В этом случае два операнда (операнд1
и операнд2
) могут быть регистрами, ячейками памяти или их комбинацией; инструкция добавляет содержимое операнд1
к содержанию операнд2
, сохраняя результат в операнд1
.
Инструкция VAX по сложению более ортогональна, чем инструкции, предоставленные IBM; следовательно, программисту легче запомнить (и использовать) тот, который предоставляется VAX.
Дизайн языка C может быть рассмотрен с точки зрения ортогональности. Язык C несколько непоследователен в трактовке понятий и языковой структуры, что затрудняет изучение (и использование) языка пользователем. Примеры исключений следующие:
- Структуры (но не массивы) могут быть возвращены из функции.
- Массив может быть возвращен, если он находится внутри структуры.
- Член структуры может быть любым типом данных (кроме void или структуры того же типа).
- Элемент массива может иметь любой тип данных (кроме void). Все передается по значению (кроме массивов).
Хотя эта концепция впервые была применена к языкам программирования, ортогональность с тех пор стала признана ценной особенностью при разработке API и даже пользовательских интерфейсов. Здесь также ценно наличие небольшого набора составных примитивных операций без неожиданных перекрестных связей, поскольку это приводит к системам, которые легче объяснить и которые менее утомительны в использовании.
Смотрите также
Рекомендации
- ^ «Компактность и ортогональность». www.catb.org. Получено 2018-04-06.
- ^ Себеста, Роберт В. (2010). Понятия языков программирования (9-е изд.). Бостон: Эддисон-Уэсли. п.10. ISBN 9780136073475. OCLC 268788303.
дальнейшее чтение
- Прагматичный программист: от подмастерья к мастеру Эндрю Хант и Дэвид Томас. Эддисон-Уэсли. 2000 г. ISBN 978-0-201-61622-4.
внешняя ссылка
- "Искусство программирования Unix", глава о ортогональности - Понятие ортогональности хорошо объяснено