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

Documenti analoghi
DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

LINGUAGGI DI ALTO LIVELLO

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

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

COMPILAZIONE. Tarsformazione di linguaggi

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

Linguaggi di programmazione

Programmazione strutturata

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Linguaggi, compilatori e interpreti

Il linguaggio di programmazione Python

Linguaggi di Programmazione

CONCETTI FONDAMENTALI

Introduzione alla Programmazione. Giselda De Vita

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Cosa è l Informatica?

Linguaggi di alto livello, compilatori e interpreti

Unità Didattica 2 I Linguaggi di Programmazione

Dispensa di Informatica II.1

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

Corso Programmazione

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

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

Il calcolatore. Architettura di un calcolatore (Hardware)

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Teoria dell Informazione

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

Primi passi col linguaggio C

Algoritmi e Linguaggi

La rappresentazione dell algoritmo Diagrammi di flusso

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Linguaggi di programmazione e astrazione

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

I.I.S. Federico II di Svevia - Melfi

Introduzione alla programmazione. Walter Didimo

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Programmazione C Massimo Callisto De Donato

Algoritmi e diagrammi di flusso

Linguaggi di Programmazione

Fondamenti di programmazione!! Parte 2!

Struttura del calcolatore

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

FONDAMENTI DI INFORMATICA

Come ragiona il computer. Problemi e algoritmi

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

STORIA E CARATTERISTICHE

Lezione 16. Il Software di base

Linguaggi di programmazione

Elementi di programmazione Algoritmi Flow Chart, Fasi della programmazione Linguaggi Elementi di programmazione ad oggetti

Algoritmi e Programmi

STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER

Corso di Informatica

Prof.Claudio Maccherani 1995

DISPENSE DI PROGRAMMAZIONE

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

ALGORITMI. Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico. Elaboratore elettronico

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.

Indice. Prefazione. 3 Oggetti e Java 53

Introduzione a Visual Studio Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

I linguaggi di alto livello

Sistemi Web per il turismo - lezione 3 -

Corso di Informatica di Base

Informatica. Come si risolve un problema?

Capitolo 1. Computer, algoritmi e linguaggi. c Pearson Education Italia Capitolo 1-1 / 71

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Transcript:

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

La Programmazione Dato un problema INFORMATICO, programmare significa: Definire i dati in ingresso e il risultato che si vuole raggiungere Definire l algoritmo risolutivo, che permette di raggiungere il risultato a partire dai dati; l'algoritmo deve essere finito e realizzabile con le risorse disponibili Tradurre l algoritmo nel linguaggio di programmazione scelto, attraverso la particolare tecnica di programmazione scelta, rispettando le regole sintattiche del linguaggio 2

Linguaggi di programmazione: Linguaggio Macchina I primi linguaggi di programmazione coincidevano con l'insieme delle istruzioni eseguibili dall'hardware. Le istruzioni hardware sono codificate in codice binario: ogni informazione è rappresentata, all'interno della macchina, come una sequenza di bit. Esempio: 00110010, dove 0011 è la rappresentazione interna di un comando e 0010 è un operando Enorme sforzo richiesto per codificare algoritmi semplici. 3

Linguaggi di programmazione: Assembly Dalla nascita dei primi calcolatori, si è cercato di diminuire lo sforzo e aumentare la produttività dell'utente, anche a costo di caricare la macchina di maggiori compiti. E meglio risparmiare il tempo dell'uomo anche a costo di sprecare tempo-macchina (traduzione di programmi e scarsa efficienza del programma). La prima evoluzione dei linguaggi di programmazione ha portato ad una codifica di tipo simbolico, anziché binaria, dei programmi. Tali versioni simboliche dei linguaggi hardware sono note come linguaggi assembly 4

