Linguaggi, compilatori e interpreti

Documenti analoghi
AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Linguaggi di alto livello, compilatori e interpreti

Fondamenti VBA. Che cos è VBA

COMPILAZIONE. Tarsformazione di linguaggi

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Introduzione alla programmazione. Walter Didimo

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Unità Didattica 2 I Linguaggi di Programmazione

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

I programmi Assembler e Linker

Concetti Introduttivi. Il Computer

Laboratorio di Architettura degli Elaboratori

Il calcolatore. Architettura di un calcolatore (Hardware)

Introduzione al Linguaggio C ed all IDE DEV-C++

Linguaggi di programmazione

Lecture 2: Prime Istruzioni

Richiami sull architettura del processore MIPS a 32 bit

Guida all installazione ed all uso di ASIM

Orario del corso. Contenuti del corso. Modalità d esame. Analisi Numerica 1 a.a. 2011/2012

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

Architettura dei computer

LA MEMORIA NEL CALCOLATORE

La memoria principale

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

Algoritmi. Pagina 1 di 5

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

PSC Doc Manuale d uso

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

COSTRUZIONE DI UN APPLICAZIONE

Le aree dell informatica

Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA

Unità Didattica 2 Rappresentazione dei Dati

Gli indirizzi occupano spazio! Gli indirizzi occupano spazio! Corso di Architettura degli Elaboratori. Indirizzamento immediato

Informatica Teorica. Macchine a registri

Elementi base per la realizzazione dell unità di calcolo

Introduzione alle macchine a stati (non definitivo)

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

FONDAMENTI DI INFORMATICA Lezione n. 11

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

Algoritmi e Linguaggi

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

Sistemi Web per il turismo - lezione 3 -

Sommario. Tabelle ad indirizzamento diretto e hash Funzioni Hash

Elementi di base del calcolatore

Implementazione semplificata

Architettura degli elaboratori Docente:

Modelli di programmazione parallela

I sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

Progettazione logica

Diagrammi a blocchi 1

II Esercitazione: S.O. & Fortran 77

Esercitazione 1 Codifica e Rappresentazione dell Informazione Istruzioni Assembly MIPS

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n PONTEDERA (PI) DIPARTIMENTO: Informatica

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H

Bit, Byte, Word e Codifica Dati

SPECIFICHE OPERATIVE X LA CONTABILITA DEI PROFESSIONISTI

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

Architettura dei calcolatori e Software di sistema

Laboratorio di Architettura lezione 5. Massimo Marchiori W3C/MIT/UNIVE

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

I dischi ottici. Istituzioni di Informatica -- Rossano Gaeta 43

UML I diagrammi implementativi

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

La gestione dell I/O (Cap. 5, Tanenbaum)

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

Struttura del calcolatore

Algebra di Boole Algebra di Boole

Il sistema informativo aziendale

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

EXCEL: FORMATTAZIONE E FORMULE

CAE. Ingegnerizzazione assistita da calcolatore

Devi tradurre ed eventualmente aggiornare per conformità alcune schede di sicurezza dei tuoi prodotti.

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Uso dei metodi di indirizzamento

E un trasduttore digitale in grado di fornire una indicazione binaria della. Non sfruttano alcun principio fisico. Nei trasduttori lineari a principio

Il ciclo di lavorazione

Le sue caratteristiche:

Interfacciamento di periferiche I/O al μp 8088

Memoria Secondaria o di Massa

Informatica e Informatica di Base

Definizione di metodi in Java

SIGEN GESTIONI PROVE GRUPPI ELETTROGENI

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Elaborazione Questionari di Gradimento. G.Q.S. Srl Global Quality Service

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

INTRODUZIONE ALLE BASI DATI RELAZIONALI

ICT e Business Solutions. Passaporto Elettronico Agenda On Line

Richiami di informatica e programmazione

Fondamenti Teorici. Antonio Pescapè e Marcello Esposito Parte Seconda v2.0

APPUNTI DI MATEMATICA ALGEBRA \ CALCOLO LETTERALE \ MONOMI (1)

La divisione esatta fra a e b è l operazione che dati i numeri a e b (con a multiplo di b) permette di trovare un terzo numero c tale che c b = a.

L analisi dei processi

Architettura di un PC

26.03-ITA. Il metodo Victaulic per tubazioni per accomodare gli sfalsamenti

Transcript:

Linguaggi, compilatori e interpreti 1 Il codice macchina 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? 2 1

Il linguaggio assembly 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 Oper. 1 Oper. 2 001000100011 0001 1001 0000 0000 1111 LOAD R1 900Fh LOAD R1, 900Fh Carica nel registro R1 il contenuto della locazione di indirizzo 900Fh 3 Il linguaggio assembly 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. 4 2

Esempio di Linguaggio Assembly LOAD R i, IND; Lettura dall indirizzo IND a reg. R i STORE IND, R i ; Scrittura dal registro R i all indirizzo IND ADD R K, R i, R j Somma il contenuto dei reg. R i e R j in R k 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: 5 Esempio di Linguaggio Assembler PROGRAMMA.data IND1:.word 10/H IND2:.word 05/H IND3:.space 4.text LOAD R1,IND1; LOAD R2,IND2; ADD R3, R1, R2; STORE IND3, R3; Copia in R1 da IND1 Copia in R1 da IND1 Somma R1, R2 in R3 Copia da R3 in IND3; 6 3

ASSEMBLER 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. Sorgente (In Linguaggio Assembler) ASSEMBLATORE (Analisi del codice e traduzione) Oggetto 7 Fasi di sviluppo di un programma in Assembly Sorgente 1) Creazione del sorgente e salvataggio su disco TASTIERA Sorgente TEXT EDITOR Calcolatore Disco Sorgente 2) Traduzione del sorgente nel programma oggetto Disco Disco Assemblatore Calcolatore Oggetto 3) Caricamento in memoria ed esecuzione Oggetto Utente Calcolatore 8 4

I linguaggi di alto livello 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. 9 Traduzione dei linguaggi ad alto livello Essi, come per il linguaggio Assembler, richiedono una traduzione in linguaggio macchina per essere eseguiti. Tale attività può essere realizzata tramite: compilazione 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. 10 5

Confronto tra Compilatore e Interprete 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ù veloci rispetto all interpretazione a discapito del tempo di sviluppo. L interprete consente tempi di sviluppo minori a discapito dell efficienza nell esecuzione. 11 Il linker La soluzione di grossi problemi può essere risolta scomponendoli in sottoproblemi. Un sottoproblema può essere ulteriormente scomponibile. PROBLEMA Sottoproblema 1 Sottoproblema 1.1 Sottoproblema 1.2 Sottoproblema 2 Sottoproblema 3 A ciascuna soluzione parziale può corrispondere un programma parziale, detto modulo. Ciascun modulo può essere compilato separatamente. 12 6

Il linker 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 0 2000 0 700 MOD. 1 MOD. 2 MOD. 3 LINKER 0 1000 1001 3001 3002 3702 MOD. 1 MOD. 2 MOD. 3 13 7