Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Orthogonality
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Computer science==<!-- This section is linked from [[Motorola 68000]] --> {{Further|Orthogonality (programming)|Orthogonal instruction set}} Orthogonality in programming language design is the ability to use various language features in arbitrary combinations with consistent results.<ref>Michael L. Scott, ''Programming Language Pragmatics'', p. 228.</ref> This usage was introduced by [[Adriaan van Wijngaarden|Van Wijngaarden]] in the design of [[Algol 68]]: <blockquote> The number of independent primitive concepts has been minimized in order that the language be easy to describe, to learn, and to implement. On the other hand, these concepts have been applied “orthogonally” in order to maximize the expressive power of the language while trying to avoid deleterious superfluities.<ref>1968, Adriaan van Wijngaarden et al., Revised Report on the Algorithmic Language ALGOL 68, section 0.1.2, Orthogonal design</ref> </blockquote> Orthogonality is a system design property which guarantees that modifying the technical effect produced by a component of a system neither creates nor propagates side effects to other components of the system. Typically this is achieved through the [[separation of concerns]] and [[Information Hiding#Encapsulation|encapsulation]], and it is essential for feasible and compact designs of complex systems. The emergent behavior of a system consisting of components should be controlled strictly by formal definitions of its logic and not by side effects resulting from poor integration, i.e., non-orthogonal design of modules and interfaces. Orthogonality reduces testing and development time because it is easier to verify designs that neither cause side effects nor depend on them. ===Orthogonal instruction set=== {{Main|Orthogonal instruction set}} An [[instruction set]] is said to be orthogonal if it lacks redundancy (i.e., there is only a single instruction that can be used to accomplish a given task)<ref>{{cite book|author1=Null, Linda |author2=Lobur, Julia |name-list-style=amp |title=The essentials of computer organization and architecture|publisher=Jones & Bartlett Learning|edition=2nd|year=2006|isbn=978-0-7637-3769-6|page=257|url=https://books.google.com/books?id=QGPHAl9GE-IC&pg=PA257}}</ref> and is designed such that instructions can use any [[processor register|register]] in any [[addressing mode]]. This terminology results from considering an instruction as a vector whose components are the instruction fields. One field identifies the registers to be operated upon and another specifies the addressing mode. An [[orthogonal instruction set]] uniquely encodes all combinations of registers and addressing modes.<ref>{{Cite book |last=Linda Null |url=https://samples.jbpub.com/9781449600068/00068_ch05_null3e.pdf |archive-url=https://web.archive.org/web/20151010020907/http://samples.jbpub.com/9781449600068/00068_CH05_Null3e.pdf |archive-date=2015-10-10 |url-status=live |title=The Essentials of Computer Organization and Architecture |publisher=Jones & Bartlett Publishers |year=2010 |isbn=978-1449600068 |pages=287–288}}</ref>
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Orthogonality
(section)
Add topic