В компьютерном программировании, ортогональность означает, что операции меняются просто одно, не затрагивая других. Этот термин наиболее часто используется в отношении наборов команд сборки, поскольку набор ортогональных команд.
Ортогональность в языке программирования означает, что относительно небольшой набор примитивных конструкций может быть объединен относительно небольшим количеством способов для создания элемента управления. и структуры данных языка. Это связано с простотой; чем более ортогонален дизайн, тем меньше исключений. Это упрощает изучение, чтение и написание программ на языке программирования. Значение ортогонального признака не зависит от контекста; ключевыми параметрами являются симметрия и согласованность (например, указатель - это ортогональное понятие).
Пример из IBM Mainframe и VAX подчеркивает эту концепцию. У мэйнфрейма IBM есть две разные инструкции для добавления содержимого регистра в ячейку памяти (или другой регистр). Эти операторы показаны ниже:
A Reg1, memory_cell AR Reg1, Reg2
В первом случае содержимое Reg1
добавляется к содержимому ячейки памяти. ; результат сохраняется в Reg1
. Во втором случае содержимое Reg1
добавляется к содержимому другого регистра (Reg2
), и результат сохраняется в Reg1
.
В отличие от приведенного выше набор операторов, VAX имеет только один оператор для добавления:
операнд1 ADDL, операнд2
В этом случае два операнда (операнд1
и операнд2
) могут быть регистрами, ячейками памяти или их комбинацией; инструкция добавляет содержимое операнда1
к содержимому операнда2
, сохраняя результат в операнде1
.
. Инструкция VAX для сложения более ортогональна, чем инструкции, предоставляемые IBM; следовательно, программисту легче запомнить (и использовать) тот, который предоставляется VAX.
Дизайн языка C может быть исследован с точки зрения ортогональности. Язык C несколько непоследователен в трактовке понятий и языковой структуры, что затрудняет изучение (и использование) языка пользователем. Ниже приведены примеры исключений:
Хотя эта концепция впервые была применена к языкам программирования, ортогональность с тех пор стала признана ценной особенностью при разработке API и даже пользовательских интерфейсов. Здесь также ценно наличие небольшого набора составных примитивных операций без неожиданных перекрестных связей, поскольку это приводит к системам, которые легче объяснить и которые менее утомительны в использовании.