• Non ci sono risultati.

Compilatori e interpreti

N/A
N/A
Protected

Academic year: 2021

Condividi "Compilatori e interpreti"

Copied!
7
0
0

Testo completo

(1)Prof. Giuseppe Ascia. Linguaggi, compilatori e interpreti. Fondamenti di Informatica. 1. Il codice macchina Prof. Giuseppe Ascia. ƒCiascun calcolatore ha un ampio insieme di istruzioni che è in grado di eseguire. ƒLe istruzioni vengono rappresentate mediante sequenze di bit 001000100011. 0101010111. 1100101001. Codice operativo. Operando 1. Operando 2. ƒPoiché il numero di istruzioni in un programma possono essere anche migliaia è assai facile commettere errori ƒScrivere un programma in linguaggio macchina richiede molto tempo. Quale soluzione adottare per semplificare la produzione del software ? Fondamenti di Informatica. 2. 1.

(2) Il linguaggio assembly Prof. Giuseppe Ascia. ƒ Costituisce la prima soluzione adottata. ƒ Ancora oggi è utilizzato per realizzare in modo ottimizzato alcune parti di programmi. ƒ Le istruzioni, gli indirizzi e i dati vengono rappresentati in forma simbolica. Codice operativo 001000100011 ↓ LOAD •. Oper. 1 0001 ↓ R1. Oper. 2 1001 0000 0000 1111 ↓ 900Fh. LOAD R1 , 900Fh Carica nel registro R1 il contenuto della locazione di indirizzo 900Fh. Fondamenti di Informatica. 3. Il linguaggio assembly Prof. Giuseppe Ascia. • • •. Ogni processore ha un proprio insieme di istruzioni. Non esiste un unico Linguaggio Assembly per tutti i possibili processori. Ogni processore ha il suo Linguaggio Assembly.. Fondamenti di Informatica. 4. 2.

(3) Esempio di Linguaggio Assembly Prof. Giuseppe Ascia. • • • •. LOAD Ri, IND; STORE IND, Ri; ADD RK, Ri, Rj. Lettura dall’ indirizzo IND a reg. Ri Scrittura dal registro Ri all’indirizzo IND Somma il contenuto dei reg. Ri e Rj in Rk. Esempio di programma Si vuole realizzare la somma di due grandezze contenute in memoria agli indirizzi IND1e IND2. Il risultato deve essere conservato all’indirizzo IND3:. Fondamenti di Informatica. 5. Esempio di Linguaggio Assembler Prof. Giuseppe Ascia. PROGRAMMA .data IND1: IND2: IND3:. .word 10/H .word 05/H .space 4. .text LOAD R1,IND1; LOAD R2,IND2; ADD R3, R1, R2; STORE IND3, R3;. Fondamenti di Informatica. Copia Copia Somma Copia. in R1 da IND1 in R1 da IND1 R1, R2 in R3 da R3 in IND3;. 6. 3.

(4) ASSEMBLER Prof. Giuseppe Ascia. • • •. Un programma scritto in un linguaggio assembly non è eseguibile dalla macchina. È necessario un traduttore dal linguaggio assembly al linguaggio della macchina. Il traduttore è un programma chiamato ASSEMBLER. Programma Sorgente (In Linguaggio Assembler). Programma ASSEMBLATORE (Analisi del codice e traduzione). Programma Oggetto. Fondamenti di Informatica. 7. Fasi di sviluppo di un programma in Assembly Prof. Giuseppe Ascia. Programma Sorgente. 1) Creazione del sorgente e salvataggio su disco. TASTIERA. TEXT EDITOR Calcolatore. Programma Sorgente. 2) Traduzione del sorgente nel programma oggetto. Disco Programma Sorgente. Assemblatore Calcolatore Disco. Programma Oggetto. Disco. Programma Utente. 3) Caricamento in memoria ed esecuzione. Calcolatore Programma Oggetto. Fondamenti di Informatica. 8. 4.

