Linguaggi di programmazione
Problema Algoritmo Programma
Progettista Programmatore Progetto Programma Esecutore Computer Comittente Utente
Dal problema all algoritmo Problema Risolutore ed esecutore Algoritmo Flusso di esecuzione Memoria Automi Calcolo automatico Macchine di Turing Proprietà degli algoritmi
Problema (Teorema di Pitagora) Stato iniziale Ciò che è rilevabile prima di iniziare (i due cateti) Stati intermedi (i quadrati dei due cateti) Stato finale (l ipotenusa)
Problema Fasi analisi progettazione verifica della soluzione specifica attraverso istruzioni le azioni da svolgere per passare dallo stato iniziale agli stati intermedi ed ai risultati finali
Risolutore ed esecutore_1 Risolutore: ricerca e definisce le istruzioni che, inteprerate da un esecutore, partendo dai dati iniziali conducono ai dati finali Esecutore: interperta le istruzioni ed eseguendole definisce le azioni da compiere per giungere al risultato finale
Risolutore ed esecutore_2 Risolutore Istruzioni Linguaggio Dati iniziali Esecutore azioni dati intermedi Dati finali
Algoritmo Insieme delle regole che consentono la risoluzione di un determinato problema Procedura effettiva composta da istruzioni che, a partire da dati conosciuti, ottengano i risultati desiderati Sequenza di istruzioni Tipi di istruzioni: operative di controllo decisionale o di selezione
Flusso di esecuzione istruzione1 passo1 istruzione2 passo2 Flusso istruzione1 istruzione2..
Memoria dati iniziali dati intermedi dati finali Memoria istruzioni
Automa Esegue in modo automatico una sequenza di azioni predefinite ingressi automa uscite stati interni dell automa ingressi 4 2 uscite 1 3
Calcolo automatico Macchina di Turing - MdT Meccanismo di controllo Testina di lettura/scritura nastro
Proprietà degli algoritmi Algoritmo - il numero di istruzioni è finito - le istruzioni devono poter essere eseguibili dall esecutore - ogni istruzione deve poter essere eseguita in un tempo finito Dati iniziali - il numero non è limitato a priori Esecutore - le istruzioni che è in grado di eseguire sono in nunero finito - ha memoria - il calcolo avviene in passi discreti - la memoria non è limitata a priori - il numero di passi di esecuzione non è limitato a priori - il calcolo non può essere probabilistico - sono ammesse esecuzioni con un numero di passi finito Dati finali
Linguaggi algoritmici Caratteristiche del linguaggio algoritmico Variabili. Tipo di dato Diagramma a blocchi. Tipi di blocchi Programazione strutturata Pseudolinguaggio
Caratteristiche del linguaggio algoritmico non ambigui capacità di esplicitare il flusso di esecuzione delle istruzioni Categorie delle istruzioni: - operative - input/output - decisionali
Variabili Variabile == una zona di memoria atta a contenere un dato Identificatore == nome della zona di memoria Memoria dei dati == insieme delle variabili Assegnamento == associare a una variabile un valore Tipo di dato: definisce l insieme dei valori che la variabile può assumere e l insieme delle operazioni ammesse sui dati
Tipi di blocco Diagramma a blocchi inizio fine input / output operativi decisionali
Programmazione strutturata Struttura Fondamentali strutture di controllo del flusso sequenza selezione ripetizione
Pseudolinguaggio Un pseudolinguaggio o linguaggio di progetto consente la rappresentazione o pseudocodifica degli algoritmi utilizzando un numero ristretto di termini a cui sono attribuiti un significato univoco e precise regole di composizione Parole chiave: INIZIO, FINE, A, ALLORA, ALTRIMENTI, CASO, DA, DI, ESEGUI, FINCHE, FINE, INIZIO, MENTRE, PASSO, PER, RIPETI, SE Esempio: INIZIO FINE chiedi (base, altezza) leggi (base, altezza) area base * altezza scrivi (area)
Dall algoritmo al programma
Evoluzione dei linguaggi Linguaggi di programmazione Linguaggio macchina Linguaggi assembler Linguaggi ad alto livello Linguaggi orientati ad oggetti Traduttori, compilatori, interpreti
Linguaggi di programmazione Uomo Linguaggi ad alto livello Linguaggi a basso livello Microlinguaggi Hardware C++, Visual Basic Assembler, linguaggi macchina
Linguaggi macchina Programma (codice oggetto): sequenza di cifre binarie che codificano le istruzioni e i dati Le istruzioni sono strettamente legate all architettura dell elaboratore Codice operativo operando 0000010011011011 0000000001101010 Esempio di programma: 0000000000010101 0000000000011111 0000000000010101 preleva il contenuto della cella di memoria di indirizzo 84 0000000001011110 sommalo al valore 639
Linguaggi assembler Programma (codice mnemonico) Esempio: CARICA 84 preleva il contenuto della cella di memoria di indirizzo 84 SOMMA 639 sommalo al valore 639 Assembler traduttore Linguaggio macchina
Linguaggi ad alto livello Programma: le istruzioni utilizzano simboli matematici e seguono il modo di ragionare dell uomo Linguaggi ad alto livello traduttore Linguaggio macchina I più noti: COBOL COmmon Business Oriented Language per applicazioni di tipo gestionale FORTAN FORmula TRANslator per applicazioni di tipo scientifico PASCAL orientato a scopi didattici C utilizzato da progettatori di programmi per la gestione dell elaboratore
Linguaggi orientati ad oggetti OOP Object Oriented Programmimng Consentono di modellare, in modo più naturale per l uomo, gli elementi della realtà che deve essere rappresentata nella soluzione del problema Un oggetto è un elemento concreto definito dalle sue caratteristiche e dai suoi comportamenti. Esempio: Il cittadino Paolo Rossi che vive a Roma è definito in base alle caratteristiche di: e alle scelte di: I piu famosi: essere nato a Roma nel 1990, di risiedere in Via Nomentana al n. 34 trasferisci in Via Milano al n. 50, sposarsi con Maria Bianchi e avere un figlio C++ estensione del linguaggio C Java
Traduttori, compilatori, interpreti Linguaggio Assembler Codice mnemonico Assemblatore Codice eseguibile Codice oggetto Linguaggio ad alto livello Codice sorgente Compilatore Codice eseguibile Codice oggetto Codice sorgente Fase di compilazione Codice oggetto Fase di esecuzione Codice sorgente Interprete Compilazione + esecuzione
Il Visual Basic Ha origine dal linguaggio BASIC (Beginners Allpurpose Symbolic Instruction Code) ovvero linguaggio adatto ai principianti e a tutti gli scopi. Il termine Visual indica che il programma si sviluppa in un ambiente grafico dove utilizza i classici elementi quali le finestre, i pulsanti, caselle, ecc.
Ambiente di programmazione Le applicazioni software create con VB sono realizzate con un progetto Tipi di progetto: Standard.exe Active.exe ActiveX.DLL ActiveX Controls ActiveX Document Add-in files VB Application Wizard Form Controlli Moduli Finestre del Progetto delle Proprietà di Disposione form Esecuzione immediata del Codice Casella degli strumenti
Oggetti dell interfaccia grafica Form Casella di testo icona Form etichetta bottone Codice (Procedure o Funzioni) modulo Procedura Dichiarazione delle variabili Progetto (.VBP): insieme di form (.FRM) e di moduli (.BAS)
Il codice Insieme di istruzioni del linguaggio Istruzioni organizzate come unità logiche in routine: Sub (Private/Public) Function Finestra del codice lista degli oggetti lista delle Routine Formattazione automatica
Caratteristiche del linguaggio_1 istruzione commento istruzione : istruzione (sulla stessa riga) istruzione_continua (anche su più righe) argomenti (di Sub e Function) separati da, aiuto F1 assegnazione nome_variabile = valore nome variabile: max 40 caratteri (iniziano con una lettera)
Caratteristiche del linguaggio_2 Tipo di dato Dimensione Intervallo Byte Boolean Integer Long Single Double Date String 1 byte 2 byte 2 byte 4 byte 4 byte 8 byte 8 byte lunghezza stringa da 0 a 255 True e False da -32766 a 32767 da -2147483648 a 2147483647 virgola mobile a precisione semplice virgola mobile a precisione doppia Da 1 gennaio 1000 a 31 dicembre 9999 Da 1 a circa 65400 Carattere % &! # $ Tipo di dato Integer Long Single Double String suffissi tipo di variabile