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
One-instruction set computer
(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!
== Machine architecture == In a [[Turing completeness|Turing-complete model]], each memory location can store an arbitrary integer, and{{snd}}depending on the mode, there may be arbitrarily many locations. The instructions themselves reside in memory as a sequence of such integers. There exists a class of [[universal computer]]s with a single instruction based on bit manipulation such as [[bit copying]] or [[bit inversion]]. Since their memory model is finite, as is the memory structure used in real computers, those bit manipulation machines are equivalent to real computers rather than to Turing machines.<ref name="mazonka">Oleg Mazonka, [http://www.complex-systems.com/pdf/19-3-5.pdf "Bit Copying: The Ultimate Computational Simplicity"], Complex Systems Journal 2011, Vol 19, N3, pp. 263β285</ref> Currently known OISCs can be roughly separated into three broad categories: * Bit-manipulating machines * Transport triggered architecture machines * Arithmetic-based Turing-complete machines === Bit-manipulating machines === [[Bit manipulation|Bit-manipulating]] machines are the simplest class. ==== FlipJump ==== The [https://esolangs.org/wiki/FlipJump FlipJump] machine has 1 instruction, a;b - flips the bit a, then jumps to b. This is the most primitive OISC, but it's still useful. It can successfully do math/logic calculations, branching, pointers, and calling functions with the help of its standard library. ==== BitBitJump ==== A bit copying machine,<ref name="mazonka" /> called BitBitJump, copies one bit in memory and passes the execution unconditionally to the address specified by one of the operands of the instruction. This process turns out to be capable of [[universal computation]] (i.e. being able to execute any algorithm and to interpret any other universal machine) because copying bits can conditionally modify the copying address that will be subsequently executed. ==== Toga computer ==== Another machine, called the [https://esolangs.org/wiki/TOGA_computer Toga Computer], inverts a bit and passes the execution conditionally depending on the result of inversion. The unique instruction is TOGA(a,b) which stands for '''TOG'''gle ''a'' '''A'''nd branch to ''b'' if the result of the toggle operation is true. {{Expand section|date=December 2016}} ==== Multi-bit copying machine ==== Similar to BitBitJump, a multi-bit copying machine copies several bits at the same time. The problem of [[Turing completeness|computational universality]] is solved in this case by keeping predefined jump tables in the memory.{{clarify|not apparent how this solves anything and what criterion is being used here?|date=December 2016}} === Transport triggered architecture === ''[[Transport triggered architecture]]'' (TTA) is a design in which computation is a side effect of data transport. Usually, some memory registers (triggering ports) within common address space perform an assigned operation when the instruction references them. For example, in an OISC using a single memory-to-memory copy instruction, this is done by triggering ports that perform arithmetic and instruction pointer jumps when written to. === Arithmetic-based Turing-complete machines === Arithmetic-based Turing-complete machines use an arithmetic operation and a conditional jump. Like the two previous universal computers, this class is also Turing-complete. The instruction operates on integers which may also be addresses in memory. Currently there are several known OISCs of this class, based on different arithmetic operations: * addition (addleq, <u>add</u> and branch if <u>l</u>ess than or <u>eq</u>ual to zero)<ref name="esolang-addleq">{{cite web |url=https://esolangs.org/wiki/Addleq|title=Addleq|author=<!--Not stated--> |website=Esolang Wiki|access-date=2017-09-16}}</ref> * decrement (DJN, <u>D</u>ecrement and branch (<u>J</u>ump) if <u>N</u>onzero)<ref name="esolang-djn">{{cite web |url=https://esolangs.org/wiki/DJN_OISC|title=DJN OISC|author=<!--Not stated--> |website=Esolang Wiki|access-date=2017-09-16}}</ref> * increment (P1eq, <u>P</u>lus <u>1</u> and branch if <u>eq</u>ual to another value)<ref name="esolang-p1eq">{{cite web |url=https://esolangs.org/wiki/P1eq|title=P1eq|author=<!--Not stated--> |website=Esolang Wiki|access-date=2017-09-16}}</ref> * subtraction (subleq, <u>sub</u>tract and branch if <u>l</u>ess than or <u>eq</u>ual to zero)<ref name="mazonka-subleq">{{cite web |url=http://mazonka.com/subleq/index.html |title=SUBLEQ|last=Mazonka|first=Oleg|date=October 2009|access-date=2017-09-16|archive-url=https://web.archive.org/web/20170629094925/http://mazonka.com/subleq/index.html|archive-date=2017-06-29}}</ref><ref name="esolang-subleq">{{cite web |url=https://esolangs.org/wiki/Subleq|title=Subleq|author=<!--Not stated--> |website=Esolang Wiki|access-date=2017-09-16}}</ref> * positive subtraction when possible, else branch (Arithmetic machine)<ref name="melzak"> {{cite journal |title=An informal arithmetical approach to computability and computation |author=Z. A. Melzak |date=1961 |journal=[[Canadian Mathematical Bulletin]] |volume=4|issue=3 |pages=279β293 |doi=10.4153/CMB-1961-031-9 |doi-access=free }}</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
One-instruction set computer
(section)
Add topic