L'evoluzione dei microprocessori merita l'evoluzione dei compilatori e degli standard linguistici?

StackOverflow https://stackoverflow.com/questions/4971475

  •  12-11-2019
  •  | 
  •  

Domanda

Poiché i produttori di chip aggiungono nuove funzioni, istruzioni ecc. A nuovi chip, abbiamo bisogno di versioni più recenti dei compilatori di conseguenza per utilizzare quelle nuove istruzioni e caratteristiche del chip? Significa inoltre che il linguaggio di programmazione ha anche bisogno di nuovi Opcodi, sintassi ecc. Per utilizzare le nuove funzionalità del chip?

È stato utile?

Soluzione

Sì, le nuove funzionalità hardware si riflettono nelle estensioni linguistiche e nelle nuove lingue. Ad esempio, consultare le varie estensioni vettoriali per C e C ++ che riflettono la disponibilità di istruzioni SIMD e le nuove lingue derivate dei dati-paralleli come CUDA e OpenCL.

Se l'hardware è significativamente diverso dagli altri, è probabile che richiederà il proprio linguaggio di programmazione diverso, vedere i transputer tardivi e il loro linguaggio OCCAM.

Altri suggerimenti

I compilatori che compilano al codice macchina (non a una VM) potrebbero dover cambiare ogni volta che le sue modifiche all'architettura target cambiano (sebbene idealmente tutte le modifiche sarebbero compatibili all'indietro, in modo che le aggiunte significino solo che ci sono nuove ottimizzazioni possibili, ma che i vecchi compilatori funzionerebbero ancora) .

I linguaggi di programmazione no bisogno Per cambiare, ma potrebbe se una caratteristica desiderabile è resa nuovamente possibile da una modifica delle capacità della macchina. A meno che, per "programmazione di programmi", si intende un linguaggio di assemblaggio/macchina, nel qual caso una istruzione da una a una chip per l'istruzione di assemblaggio/macchina probabilmente dovrebbe essere (ma non deve essere aggiunta).

Notare tutti i "MOTTE". È probabile che queste modifiche siano invisibili per te a meno che tu non stia lavorando in assemblaggio, codice macchina, progettazione del compilatore o progettazione del linguaggio di programmazione. Se non lo sei, preoccuparti di queste cose è uno spreco di tempo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top