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.