Aviso: estou disposto a dar uma recompensa a qualquer resposta que eu ache interessante.
Seu desafio é projetar um computador com um conjunto de instruções (OISC) completo :
Um OISC é uma máquina abstrata que usa apenas uma instrução - evitando a necessidade de um código de operação de linguagem de máquina. Com uma escolha criteriosa para a instrução única e com recursos infinitos, um OISC é capaz de ser um computador universal da mesma maneira que os computadores tradicionais que possuem várias instruções.
Aqui estão alguns exemplos de comandos únicos que formam um OISC completo para Turing.
Regras:
Você deve fornecer uma interpretação ou prova disso
Você deve fornecer um intérprete para o seu idioma. Esse intérprete deve ser restrito apenas pela memória / hora (por exemplo, não deve haver restrições impostas pelo usuário). Se você não fornecer um intérprete para o seu idioma (por qualquer motivo que não seja a preguiça), você deve provar que é possível que um seja escrito. Um intérprete deve ser possível .
Você deve provar sua integridade de Turing
Você deve incluir uma prova formal de que seu idioma está completo em Turing. Uma maneira simples de fazer isso é provar que ele pode interpretar ou ter o mesmo comportamento de outra linguagem completa de Turing. A linguagem mais básica para interpretar seria Brainf ** k .
Por exemplo, um idioma normal que possui todos os mesmos comandos que o Brainf ** k (e a mesma falta de restrições de memória impostas pelo usuário) está completo com Turing porque qualquer coisa que possa ser implementada no Brainf ** k pode ser implementada no idioma .
Aqui está uma lista de linguagens completas de Turing muito simples de implementar.
Requisitos adicionais do OISC
Esse OISC deve ter apenas uma instrução - não pode ter várias instruções, sendo que uma delas o torna completo em Turing.
Seu OISC pode usar qualquer sintaxe que você desejar. Você deve definir em sua resposta o que é instrução, o que são dados e o que é um não operacional (por exemplo, espaço em branco). Seja criativo!
Os argumentos não precisam ser apenas números inteiros. Por exemplo, /// é um belo exemplo de um OISC completo de Turing.
Como e se as entradas e saídas são obtidas e fornecidas são deixadas por você. A maioria dos OISCs implementa E / S através de locais específicos de memória, mas pode haver outras maneiras de fazê-lo, e você é incentivado a encontrar uma.
Uma resposta válida deve fornecer um código de exemplo no seu OISC, incluindo-o na postagem ou vinculando-o a um simples desafio resolvido no idioma.
Votação
Eleitores, lembre-se de não aprovar envios chatos. Exemplos:
- Linguagem- equivalentes
- Uma implementação de um OISC existente (respondedores, crie o seu próprio!)
- Um "OISC" no qual o primeiro argumento especifica um comando para chamar ( exemplo )
No entanto, você deve votar em envios de criativos interessantes, como:
- Um OISC baseado em uma equação matemática
- Um ZISC completo de Turing baseado em uma rede neural
- Um OISC no qual a E / S de saída ocorre de outras maneiras que não certos locais de memória
Ganhando
Como no concurso de popularidade , a resposta com mais votos ganha! Boa sorte!