[ home / board list / faq / random / create / bans / search / manage / irc ] [ ]

/prog/ - Programming

Programming board

Catalog

See 8chan's new software in development (discuss) (help out)
Infinity Next Beta period has started, click here for info or go directly to beta.8ch.net
Name
Email
Subject
Comment *
File
* = required field[▶ Show post options & limits]
Confused? See the FAQ.
Embed
(replaces files and can be used instead)
Options
Password (For file and post deletion.)

Allowed file types:jpg, jpeg, gif, png, webm, mp4, pdf
Max filesize is 8 MB.
Max image dimensions are 10000 x 10000.
You may upload 1 per post.


fc20ab No.3639

What's the most basic instruction set a machine must implement in order to solve problems that isn't as impractical as a Turing machine?

I am not talking about real world implementations of simple CPU. I mean something more abstract, since CPU tend to use registers for performance purposes when all you actually need is a way to access stored variables, independently of how you do it.

With "most basic", I mean the bare minimum to run. You will need an add operator and a bitwise negation operator, but there is no need for a sub operation since a + !b = (a - b).

What's the actual bare minimum a virtual machine would need to be operable? I have been searching for a Turing completeness article that goes straight to the point, but they often end up saying "just implement a Turing machine".

0896f3 No.3641

>>3639

There's a decent amount of research into that, the minimum required for turing completeness. Also a common theme in esolangs. Binary combinatory is pretty fuggin simple, le copy-paste from http://esolangs.org/wiki/Binary_combinatory_logic

Binary combinatory logic

Binary combinatory logic (BCL) is a complete formulation of combinatory logic (CL) using only the symbols 0 and 1, together with two term-rewriting rules. BCL has applications in the theory of program-size complexity (Kolmogorov complexity).

Contents

Definition

Syntax

<term> ::= 00 | 01 | 1 <term> <term>

Semantics

Rewriting rules for subterms of a given term (parsing from the left):

1100xy → x

11101xyz → 11xz1yz

where x, y, and z are arbitrary terms.

(Note, for example, that because parsing is from the left, 10000 is not a subterm of 11010000.)

The terms 00 and 01 correspond, respectively, to the K and S basis combinators of CL, and the "prefix 1" acts as a left parenthesis (which is sufficient for disambiguation in a CL expression).

There are four equivalent formulations of BCL, depending on the manner of encoding the triplet (left-parenthesis, K, S). These are (1, 00, 01) (as above), (1, 01, 00), (0, 10, 11), and (0, 11, 10).


870e83 No.3644

>>3639

This isn't exactly what you're asking, but I prefer lambda calculus to a turing machine.

https://en.wikipedia.org/wiki/Lambda_calculus




[Return][Go to top][Catalog][Post a Reply]
Delete Post [ ]
[]
[ home / board list / faq / random / create / bans / search / manage / irc ] [ ]