(5) I linguaggi di alto livello Prof. Giuseppe Ascia. Svantaggi dell’Assembly: ƒ è legato al tipo di calcolatore, non trasportabilità; ƒ scomodità nella scrittura dei programmi; ƒ facilità nel commettere errori; ƒ scomodità nella gestione dei dispositivi di I/O; Per superare queste ed altre difficoltà sono stati definiti dei Linguaggi ad alto livello. Essi permettono ƒ di gestire in modo semplice le operazioni di I/O; ƒ di usare un linguaggio più vicino a quello naturale; ƒ di produrre programmi in modo più veloce e con minori errori; ƒ di ottenere programmi più leggibili. Fondamenti di Informatica. 9. Traduzione dei linguaggi ad alto livello Prof. Giuseppe Ascia. ƒ Essi, come per il linguaggio Assembler, richiedono una traduzione in linguaggio macchina per essere eseguiti. ƒ Tale attività può essere realizzata tramite: 9 compilazione 9 interpretazione; Compilatore ƒ Il programma compilatore analizza e traduce nella sua interezza il programma sorgente. ƒ Il risultato della compilazione è un programma oggetto. ƒ Solo dopo la traduzione dell’intero programma è possibile eseguirlo Interprete ƒ Il programma interprete analizza e traduce istruzione per istruzione in linguaggio macchina. ƒ Non appena una istruzione è interpretata può essere eseguita. Fondamenti di Informatica. 10. 5.

(6) Confronto tra Compilatore e Interprete Prof. Giuseppe Ascia. Vantaggi del compilatore: ƒ migliori prestazioni nell’esecuzioni; ƒ il codice ottenibile può essere ottimizzato. Vantaggi dell’interprete: ƒ consente una minore occupazione di memoria; ƒ minore costo nella modifica dei programmi. ƒLa compilazione porta ad applicativi più all’interpretazione a discapito del tempo di sviluppo. ƒL’interprete consente tempi dell’efficienza nell’esecuzione.. di. sviluppo. veloci. minori. Fondamenti di Informatica. a. rispetto. discapito. 11. Il linker Prof. Giuseppe Ascia. ƒ La soluzione di grossi problemi può essere risolta scomponendoli in sottoproblemi. ƒ Un sottoproblema può essere ulteriormente scomponibile. PROBLEMA Sottoproblema 1. Sottoproblema 2. Sottoproblema 1.1 Sottoproblema 1.2. Sottoproblema 3. ƒ A ciascuna soluzione parziale può corrispondere un programma parziale, detto modulo. ƒ Ciascun modulo può essere compilato separatamente. Fondamenti di Informatica. 12. 6.

(7) Il linker Prof. Giuseppe Ascia. ƒ Ciascuno dei moduli compilati ha un indirizzo logico iniziale pari a zero. ƒ E’ necessaria una fase di collegamento dei diversi moduli per produrre un unico programma. ƒ Il collegamento dei diversi moduli è realizzato dal programma LINKER (collegatore). 0. 1000. MOD. 1. 0. 2000. MOD. 2. 700. 0. MOD. 3. LINKER 0. 1000 1001. MOD. 1 Fondamenti di Informatica. 3001 3002. MOD. 2. 3702. MOD. 3 13. 7.

(8)

Riferimenti

Documenti correlati

•Gli oggetti di tipo Esempio1 espongono un metodo getValue() che ritorna il valore attuale di value. •Gli oggetti di tipo Esempio1 espongono un metodo setValue(int newValue)

Senza gli apici semplici, che impedirebbero alla bash di interpretare i metacaratteri, l'interpretazione viene PRIMA effettuata dalla bash con i nomi dei file

Sforzandoci allora di pensare un legame fondante la coerenza degli immensi contributi di Diderot – senza però appiattirli su di una sistemicità da lui non

[r]

Non bisogna pensare però, io credo, che qui egli intenda accreditare una teoria dell’argomentazione nell’uso corrente, ad esempio alla Alexy (anche se Alexy è citato in

Approfondire il ruolo dell’interprete nel corso della storia permette di mette- re in luce nozioni fondamentali insite nel ruolo dell’interprete, e ora ancorate nei

In sintesi, i Gruppi hanno discusso su ragioni, finalità e obiettivi della rifor- ma, off rendo indicazioni generali per la sua attuazione; sulla centralità della persona

o Un interprete è un programma che non produce alcun programma oggetto, ma legge il ogni istruzione del programma sorgente e genera le istruzioni macchina corrispondenti,