Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Orthogonality
(section)
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>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)