<p>The abstract machine would look like i.e. the <a href="http://en.wikipedia.org/wiki/Lambda_calculus" rel="nofollow">untyped lambda calculus</a> or the <a href="http://en.wikipedia.org/wiki/SKI_combinator_calculus" rel="nofollow">SKI combinator</a> or just some kind of a <a href="http://en.wikipedia.org/wiki/Lisp_%28programming_language%29" rel="nofollow">LISP</a> dialect.</p>

<p>In hardware it would probably look like a biologic cell, calculating via pattern matching on the genes in the core – directly running that LISP dialect. (You might like to read this blog entry: <a href="http://www.thinkgene.com/new-computer-language-based-on-lisp-enables-biological-modeling/" rel="nofollow">"New computer language based on Lisp enables biological modeling"</a>)</p>

CC BY-SA 3.0
2012-01-31T10:29:13.660Z
Hey, biology has an efficient garbage collector and arbitrary parallelism… you cannot have that on any imperative machine nor any FPGA. And enzymes are nano-bots, so… it might even be able to compile itself on the hardware-level. But bio-computers are still as experimental as quantum-computers.
comonad
CC BY-SA 3.0
2012-01-31T01:02:06.660Z
2012-01-31T01:02:06.660Z
comonad
<p>Many hardware designs for executing functional programs have been proposed:</p>

<ul>
<li><a href="http://en.wikipedia.org/wiki/Lisp_machine">The Lisp Machine</a></li>
<li>Steele and Sussman's Scheme <a href="http://dl.acm.org/citation.cfm?id=359031&amp;coll=portal&amp;dl=ACM">chip design</a></li>
<li>The <a href="http://www.cs.york.ac.uk/fp/reduceron/">Reduceron</a>, by Naylor and Runciman</li>
</ul>

<p>and more (lots are cited in the Reduceron papers).</p>

CC BY-SA 3.0
2012-01-31T03:34:48.413Z
2012-01-31T03:34:48.413Z
Sam Tobin-Hochstadt
<p>We are so used to von neumann architecture and say a register machine like the x86. (Also with   programming languages built for those machines x86 assembly, C, etc)  Is that approach to computing completely separate from a language and system like haskell?</p>

<p>What would a machine look like that was based functional programming paradigms look like? and  one not running on a register or stack machine.</p>

<p>This article is relevant to my question:</p>

<p><a href="http://www.stanford.edu/class/cs242/readings/backus.pdf" rel="nofollow">http://www.stanford.edu/class/cs242/readings/backus.pdf</a></p>

CC BY-SA 3.0
2012-01-31T00:00:19.203Z
This seems too glib to count as an actual answer, but: why wouldn't they look like an x86 running the Haskell environment? Functional programming is a high-level language construct, and the point of high level programming is to insulate you from the messy details of the machine architecture, so why do you think it would be a good idea to remove this insulation? Alternatively, if you really do want both low-level and functional, have you tried looking at combinators?
David Eppstein
CC BY-SA 3.0
2012-01-31T02:31:16.907Z
Isn't the correct answer to this question simply "No"?
Jeffε
CC BY-SA 3.0
2012-01-31T09:16:19.807Z
Yeah, not an actual question.
beroal
CC BY-SA 3.0
2012-01-31T14:28:40.930Z
If I understand your question, the title has nothing to do with the question.  Please edit it.
Tsuyoshi Ito
<pl.programming-languages><big-picture>
Are register based machines on von neumann architecture diametrically opposed to functional programming style?
Berlin Brown
# Are register based machines on von neumann architecture diametrically opposed to functional programming style?

(Asked by: username_0 on 2012-01-30)

We are so used to von neumann architecture and say a register machine like the x86. (Also with programming languages built for those machines x86 assembly, C, etc) Is that approach to computing completely separate from a language and system like haskell?

What would a machine look like that was based functional programming paradigms look like? and one not running on a register or stack machine.

This article is relevant to my question:

<http://www.stanford.edu/class/cs242/readings/backus.pdf>

**Tags:** pl.programming-languages, big-picture

> **Comments:**
> **username_1**: This seems too glib to count as an actual answer, but: why wouldn't they look like an x86 running the Haskell environment? Functional programming is a high-level language construct, and the point of high level programming is to insulate you from the messy details of the machine architecture, so why do you think it would be a good idea to remove this insulation? Alternatively, if you really do want both low-level and functional, have you tried looking at combinators?  
> **username_2**: Isn't the correct answer to this question simply "No"?  
> **username_3**: Yeah, not an actual question.  
> **username_4**: If I understand your question, the title has nothing to do with the question.  Please edit it.  

---

## 2 answers

### Answer by username_6 on 2012-01-31. Score: 9 | Accepted answer

Many hardware designs for executing functional programs have been proposed:

* [The Lisp Machine](http://en.wikipedia.org/wiki/Lisp_machine)
* Steele and Sussman's Scheme [chip design](http://dl.acm.org/citation.cfm?id=359031&coll=portal&dl=ACM)
* The [Reduceron](http://www.cs.york.ac.uk/fp/reduceron/), by Naylor and Runciman

and more (lots are cited in the Reduceron papers).


---

### Answer by username_5 on 2012-01-31. Score: 2

The abstract machine would look like i.e. the [untyped lambda calculus](http://en.wikipedia.org/wiki/Lambda_calculus) or the [SKI combinator](http://en.wikipedia.org/wiki/SKI_combinator_calculus) or just some kind of a [LISP](http://en.wikipedia.org/wiki/Lisp_%28programming_language%29) dialect.

In hardware it would probably look like a biologic cell, calculating via pattern matching on the genes in the core – directly running that LISP dialect. (You might like to read this blog entry: ["New computer language based on Lisp enables biological modeling"](http://www.thinkgene.com/new-computer-language-based-on-lisp-enables-biological-modeling/))

> **Comments:**
> **username_5**: Hey, biology has an efficient garbage collector and arbitrary parallelism… you cannot have that on any imperative machine nor any FPGA. And enzymes are nano-bots, so… it might even be able to compile itself on the hardware-level. But bio-computers are still as experimental as quantum-computers.  

---

