Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Turing-completeness of a modified version of Brainfuck

Is Brainfuck Turing-complete if the cells are bits, and the + and - operations simply flip a bit? Is there a simple proof that Brainfuck-like languages are Turing-complete regardless of the cell size, or do I need to think of a program that simulates a Turing machine? How would I know if there isn't one?

EDIT: I found an answer to my question: Brainfuck with bit cells is called Boolfuck. Ordinary Brainfuck can be reduced to it, so Boolfuck is Turing-complete.

like image 740
Eric Yu Avatar asked Dec 22 '12 23:12

Eric Yu


People also ask

How do you calculate Turing completeness?

A system can only be considered to be Turing complete if it can do anything a universal Turing machine can. Since the universal Turing machine is said to be able to solve any computable function given time, Turing complete systems can, by extension, also do so.

What defines Turing completeness?

In colloquial usage, the terms "Turing-complete" and "Turing-equivalent" are used to mean that any real-world general-purpose computer or computer language can approximately simulate the computational aspects of any other real-world general-purpose computer or computer language.

What is Turing completeness in TOC?

What Does Turing Complete Mean? A system is said to be "Turing complete" in computer theory if it can be used to emulate a Turing machine, which is a theoretical construct designed by mid-century mathematician and computer scientist Alan Turing.

Is Turing completeness Decidable?

A programming language is Turing complete if it can compute all functions that a Turing machine can compute. Amongst other things, this means it can decide any decidable set.


1 Answers

This answer should suit you well; it has a very specific definition of what features make a language turing complete.

Here's the gist of it:

In general, for an imperative language to be Turing-complete, it needs:

  1. A form of conditional repetition or conditional jump (e.g., while, if+goto)

  2. A way to read and write some form of storage (e.g., variables, tape)

like image 105
eshimoniak Avatar answered Sep 19 '22 08:09

eshimoniak