Il Software programmabili programma algoritmo

Похожие документы
L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

Prof. Rossella Cancelliere

Sistema Operativo. (hardware e software) della della macchina

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

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

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Il linguaggio di programmazione Python

Linguaggi di Programmazione

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

Algoritmi e Linguaggi

Introduzione alla programmazione. Walter Didimo

Introduzione alla Programmazione. Giselda De Vita

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Linguaggi di programmazione

Cosa è un programma. Informatica di Base -- R.Gaeta 18

Linguaggi di Programmazione

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI

Introduzione alla programmazione

Introduzione al funzionamento di un calcolatore elettronico

INFORMATICA. L informatica comprende:

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

Cosa è l Informatica?

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

FONDAMENTI DI INFORMATICA

I Linguaggi di Programmazione

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Fondamenti di Informatica T. Il Software

Concetti di Base sulla Programmazione. Prof.Ing.S.Cavalieri

Linguaggi, Traduttori e le Basi della Programmazione

Concetti Introduttivi. Il Computer

Programmazione C Massimo Callisto De Donato

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

Linguaggi, compilatori e interpreti

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Linguaggi di alto livello, compilatori e interpreti

FONDAMENTI DI INFORMATICA

Lezione 16. Il Software di base

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Struttura del calcolatore

Algoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo

Elementi di programmazione

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

Fondamenti VBA. Che cos è VBA

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

Corso sul linguaggio Java

Linguaggi di programmazione e astrazione

Linguaggi di programmazione

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

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

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

Teoria dell Informazione

CONCETTI FONDAMENTALI

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

LEZIONE 4. Hardware (periferiche) Software (algoritmi)

Introduzione alla programmazione

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

Programmazione di INFORMATICA e Laboratorio

Il calcolatore. Architettura di un calcolatore (Hardware)

Reti Logiche e Architettura dei Calcolatori

CHE COS È L INFORMATICA. Prof. Enrico Terrone A. S. 2014/15

Транскрипт:

Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia una sequenza di istruzioni direttamente eseguibili. Per scrivere il programma occorre definire prima l algoritmo, cioè i dati e la sequenza di azioni elementari che devono essere eseguite per risolvere il problema.

Il Software Programmare nel linguaggio della macchina hardware e` difficile perché l utente dovrebbe conoscere l organizzazione fisica dell'elaboratore e il suo linguaggio macchina; ogni programma dovrebbe essere scritto utilizzando delle sequenze di bit ed ogni piccola differenza hardware comporterebbe una riscrittura del programma stesso.

Il Software Questo non è accettabile ed è necessario fornire all utente un meccanismo per: astrarre dall organizzazione fisica della macchina; usare nello stesso modo, o comunque in modo molto simile, macchine leggermente diverse dal punto di vista hardware o, al limite, macchine con hardware profondamente differente; avere un semplice linguaggio di interazione con la macchina; avere un linguaggio semplice e ad alto livello per programmare la macchina; avere un insieme di programmi applicativi per svolgere diversi compiti

Il Software Nei moderni sistemi di elaborazione questi obiettivi vengono raggiunti grazie alla definizione di macchine virtuali che vengono realizzate al di sopra della macchina hardware reale Utente HW macchina virtuale

Macchine Virtuali Ogni macchina reale ha un suo linguaggio macchina L 0 le cui istruzioni sono direttamente eseguibili dai circuiti elettronici (HW) Al di sopra di questo linguaggio è possibile definire altri linguaggi L i e fornire delle regole per tradurne le istruzioni in opportune sequenze di istruzioni in linguaggio macchina L insieme di queste nuove istruzioni definisce una macchina virtuale in quanto non esiste fisicamente ma viene realizzata mediante il software La macchina virtuale si preoccuperà della traduzione delle istruzioni al livello L i nell'opportuna sequenza di istruzioni di livello L i-1 che realizza la stessa funzione

Esempio: all insieme di istruzioni macchina L 0 possiamo aggiungere la funzione MULT(op1, op2) che non e` realizzata dall hardware, ma dall esecuzione di un programma La macchina virtuale L 1 è costituita da L 0 {MULT} Usando le istruzioni di L 1 è possibile costruire livelli sempre più sofisticati: L 1 {ESP}

