Differenza tra compilatore e codec

Pubblicità
Beh... se intendi quello che penso io, parliamo di due cose totalmente diverse...
Un compilatore interviene in alcune fasi del processo di traduzione di un codice sorgente in codice binario eseguibile da una macchina fisica o virtuale.
Un codec è un programma o hardware che si occupa di codificare o decodificare un segnale in forma digitale (per esempio video o audio).
 
Si ma il codec una volta che deve decodificare il file non fa lo stesso lavoro di un compilatore che traduce il linguaggio di programmazione in linguaggio macchina?
 
Si ma il codec una volta che deve decodificare il file non fa lo stesso lavoro di un compilatore che traduce il linguaggio di programmazione in linguaggio macchina?
Ad essere precisi, un codec non decodifica/codifica un file, ma un flusso di dati, eventualmente anche in real time. Che il flusso abbia origine da un file è solo una possibilità.
Il compilatore invece legge il sorgente, lo spezza in token, ne verifica la validità sintattica, costruisce delle strutture per organizzare la traduzione e riscrive i segmenti di codice in binario.
Il codec effettua solo una decodifica/codifica, non fa controlli ne' altro, è concettualmente tutt'altra cosa, il compilatore è un programma molto più complesso.
In comune hanno che hanno entrambi un input e un output, ma questa è una caratteristica di praticamente ogni algoritmo/programma.
 
Si ma il codec una volta che deve decodificare il file non fa lo stesso lavoro di un compilatore che traduce il linguaggio di programmazione in linguaggio macchina?

Da un punto di vista astrattato ci sono ovviamente similitudini, ma a livello implementativo e in dettaglio svolgono compiti totalmente diversi.

Un codec opera secondo un algoritmo unico e specifico, applicato a tutti i campioni di dati. Un compilatore opera su codice simbolico e applica diverse trasformazioni a seconda degli elementi in input.

L'unico punto in comune è che entrambi trasformano qualcosa in qualcos'altro.
 
OK.Quindi un codec codifica un segnale in digitale ed in seguito lo decodifica rendendolo disponibile per la macchina.Un compilatore invece non codifica nessun segnale ma traduce un linguaggio di programmazione in codice macchina.Giusto?Poi avrei un'altra domanda:il formato di un file riguarda il modo in cui è stato scritto e come la macchina deve leggerlo.Un'immagine può avere un formato jpg ecc. In base a come deve essere letto dal pc.Quindi anche il linguaggio di programmazione c è un formato?
 
il formato di un file riguarda il modo in cui è stato scritto e come la macchina deve leggerlo.Un'immagine può avere un formato jpg ecc. In base a come deve essere letto dal pc.Quindi anche il linguaggio di programmazione c è un formato?

I formati riguardano l'uomo e/o i programmi che devono interpretare degli stream di bytes. Dal punto di vista del computer semplicemente non esistono, perchè tutto è uno stream di bytes.

La sintassi di un linguaggio può effettivamente essere definita un formato, ma ovviamente vale il discorso di prima, cioè che si usano termini diversi e quindi formato e sintassi non sono generalmente sinonimi.
 
Il formato descrive come le informazioni sono codificate in un file.
Un sorgente C è un file di testo, così come lo è un sorgente Java o di praticamente ogni altro linguaggio. La codifica di un file non ha nulla a che vedere con i linguaggi di programmazione.
Quello che cambia è cosa il compilatore/interprete legge e come lo interpreta, ma il file sorgente è sempre un file di testo, quindi userà una codifica ASCII, UTF o simili.
 
Pubblicità
Pubblicità

Discussioni Simili

Indietro
Top