Esiste un nome ufficiale per la nozione di "riutilizzabile universale"?


10

Esistono diverse nozioni (probabilmente non equivalenti) di universalità computazionale (vedere ad esempio le ultime due pagine di http://www.dna.caltech.edu/~woods/download/WoodsNearyTCS07-DRAFT.pdf ) e non vi è consenso tra esperti su quali nozioni siano più corrette (vedere ad esempio http://cs.nyu.edu/pipermail/fom/2007-October/012148.html ).

Sto cercando di dire qualcosa su un particolare modello di calcolo biomolecolare. Vorrei sostenere che è "più universale" o "più utilmente universale" rispetto ad alcuni altri modelli, perché è possibile costruire una macchina universale che esegue un programma e quindi cancella l'input alla fine ed è pronto per eseguire un altro programma. Contrasta questo con, diciamo, gli automi cellulari, che possono emulare qualsiasi macchina di Turing, ma poi alla fine del calcolo, hai una configurazione finale, immutabile. Per emulare un'altra TM, è necessario definire una CA completamente separata. Quindi vorrei dire che qualcosa è "riusabilmente universale" se si comporta come il tuo desktop, non una CA (cioè, può eseguire più programmi senza bisogno di ricreare l'universo). Questa nozione è stata formalizzata da qualche parte?


1
Potresti cambiare il titolo della domanda in modo che sia un po 'meno personale - forse solo "Universalità riutilizzabile?"
Joshua Grochow,

Risposte:


3

Come accennato in Teoria degli automi / Argomento di tesi sul linguaggio formale, i miei supervisori hanno almeno alcune delle stesse intenzioni su "universalità riutilizzabile" come "migliori" rispetto allo stile CA. Non sono sicuro che venga dato un nome però: http://www.diku.dk/~neil/blobentcs.pdf

Non mi sono concentrato molto su quella parte, ma a mio modo di vedere la letteratura sul biocomputer, la differenza principale sta nel significato della parola "programmazione / programmabile", ad esempio che cosa è effettivamente programmabile? Quello, e anche la parte del "programma memorizzato", ma apprezzo la sfumatura posta dalla tua domanda

Non ho una risposta prontamente disponibile a come si chiama però


1
Dal loro documento: "Un programma è un software, non un hardware. Quindi un programma dovrebbe essere esso stesso un oggetto dati concreto che può essere sostituito per specificare diverse azioni." Grazie ancora.
Aaron Sterling,

Mi sono appena imbattuto nel lavoro di Michael Conrad: portal.acm.org/citation.cfm?id=3533 . Sembra essere un po 'preoccupato dalla stessa distinzione che stai cercando di fare riguardo alla "programmabilità" della parola che sta usando. Correggimi se sbaglio :)
svrist

4

C'è stato un lavoro nella comunità PL / sistemi sulla semantica e sulla modellizzazione dei sistemi operativi. Come fai notare, ciò di cui stai parlando è molto simile a un sistema operativo: fa qualcosa, ma è garantito (beh, nel caso di un sistema operativo, garantito) per tornare a uno "stato fondamentale". Le persone di PL potrebbero non aver formalizzato la tua nozione di riusabilmente universale, ma potresti trovare qualche ispirazione lì.

La tua formalizzazione dovrà catturare la differenza tra "una macchina universale che, dopo essere stata eseguita con un input, se sostituisci l'input con un altro input è pronta per andare" e "una macchina universale che, data una sequenza di programmi di input, li esegue in successione ". E, naturalmente, tutte le nozioni ragionevoli di macchina universale probabilmente soddisfano quest'ultimo requisito. Quindi sembra abbastanza complicato ...


Grazie! Non ho molta teoria del linguaggio di programmazione. È ora di impararne un po ', immagino.
Aaron Sterling,
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.