Architetture di computer NON basate su array [chiuso]


9

L'articolo originale di Wadler su Monads for Functional Programming (Haskell), afferma

Un'altra domanda con una lunga storia è se è desiderabile basare i programmi sull'aggiornamento dell'array. Dato che sono stati fatti molti sforzi nello sviluppo di algoritmi e architetture basati su array, eviteremo questo dibattito e supponiamo semplicemente che la risposta sia sì.

Non ci sono citazioni o suggerimenti per altre possibili architetture. Ho sentito qualcosa su un'architettura adatta a Lisp. Qualcuno può guidarmi con alcune spiegazioni e indicazioni su dove / come posso iniziare su questo argomento. Apprezzerei molto che tu possa spiegare brevemente la diversa architettura.


1
Forse è possibile aggiungere una sorta di supporto hardware per rendere gli alberi più efficienti di quanto non siano ora. Soprattutto per quanto riguarda la localizzazione della cache.
CodesInChaos,

In un certo senso, un computer con più core è più adatto a un linguaggio puro.
PyRulez,

@CodesInChaos Il wiki ha un moncone sulla macchina per la riduzione dei grafici e un collegamento a una macchina SECD basata su un documento del 1963. Non sono sicuro che sia così.
Asterisco,

Risposte:


0

C'è la Symbolics Lisp Machine , anche Lisp Machine


In un'altra nota, che potrebbe anche essere a proposito, c'era un hardware personalizzato per la programmazione del flusso di dati. Questo testo afferma che il concetto sviluppato negli anni '70 e l'hardware personalizzato è stato perseguito negli anni '80.


Gli elenchi sono in realtà solo matrici con funzionalità extra.
Robert Harvey,

@RobertHarvey Concettualmente molto diverso. Uno fornisce operazioni indicizzate, l'altro sequenziale. È necessario solo uno per essere a conoscenza del prossimo (e precedente), cioè faccio parte di una sequenza. In realtà un array non ha bisogno di archiviare i contenuti in sequenza. È solo praticità. Un array deve solo fornire un indice (questo indice può essere concettualmente qualsiasi cosa) e tale indice può essere utilizzato per recuperare e aggiornare l'elemento in O (1).
Asterisco,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.