Vai al contenuto

Rappresentazione intermedia

Da Wikipedia, l'enciclopedia libera.

Una rappresentazione intermedia è la struttura dati o il codice usato internamente da un compilatore o macchina virtuale per rappresentare il codice sorgente. La rappresentazione intermedia è progettata per agevolare un'ulteriore elaborazione, in termini di ottimizzazione o traduzione.[1] Una "buona" rappresentazione deve essere accurata – in grado di rappresentare il codice sorgente senza perdita di informazioni[2] – e indipendente dal linguaggio di partenza e di arrivo.[1] Una rappresentazione intermedia può essere una struttura dati in memoria o uno speciale codice basato su pila o tupla leggibile dal programma.[3] Nel secondo caso, si parla di linguaggio intermedio.

Un tipico esempio è da trovarsi nei compilatori più moderni. L'interprete di CPython trasforma il testo leggibile che rappresenta un programma in una struttura intermedia a grafo che permette l'analisi del flusso e il riordino prima dell'esecuzione. L'uso di una rappresentazione intermedia come questa permette a sistemi compilatori come GNU Compiler Collection e LLVM di essere adoperati da molti diversi linguaggi di partenza per generare codice adatto a svariate architetture.

  1. 1 2 David Walker, CS320: Compilers: Intermediate Representation (PDF), su cs.princeton.edu. URL consultato il 12 febbraio 2016.
  2. Fred Chow, The Challenge of Cross-language Interoperability, in ACM Queue, vol. 11, n. 10, 22 novembre 2013. URL consultato il 12 febbraio 2016.
  3. Ray Toal, Intermediate Representations, su cs.lmu.edu. URL consultato il 12 febbraio 2016.
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica