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.

One instruction set computer

63 pointsby pykelloabout 10 years ago

13 comments

arethuzaabout 10 years ago
At one point I was seriously fascinated by the lambda calculus and particularly the S and K combinators - two very simple functions that you can build any computation from:<p><a href="http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;SKI_combinator_calculus" rel="nofollow">http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;SKI_combinator_calculus</a><p>More recently I found out about the U combinator which is a single combinator that can be used to define S &amp; K:<p><a href="http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Iota_and_Jot" rel="nofollow">http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Iota_and_Jot</a><p>Having a system that implemented recursion using the Y combinator in terms of S &amp; K and have it actually compute stuff was rather amusing. I&#x27;d be fascinated to see what it would look like using just U.
评论 #9390727 未加载
tptacekabout 10 years ago
Here&#x27;s a single-instruction computer built out of the page translation behavior of X86 processors:<p><a href="http:&#x2F;&#x2F;events.ccc.de&#x2F;congress&#x2F;2012&#x2F;Fahrplan&#x2F;events&#x2F;5265.en.html" rel="nofollow">http:&#x2F;&#x2F;events.ccc.de&#x2F;congress&#x2F;2012&#x2F;Fahrplan&#x2F;events&#x2F;5265.en.h...</a>
评论 #9391823 未加载
SimonPStevensabout 10 years ago
I wrote a little implementation of an OISC virtual machine many years ago [1]. Feel free to have a play. There are some sample &#x27;one instruction assembler&#x27; programs in the test programs folder.<p>[1] - <a href="https:&#x2F;&#x2F;github.com&#x2F;Creou&#x2F;OISCVM" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Creou&#x2F;OISCVM</a>
j_bakerabout 10 years ago
I&#x27;m curious, is there any real-world application for this? Or is it mostly interesting from a research perspective?<p>It seems like this wouldn&#x27;t perform very well in the real world for most applications, but I could see it being useful for very simple architectures.
评论 #9391002 未加载
评论 #9391665 未加载
firebonesabout 10 years ago
Side note: Douglas W. Jones was touting this [1] in a computer architecture class in the mid-1980s. Fun stuff. He later went on to do a lot of work with computerized voting [2][3]. Great instructor...<p>[1] <a href="http:&#x2F;&#x2F;homepage.cs.uiowa.edu&#x2F;~jones&#x2F;arch&#x2F;risc&#x2F;" rel="nofollow">http:&#x2F;&#x2F;homepage.cs.uiowa.edu&#x2F;~jones&#x2F;arch&#x2F;risc&#x2F;</a> [2] <a href="http:&#x2F;&#x2F;homepage.divms.uiowa.edu&#x2F;~jones&#x2F;voting&#x2F;pictures&#x2F;" rel="nofollow">http:&#x2F;&#x2F;homepage.divms.uiowa.edu&#x2F;~jones&#x2F;voting&#x2F;pictures&#x2F;</a> [3] <a href="http:&#x2F;&#x2F;homepage.cs.uiowa.edu&#x2F;~jones&#x2F;voting&#x2F;" rel="nofollow">http:&#x2F;&#x2F;homepage.cs.uiowa.edu&#x2F;~jones&#x2F;voting&#x2F;</a>
zemabout 10 years ago
also my favourite wikipedia disambiguation page, for the sheer, entertaining unrelatedness of the items therein: <a href="http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;OISC" rel="nofollow">http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;OISC</a>
jhallenworldabout 10 years ago
How about the simplest Turing machine?<p><a href="http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Wolfram%27s_2-state_3-symbol_Turing_machine" rel="nofollow">http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Wolfram%27s_2-state_3-symbol_Tu...</a>
cbrauchliabout 10 years ago
A fun challenge is to try to write a quine [<a href="http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Quine_(computing)" rel="nofollow">http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Quine_(computing)</a>] in an OISC.
watmoughabout 10 years ago
The awesome WireWorld prime number calculating computer is also a one instruction computer.<p><a href="http:&#x2F;&#x2F;www.quinapalus.com&#x2F;wires10.html" rel="nofollow">http:&#x2F;&#x2F;www.quinapalus.com&#x2F;wires10.html</a>
Chinjutabout 10 years ago
How about the one instruction &quot;RunInst a, b, c, d&quot;, whose behavior is defined as &quot;Do the instruction described by parameter a in [your favorite architecture], upon parameters b, c, d&quot;?
评论 #9391203 未加载
评论 #9391059 未加载
spiritplumberabout 10 years ago
OISC is something you sometimes get to build in EE labs, usually as the last project for that class. It&#x27;s something that you can put together out of 7400s and, at least in our case, an eeprom for a lookup table. It&#x27;s a fun thing to do and I recommend it.
nemoniacabout 10 years ago
See also John Tromp&#x27;s &quot;interpreter for the simplest language possible&quot;<p><a href="https:&#x2F;&#x2F;tromp.github.io&#x2F;cl&#x2F;cl.html" rel="nofollow">https:&#x2F;&#x2F;tromp.github.io&#x2F;cl&#x2F;cl.html</a>
tsmithabout 10 years ago
I always thought MADD (Multiply + Add) made a great candidate for a single instruction set computer, if the program counter was usable as an operand to the instruction.
评论 #9390976 未加载