Potremmo costruire un computer funzionale?

10

Come è stato fatto con FP, alla fine tutti i nostri programmi sono strutturati. Cioè, non importa quanto siano puri o funzionali li facciamo - sono sempre tradotti in assemblea, quindi ciò che effettivamente corre dietro i cofani sono istruzioni, stati e loop. Stiamo emulando FP.

Come noob hardware, la mia domanda è: perché non stiamo usando architetture di computer che hanno effettivamente calcolato le cose in uno stile funzionale? Ad esempio, un computer potrebbe consistere in "chip funzionali" primitivi come "concat", "map" e "reduce", e un programma semplicemente direbbe al computer come far scorrere i dati tra quei chip per calcolare il risultato desiderato , come nelle lingue concatenative.

Questo non ha molto senso, ma potrebbe illustrare quello che sto pensando.

    
posta MaiaVictor 13.05.2013 - 03:18
fonte

2 risposte

9

Fanno computer simili. Si chiama un FPGA . Ovviamente, gli FPGA supportano sia la logica sequenziale che combinatoria, ma non c'è nulla che ti impedisca di utilizzare la porzione combinatoria come suggerisci.

In pratica, tuttavia, la logica sequenziale (il tipo con stato) è estremamente utile anche a livello di chip. Per prima cosa, riduce in modo significativo il numero di porte logiche necessarie per risolvere un problema. Per un altro, risolve molti problemi di progettazione relativi a segnali con ritardi di propagazione diversi.

Se sei interessato a questo genere di cose, vale la pena provare gli FPGA. C'è un economico forum simile a un arduino chiamato papilio che è ottimo per i principianti. Le persone lo usano per tutto, dal controllo del robot al mining bitcoin.

    
risposta data 13.05.2013 - 04:31
fonte
7

Essenzialmente, i computer analogici funzionavano in questo modo: stavate modificando i parametri e una corrente elettrica è stata modificata di conseguenza. Questo è ciò che li ha resi "più veloci", per un periodo, negli anni '50 - non ti importava della lenta creazione e modifica di "stati" separati come nei vecchi behemoth digitali.

E probabilmente anche i computer quantistici potrebbero funzionare in questo modo: se lo stato di alcuni fenomeni quantistici dipende dallo stato degli altri, cambiare uno stato "iniziale" cambierà i seguenti stati simultaneamente - nessun "stato" tra di essi.

    
risposta data 13.05.2013 - 11:13
fonte