Esempio: supponiamo che l'utente voglia stampare un file. A livello fisico questa operazione è complessa e richiede operazioni di trasferimento dati dal disco alla stampante (via memoria centrale) La macchina virtuale fornisce all'utente un semplice comando di stampa: > print file1 mediante il quale si può richiedere la stampa delle informazioni contenute nel file di nome file1

La macchina virtuale deve innanzitutto verificare se si tratta di un comando valido Poi tradurlo nell opportuna sequenza di istruzioni a basso livello per la macchina fisica Una volta eseguito il comando, la macchina virtuale si pone in attesa di un nuovo comando da parte dell'utente Grazie a questo livello software si può astrarre dalle caratteristiche fisiche della macchina Si può anche fare in modo che macchine differenti siano usabili in modo simile: si tratta, infatti, di costruire al di sopra delle diverse macchine fisiche la stessa macchina virtuale Per ogni comando della macchina virtuale si dovranno però avere diversi programmi di traduzione, uno per ogni tipo di hardware

Software di base Strumenti per l uso di linguaggi ad alto livello: Interpreti e compilatori Strumenti per l esecuzione di programmi Sistema operativo Configurazione e accensione macchina Gestione di informazione su memoria secondaria => FILE SYSTEM Gestione delle risorse Comunicazione tra utente e sistema

Software di base: Linguaggi di Programmazione Programmare in linguaggio macchina: richiede conoscenza dell hardware produce programmi non portabili Si può utilizzare il linguaggio assembler linguaggio vicino al linguaggio macchina usa mnemonici e simboli anziché codifiche e indirizzi la traduzione da assembler a linguaggio macchina può essere fatta dal calcolatore, mediante un assemblatore Programma P in Assembler Traduttore assembler su macchina M Programma P in linguaggio macchina M

Software di base: Linguaggi di Programmazione Il linguaggio assembler produce comunque programmi lunghi e non portabili Per superare queste difficoltà sono nati i linguaggi di programmazione ad alto livello astraggono dalle caratteristiche hardware sono facile da usare sono portabili pero` non producono programmi direttamente eseguibili e necessitano di una traduzione

Software di base: Linguaggi di Programmazione Un linguaggio di programmazione ad alto livello L definisce una macchina virtuale; per poter eseguire su una macchina fisica M un programma scritto nel linguaggio L occorre tradurlo nel linguaggio macchina di M Il meccanismo di traduzione permette di astrarre dalle caratteristiche fisiche della macchina hardware, per cui programmi scritti nello stesso linguaggio possono essere eseguiti su macchine diverse Portabilita`

Software di base: Linguaggi di Programmazione Ogni linguaggio di programmazione fornisce un insieme di costrutti base per: definire i dati su cui il programma opera specificare le azioni elementari da eseguire sui dati comporre istruzioni elementari in: sequenze blocchi condizionali blocchi che devono essere ripetuti interagire con l utente per l acquisizione di dati (input) la produzione di dati (output)

Software di base: Linguaggi di Programmazione Esistono due diverse tecniche di traduzione per programmi scritti in linguaggio di alto livello: Compilazione: il programma P scritto nel linguaggio L viene tradotto in un programma equivalente P scritto nel linguaggio macchina, che viene poi eseguito Interpretazione: sulla macchina M viene mandato in esecuzione un programma interprete che per ogni istruzione del programma P genera la sequenza corrispondente di istruzioni macchina e le fa eseguire

COMPILAZIONE es. PASCAL, C, FORTRAN, COBOL... Programma P in linguaggio L Compilatore di L sulla macchina M Programma P in linguaggio macchina di M Esecuzione di P su M

INTERPRETAZIONE es. : LISP, PROLOG, BASIC... Programma P in linguaggio L Per ogni istruzione Interprete per L Istruzioni in linguaggio macchina di M Esecuzione di tali istruzioni su M