TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Accidentally Turing-Complete

85 pointsby ducaaleover 3 years ago

13 comments

LeoPantheraover 3 years ago
Too many things are Turing Complete. I would like to propose more research into things which are &quot;Tetris Complete&quot;.<p><a href="https:&#x2F;&#x2F;everything2.com&#x2F;title&#x2F;Tetris+complete" rel="nofollow">https:&#x2F;&#x2F;everything2.com&#x2F;title&#x2F;Tetris+complete</a><p>Tetris Completion extends Turing Completion by adding the minimum requirements for a functional implementation of Tetris. From the link above:<p>* a display with at least 20 rows and 10 columns, and enough read&#x2F;write random access memory to store the current contents of the display,<p>* a way of repainting one row or column of the display without affecting the others,<p>* a timer with a resolution of at least 100 milliseconds<p>* a small set of keys whose state can be read without blocking execution, which for Tetris are left, right, clockwise, and anticlockwise<p>* a linear bounded automaton programmed for the particular puzzle game
评论 #30218625 未加载
评论 #30217608 未加载
评论 #30218366 未加载
alexb_over 3 years ago
It mentions Pokemon Yellow, but really any code run isn&#x27;t really &quot;run in the game&quot; more so that it uses bugs to hack together alternate instructions for the game boy to execute. Good example: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=Vjm8P8utT5g" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=Vjm8P8utT5g</a> (skip to 1:20 for craziness)
评论 #30216978 未加载
newpavlovover 3 years ago
Rust type system is also Turing complete: <a href="https:&#x2F;&#x2F;sdleffler.github.io&#x2F;RustTypeSystemTuringComplete&#x2F;" rel="nofollow">https:&#x2F;&#x2F;sdleffler.github.io&#x2F;RustTypeSystemTuringComplete&#x2F;</a><p>It has allowed us to emulate (numeric) const generics in crates like typenum (<a href="https:&#x2F;&#x2F;docs.rs&#x2F;typenum" rel="nofollow">https:&#x2F;&#x2F;docs.rs&#x2F;typenum</a>) long before they were implemented as a proper language feature. Even today, typenum is more powerful in some regards than the stable version of const generics.
评论 #30217996 未加载
YeGoblynQueenneover 3 years ago
&gt;&gt; Magic: The Gathering is a popular and famously complicated trading card game about magical combat. In this paper we show that optimal play in real-world Magic is at least as hard as the Halting Problem, solving a problem that has been open for a decade. To do this, we present a methodology for embedding an arbitrary Turing machine into a game of Magic such that the first player is guaranteed to win the game if and only if the Turing machine halts. Our result applies to how real Magic is played, can be achieved using standard-size tournament-legal decks, and does not rely on stochasticity or hidden information. Our result is also highly unusual in that all moves of both players are forced in the construction. This shows that even recognising who will win a game in which neither player has a non-trivial decision to make for the rest of the game is undecidable. We conclude with a discussion of the implications for a unified computational theory of games and remarks about the playability of such a board in a tournament setting.<p>Nice, I didn&#x27;t know of this one. It&#x27;s the continuation and completion of work by the first author of the linked paper, Alex Churchill, who had earlier shown a method to prove M:tG Turing-Complete but in a setup that was not a full game:<p><a href="https:&#x2F;&#x2F;www.toothycat.net&#x2F;~hologram&#x2F;Turing&#x2F;HowItWorks.html" rel="nofollow">https:&#x2F;&#x2F;www.toothycat.net&#x2F;~hologram&#x2F;Turing&#x2F;HowItWorks.html</a><p>It&#x27;s good to see he kept at it and seems to have produced a generally interesting result that applies well beyond M:tG, to boot. Wow.<p>Edit: Oh, shit. That means I&#x27;ll never get funding to make an M:tG AI XD
dangover 3 years ago
Past related:<p><i>Accidentally Turing-Complete</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22964441" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22964441</a> - April 2020 (58 comments)<p><i>A collection of things that are Turing-complete by accident (2013)</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=16383072" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=16383072</a> - Feb 2018 (63 comments)<p><i>Accidentally Turing Complete (2013)</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=9195519" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=9195519</a> - March 2015 (1 comment)<p><i>Accidentally Turing-Complete</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=6577671" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=6577671</a> - Oct 2013 (48 comments)
waynecochranover 3 years ago
I don&#x27;t think folks realize how low a bar Turing Complete is. A DFA with two stacks or two counters is Turing Complete. Making a formal machine Turing Complete is trivial.
评论 #30229788 未加载
Archelaosover 3 years ago
&quot;It inspired movfuscator, the single instruction C compiler. Building on this, there is a branchless, mov-only version of the classic DOOM video game.<p>This is thought to be entirely secure against the Meltdown and Spectre CPU vulnerabilities, which require speculative execution on branch instructions.<p>The mov-only DOOM renders approximately one frame every 7 hours, so playing this version requires somewhat increased patience.&quot;<p>This means, we need about twenty doublings of the computing speed to play it smoothly. Will we ever reach it? And if yes, when?
dane-pgpover 3 years ago
One surprising example not listed there is &quot;sliding-block puzzles&quot;, as proven in this paper:<p><a href="https:&#x2F;&#x2F;groups.csail.mit.edu&#x2F;mac&#x2F;users&#x2F;bob&#x2F;sliding-blocks.pdf" rel="nofollow">https:&#x2F;&#x2F;groups.csail.mit.edu&#x2F;mac&#x2F;users&#x2F;bob&#x2F;sliding-blocks.pd...</a>
评论 #30217637 未加载
Dylan16807over 3 years ago
I continue to object to the CSS one, because it&#x27;s just applying a couple gates &#x2F; arithmetic operations at a time and you have to manually copy the data to the next iteration.<p>Turing completeness is already a low bar, because arithmetic+iteration is enough, and this doesn&#x27;t clear the bar.
评论 #30218385 未加载
crabmusketover 3 years ago
This reminds me of Deutsch&#x27;s idea of the &quot;jump to universality&quot; in a chapter of The Beginning of Infinity. The summary:<p>&gt; All knowledge growth is by incremental improvement, but in many fields there comes a point when one of the incremental improvements in a system of knowledge or technology causes a sudden increase in reach, making it a universal system in the relevant domain. In the past, innovators who brought about such a jump to universality had rarely been seeking it, but since the Enlightenment they have been, and universal explanations have been valued both for their own sake and for their usefulness. Because error-correction is essential in processes of potentially unlimited length, the jump to universality only ever happens in digital systems.
评论 #30218224 未加载
cafover 3 years ago
One thing it doesn&#x27;t mention is Conway&#x27;s Game of Life itself.<p>So of course, you can implement Game of Life within Game of Life:<p><a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=xP5-iIeKXE8" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=xP5-iIeKXE8</a>
评论 #30220431 未加载
评论 #30220620 未加载
DylanSpover 3 years ago
Oh cool, I didn&#x27;t know there had been progress in the MtG UTM to use only mandatory effects.
DonHopkinsover 3 years ago
I&#x27;ll never regret asking this long-shot request on HN -- thanks to Harold Ancell and Marvin Minsky:<p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=10161002" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=10161002</a><p>&gt;DonHopkins on Sept 2, 2015 | parent | context | favorite | on: The most obsolete infrastructure money could buy –...<p>&gt;I remember running across a Turing machine emulator implemented in TECO in Minsky&#x27;s home directory that I&#x27;d REALLY love to get ahold of.<p>&gt;hga on Sept 2, 2015 [–]<p>&gt;Ask and yea shall receive:<p><pre><code> MSG: APL 1 DISTRIB: *BBOARD EXPIRES: 03&#x2F;17&#x2F;81 23:08:54 MINSKY@MIT-MC 03&#x2F;11&#x2F;81 23:08:54 Re: too-short programs APL is compact, I suppose. So is TECO. When I wrote the following Universal Turing Machine, which works, I actually understood it. [ I&#x27;ve interpolated the non-printing characters as displayed by (Gnu) EMACS, escape is ^], ^^ is one character, as is \356: ] i1Aul qq+^^0:iqm^[29iiq\356y0L1 00L1 11L2 A1L1 y0L1 0yR2 1AR2 AyR6 yyL3 00L0 1AL3 A1L4 yyL4 0yR5 11L7 A1L4 yyR5 0yL3 1AR5 A1R5 yyR6 0AL3 1AR6 A1R6 y0R7 0yR6 11R7 A0R2 ^[j&lt;sR^[;-d-2ciql-^^^[ci&quot;ed^^^[cii^[ciuq&#x27;^[&gt; j&lt;sL^[;-d-2ciql-^^^[ci&quot;ed^^^[cii-2c^[ciuq&#x27;^[&gt;jxblx1lx2lx3lx4lx5lx6lx7hk iyyAyyAyy^[32&lt;i0^[&gt;ji110101110000010011011^[ 1uq&lt;htmbqq=&gt; I do not advise attempting to understand this code, which is almost as bad as that for the Universal Turing machine. </code></pre> &gt;ADDED: or <a href="http:&#x2F;&#x2F;ancell-ent.com&#x2F;share&#x2F;minsky-TECO-turing-machine.txt" rel="nofollow">http:&#x2F;&#x2F;ancell-ent.com&#x2F;share&#x2F;minsky-TECO-turing-machine.txt</a><p>&gt;Please ack receipt of this and&#x2F;or send me email (in my HN info); for others, note this is ITS TECO, which I was told was by far the most powerful version of it (fortunately, by the time I showed up learning it was no longer really necessary).<p>&gt;DonHopkins on Sept 3, 2015 | root | parent [–]<p>&gt;OOP ACK! It was a shot in the dark, but I am SO GLAD I asked!!! Thank you Harold!<p>&gt;It looks just like I remember. ;)<p>TECO eminently qualifies as a &quot;Turing Tar Pit&quot;:<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Turing_tarpit" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Turing_tarpit</a><p>&gt;A Turing tarpit (or Turing tar-pit) is any programming language or computer interface that allows for flexibility in function but is difficult to learn and use because it offers little or no support for common tasks. The phrase was coined in 1982 by Alan Perlis in the Epigrams on Programming:<p>&gt;&gt;54. Beware of the Turing tar-pit in which everything is possible but nothing of interest is easy.<p>&gt;In any Turing complete language, it is possible to write any computer program, so in a very rigorous sense nearly all programming languages are equally capable. Showing that theoretical ability is not the same as usefulness in practice, Turing tarpits are characterized by having a simple abstract machine that requires the user to deal with many details in the solution of a problem. At the extreme opposite are interfaces that can perform very complex tasks with little human intervention but become obsolete if requirements change slightly.<p>&gt;Some esoteric programming languages, such as Brainfuck, are specifically referred to as &quot;Turing tarpits&quot; because they deliberately implement the minimum functionality necessary to be classified as Turing complete languages. Using such languages is a form of mathematical recreation: programmers can work out how to achieve basic programming constructs in an extremely difficult but mathematically Turing-equivalent language.<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;TECO_(text_editor)#As_a_programming_language" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;TECO_(text_editor)#As_a_progra...</a><p>&gt;As a programming language: The obscurity of the TECO programming language is described in the following quote from &quot;Real Programmers Don&#x27;t Use Pascal&quot;, a letter from Ed Post to Datamation, July 1983:<p>&gt;&gt;It has been observed that a TECO command sequence more closely resembles transmission line noise than readable text. One of the more entertaining games to play with TECO is to type your name in as a command line and try to guess what it does. Just about any possible typing error while talking with TECO will probably destroy your program, or even worse - introduce subtle and mysterious bugs in a once working subroutine.<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Real_Programmers_Don%27t_Use_Pascal" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Real_Programmers_Don%27t_Use_P...</a><p><a href="https:&#x2F;&#x2F;www.ee.ryerson.ca&#x2F;~elf&#x2F;hack&#x2F;realmen.html" rel="nofollow">https:&#x2F;&#x2F;www.ee.ryerson.ca&#x2F;~elf&#x2F;hack&#x2F;realmen.html</a>