In un linguaggio dichiarativo, specificamente nel contesto della modellazione, possiamo fare una chiara distinzione tra codice e dati?

3

Per i linguaggi dichiarativi, in particolare (ma non solo) nel campo della modellazione, non è ovvio per me se il codice possa essere considerato come separato dai dati. Questa linea di ragionamento può applicarsi solo alle lingue complete non turing come NeuroML.

Per esempio, ho avuto un linguaggio dichiarativo specifico per il dominio che ho usato per descrivere le posizioni dei pianeti e le loro velocità, e ho descritto un sistema di tre corpi orbitanti:

satellite planet_earth,moon,sun {

planet_earth.position = [6,0,0]

planet_earth.velocity = [0,23,-32]

planet_earth.mass = 1e3

moon.position = [6,0,0.0001]

moon.velocity = [0,0,3]

moon.mass = 1e2

sun.position = [0,0,0]

sun.velocity = [0,0,0]

sun.mass = 1e12 }

Questo linguaggio potrebbe essere passato a un simulatore che poi simulava il movimento dei pianeti.

Da un punto di vista questo è il codice - Descrive le condizioni iniziali e di conseguenza entro i limiti del linguaggio una sequenza di passaggi per l'esecuzione di un computer. Da un altro punto di vista sono i "dati" - è una descrizione di un sistema fisico.

Questo concetto (è qualcosa di codice o di dati) qualcosa che è stato studiato molto? L'ho esaminato

    
posta Mike Vella 29.08.2013 - 02:43
fonte

1 risposta

1

Non vedo differenze tra le lingue dichiarative e quelle imperative nel contesto della tua domanda, quindi proverò a rispondere alla tua domanda in un modo più generale.

La distinzione tra code e data è concettuale, non esiste una definizione chiara, oggettiva, applicabile a tutte le situazioni; ci saranno sempre casi in cui diverse persone arriveranno a conclusioni diverse.

Considera il seguente codice C ++:

std::vector<std::string> names = { "Smith", "Miller", "Watson" };

I dati delle stringhe (perché sono solo stringhe incorporate) o il codice (perché fanno parte del codice sorgente)?

Esistono linguaggi in cui la rappresentazione del codice è un tipo di prima classe del linguaggio di programmazione. Queste lingue sono in genere omoiconico (ad esempio, la loro sintassi è molto simile all'albero della sintassi astratta); l'esempio archetipo è Lisp. In queste lingue, la distinzione tra codice e dati è ancora più sfocata.

    
risposta data 29.08.2013 - 10:03
fonte

Leggi altre domande sui tag