digplanet beta 1: Athena
Share digplanet:


Applied sciences






















In computer programming, orthogonality in a programming language means that a relatively small set of primitive constructs can be combined in a relatively small number of ways to build the control and data structures of the language. The term is most-frequently used regarding assembly instruction sets, as orthogonal instruction set.


Orthogonality is an important concept, addressing how a relatively small number of components can be combined in a relatively small number of ways to get the desired results. It is associated with simplicity; the more orthogonal the design, the fewer exceptions. This makes it easier to learn, read and write programs in a programming language.[1] The meaning of an orthogonal feature is independent of context; the key parameters are symmetry and consistency (for example, a pointer is an orthogonal concept).

An example from IBM Mainframe and VAX highlights this concept. An IBM mainframe has two different instructions for adding the contents of a register to a memory cell (or another register). These statements are shown below:

A Reg1, memory_cell
AR Reg1, Reg2

In the first case, the contents of Reg1 are added to the contents of a memory cell; the result is stored in Reg1. In the second case, the contents of Reg1 are added to the contents of another register (Reg2) and the result is stored in Reg1.

In contrast to the above set of statements, VAX has only one statement for addition:

ADDL operand1, operand2

In this case the two operands (operand1 and operand2) can be registers, memory cells, or a combination of both; the instruction adds the contents of operand1 to the contents of operand2, storing the result in operand1.

VAX’s instruction for addition is more orthogonal than the instructions provided by IBM; hence, it is easier for the programmer to remember (and use) than the one provided by IBM.

The design of C language may be examined from the perspective of orthogonality. The C language is somewhat inconsistent in its treatment of concepts and language structure, making it difficult for the user to learn (and use) the language. Examples of exceptions follow:

  • Structures (but not arrays) may be returned from a function.
  • An array can be returned if it is inside a structure.
  • A member of a structure can be any data type (except void), or the structure of the same type.
  • An array element can be any data type (except void).
  • Everything is passed by value (except arrays).
  • Void can be used as a type in a structure, but a variable of this type cannot be declared in a function.

Further reading[edit]

  • The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas. Addison-Wesley. 2000. ISBN 978-0-201-61622-4.

External links[edit]


  1. ^ Sebesta, Robert (2012). Concepts of Programming Languages 10th Ed. Pearson Higher Ed. pp. 9–12, 73. ISBN 9780131395312. 

Original courtesy of Wikipedia: http://en.wikipedia.org/wiki/Orthogonality_(programming) — Please support Wikipedia.
This page uses Creative Commons Licensed content from Wikipedia. A portion of the proceeds from advertising on Digplanet goes to supporting Wikipedia.
165 videos foundNext > 

Lecture 2: Orthogonality

Orthogonality of vectors and matrices; decomposing vectors into orthogonal components.

Programming Language Evaluation - Fortran Vs Algol

Programming Languages & Design Concepts is the basic programming structure identifier for programmers. Through this DVD we are planning to compare language e...


Orthogonality of the Legendre Polynomials

This video discusses the orthogonality properties of the Legendre polynomials. Video created by Prof. E. H. Simmons for PHY 415/810 at Michigan State Univers...

Lecture 14. Orthogonality of Model Shapes

The lecture shows that the mode shapes of a multi-degree of freedom system are orthogonal with respect to the mass and stiffness matrix. Then it explains how...

RT8.1. Schur Orthogonality Relations

Representation Theory of Finite Groups: As a first step to Fourier analysis on finite groups, we state and prove the Schur Orthogonality Relations. With thes...

Lecture 18: Equality Constrained Quadratic Programming

In Lecture 18 we take our first look at QP where we try and minimise a quadratic objective function. We consider unconstrained and equality constrained quadr...

Lecture 15. Free Vibration Analysis of Multi-Degree of Freedom Systems-Orthogonality of Modes

The lecture explains how to find the free vibration response of a multi-degree of freedom system efficiently by taking advantage of the orthogonality of the ...

What is (UMTS) Orthogonality - SixtySec

Visit http://www.exploregate.com for more videos on this topic.

Fisher-Yates Shuffle Modern Algorithm JavaScript Programming Tutorial

Lesson Code: http://www.developphp.com/view.php?tid=1356 In this programming exercise we will demonstrate the concepts behind the Fisher-Yates Modern Shuffle...

165 videos foundNext > 

We're sorry, but there's no news about "Orthogonality (programming)" right now.


Oops, we seem to be having trouble contacting Twitter

Support Wikipedia

A portion of the proceeds from advertising on Digplanet goes to supporting Wikipedia. Please add your support for Wikipedia!

Searchlight Group

Digplanet also receives support from Searchlight Group. Visit Searchlight