Linguaggi di programmazione: Evoluzione Il passo successivo nell evoluzione dei linguaggi di programmazione tese a rendere la codifica degli algoritmi il più possibile vicina al problema da risolvere anziché all'architettura della macchina destinata all'esecuzione del programma. Non a caso i primi due linguaggi di alto livello, FORTRAN e COBOL, hanno costrutti fortemente ispirati alla notazione usata per descrivere i problemi di maggior rilievo per il calcolo automatico degli anni '50, cioè l'elaborazione numerica e quella gestionale. Alto Livello Assembly Macchina/binario MicroProgrammi Hardware 5

Linguaggi di programmazione: Evoluzione Gli anni '70 vedono il fiorire di linguaggi generalpurpose: il SIMULA 67, l ALGOL 68, ma soprattutto il PASCAL e il C Dagli anni '80 in poi si ha l'affermarsi dei linguaggi orientati agli oggetti (Object-Oriented -OO): C++, Java, C# 6

La Tecnica di Programmazione Non è legata ad un linguaggio, anche se alcuni linguaggi sono ideali per essere abbinati ad una specifica tecnica di programmazione Esistono tre tecniche: a) Programmazione NON Strutturata, che produce lo Spaghetti Code b) Programmazione Strutturata: Sequenza, Selezione, Ripetizione c) Programmazione ad Oggetti: Classe, Oggetto, Metodo 7

La Programmazione Strutturata L obiettivo della programmazione strutturata è di rendere un flusso ordinato il passaggio tra le istruzioni dall inizio alla fine dei programmi. Corrado Böhm e Giuseppe Jacopini hanno dimostrato che tutti i programmi possono essere scritti con l utilizzo di: sequenza, selezione e iterazione (senza l uso del salto goto tipico dello Spaghetti Code). 8

La Programmazione Strutturata Il Blocco è essenziale per la Programmazione Strutturata Bocco d istruzioni: un insieme d istruzioni con una sola entrata, da dove inizia sempre l elaborazione, e una sola uscita, dove termina sempre l elaborazione del blocco {blocco}. Da ora in poi, quando si parlerà di istruzione si può riferire ad una singola istruzione o a un blocco di istruzione. 9

La Programmazione Strutturata Sequenza 10

La Programmazione Strutturata Selezione Selezione 11

La Programmazione Strutturata Iterazione Iterazione 12

Generazione File Eseguibile Editor File sorgente Avvio del Programma di Compilazione Files.h Preprocessore File sorgente Compilatore File Oggetto.obj/.o Avvio del Programma di Linker Codice Oggetto Libreria/e Linker File eseguibile.exe/.out 13

Generazione File Eseguibile File sorgente File sorgente File sorgente File sorgente Compilazione Compilazione Compilazione Compilazione File oggetto File oggetto File oggetto File oggetto Link Libreria/e File eseguibile I codici sorgente ed oggetto possono essere suddivisi in più file, il codice eseguibile di un programma risiede in un unico file 14

Il Compilatore Il compilatore è esso stesso un programma (o un gruppo di programmi) Durante la compilazione avviene: Controllo del codice sorgente da parte di un preprocessore: interpretare speciali direttive di precompilazione, Controllo di eventuali errori sintattici (NON LOGICI), Produzione di un file in codice Assembly, Trasformazione del file in codice Assembly in un altro file in codice OGGETTO (Macchina): estensione.obj 15

Il Linker Il Linker è generalmente un programma distinto dal compilatore: in alcuni ambienti il programma di link deve essere lanciato separatamente Il Linker fa in modo che: i riferimenti tra diversi file oggetto e con le librerie vengano risolti i file oggetto creati dal compilatore vengano trasformati in un unico file eseguibile, al quale vengano associate le librerie necessarie all esecuzione Il risultato prodotto dal Linker è un programma eseguibile, che può essere caricato in memoria 16

La Fase di Caricamento Il Caricamento di un programma in memoria, avviene nel momento in cui l utente richiede la sua esecuzione Durante la fase di caricamento (o loading), il programma eseguibile viene caricato nella memoria del calcolatore; Le Fasi di Compilazione, Linker e Loading sono separate (anche temporalmente) Attenzione: l uso dei compilatori crea false impressioni! 17