ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche
Algoritmi, linguaggi e programmi Algoritmi Formalismi di codifica Linguaggi di programmazione Evoluzione e tipologia Ciclo di vita del software Università degli Studi di Udine
Algoritmi Il termine algoritmo è generalmente usato come sinonimo di: procedura effettiva procedura effettiva procedimento di calcolo procedimento di calcolo metodo di risoluzione di un problema metodo di risoluzione di un problema insieme di regole per eseguire una data operazione insieme di regole per eseguire una data operazione Università degli Studi di Udine
Algoritmi Più precisamente un algoritmo è una procedura generale, finita, non ambigua ed eseguibile che lavora su dati d’ingresso fornendo alcuni dati in uscita. Università degli Studi di Udine
Algoritmi Generale: il metodo deve risolvere una classe di problemi e non una singola istanza. Università degli Studi di Udine
Algoritmi Finita: il numero di istruzioni elementari da eseguire non può essere infinito. Università degli Studi di Udine
Algoritmi Non ambigua: ogni istruzione deve essere definita in modo preciso ed univoco, senza alcuna ambiguità sul significato dell’operazione. Università degli Studi di Udine
Algoritmi Eseguibile: deve esistere un agente di calcolo in grado di eseguire ogni istruzione in un tempo finito. Università degli Studi di Udine
Algoritmi Un algoritmo può essere: deterministico deterministico non deterministico non deterministico probabilistico probabilistico Università degli Studi di Udine
Algoritmi Si dirà deterministico se per ogni istruzione esiste al più un passo successivo. In pratica esiste una e una sola computazione possibile dell’algoritmo. Università degli Studi di Udine
Algoritmi Un algoritmo sarà non deterministico se contiene almeno una istruzione che ammette più passi successivi che possono essere scelti indifferentemente. Università degli Studi di Udine
Algoritmi L’algoritmo si dirà probabilistico se esiste almeno un passo che ammette più passi successivi scelti in base ad una legge di distribuzione della probabilità. Università degli Studi di Udine
Algoritmi Un algoritmo si dirà corretto se perviene alla soluzione del compito cui è preposto. Verrà detto efficiente se consente di raggiungere tale soluzione nel modo più breve possibile. Università degli Studi di Udine
Algoritmi Il concetto di algoritmo non è strettamente legato al mondo informatico e si è evoluto partendo dalla logica. Università degli Studi di Udine
Algoritmi, linguaggi e programmi Algoritmi Formalismi di codifica Linguaggi di programmazione Evoluzione e tipologia Ciclo di vita del software Università degli Studi di Udine
Formalismi di codifica Per fare in modo che le singole istruzioni siano ben definite, sono stati studiati dei formalismi di codifica che cercano di mediare tra il linguaggio comune e il linguaggio matematico. Università degli Studi di Udine
Formalismi di codifica Tra quelli più matematici, basati su grafi (macchina di Turing) e quelli derivanti dalla formalizzazione del linguaggio normale si è diffusa anche una forma grafica detta diagramma di flusso. Università degli Studi di Udine
Formalismi di codifica I diagrammi di flusso sono costituiti da tre tipi diversi di strutture di istruzioni: struttura sequenziale struttura sequenziale struttura di selezione struttura di selezione struttura di ripetizione struttura di ripetizione Università degli Studi di Udine
Formalismi di codifica Qualsiasi algoritmo può essere rappresentato da un diagramma di flusso derivante dalla connessione di un numero finito di strutture elementari. Università degli Studi di Udine
Formalismi di codifica Nella struttura di sequenza le istruzioni vengono eseguite una dietro all’altra. Università degli Studi di Udine
Formalismi di codifica Nella struttura di selezione sono possibili due strade legate ad una condizione: Università degli Studi di Udine
Formalismi di codifica La struttura di ripetizione permette un ciclo condizionato: Università degli Studi di Udine
Formalismi di codifica Altro formalismo di codifica, più legato al linguaggio naturale scritto, è la pseudocodifica (pseudocode) Università degli Studi di Udine
Formalismi di codifica Nella pseudocodifica viene adottata anche l’identazione, una tecnica che prevede il rientro dei gruppi di istruzioni riferite a cicli o a strutture di scelta. Università degli Studi di Udine
Formalismi di codifica Il passaggio dalla pseudocodifica al programma vero e proprio è molto semplice, mentre il diagramma di flusso rende più chiaro il percorso dei dati. Università degli Studi di Udine
Algoritmi, linguaggi e programmi Algoritmi Formalismi di codifica Linguaggi di programmazione Evoluzione e tipologia Ciclo di vita del software Università degli Studi di Udine
Linguaggi di programmazione L’elaboratore elettronico è in grado di eseguire solo programmi che utilizzino il suo set di istruzioni base. In pratica, riesce ad interpretare solo quello che viene chiamato linguaggio macchina. Università degli Studi di Udine
Linguaggi di programmazione I linguaggi di preparazione consentono di redigere i programmi con istruzioni fornite in modo più congeniale all’uomo. Università degli Studi di Udine
Linguaggi di programmazione Inoltre, i linguaggi di programmazione effettuano la traduzione dal linguaggio di alto livello al linguaggio macchina. Università degli Studi di Udine
Linguaggi di programmazione Ogni linguaggio si basa su di una serie di parole chiave articolate in sequenze particolari che vengono riconosciute dal linguaggio solo se “ben formate”. Università degli Studi di Udine
Linguaggi di programmazione Per utilizzare un linguaggio di programmazione bisogna conoscere la sua sintassi, la sua grammatica e la sua semantica. Università degli Studi di Udine
Linguaggi di programmazione Esistono linguaggi di basso livello, che somigliano al linguaggio macchina (Assembler) e linguaggi di alto livello che si avvicinano al linguaggio normale. Università degli Studi di Udine
Algoritmi, linguaggi e programmi Algoritmi Formalismi di codifica Linguaggi di programmazione Evoluzione e tipologia Ciclo di vita del software Università degli Studi di Udine
Evoluzione e tipologia Il primo linguaggio ad alto livello è stato il FORTRAN (FORmula TRANslator) usato principalmente per scopi scientifici e ingegneristici e sviluppato alla fine degli anni Cinquanta. Università degli Studi di Udine
Evoluzione e tipologia Altri linguaggi molto usati furono il COBOL, il LISP, il Pascal, il Prolog, il C e l’ADA, sviluppati dal ‘60 alla fine degli anni ‘70. Università degli Studi di Udine
Evoluzione e tipologia Ultimamente si sono sviluppati altri linguaggi, quali C++ (‘85) e il più famoso Java (‘94). Ovviamente ulteriori linguaggi verranno creati in futuro per sfruttare le nuove tecnologie. Università degli Studi di Udine
Evoluzione e tipologia I linguaggi più studiati a livello didattico sono il Pascal e il C (nelle loro forme standard) per il loro uso coerente della programmazione strutturata. Università degli Studi di Udine
Evoluzione e tipologia I linguaggi di programmazione si dividono in: linguaggi interpretati linguaggi interpretati linguaggi compilati linguaggi compilati Università degli Studi di Udine
Evoluzione e tipologia Nei linguaggi interpretati, ad ogni esecuzione del programma viene effettuata la traduzione in linguaggio macchina. Università degli Studi di Udine
Evoluzione e tipologia I linguaggi compilati sono, invece, dotati di un compilatore che traduce, una volta per tutte, il programma trasformandolo in programma oggetto. Università degli Studi di Udine
Evoluzione e tipologia Vanno ora diffondendosi i linguaggi ad oggetti e la conseguente programmazione orientata agli oggetti, che consentono un più efficace stile di programmazione. Università degli Studi di Udine
Evoluzione e tipologia Esempi tipici di programmazione ad oggetti sono ottenibili attraverso C++ o Java. Essi associano anche strumenti visuali di programmazione. Università degli Studi di Udine
Algoritmi, linguaggi e programmi Algoritmi Formalismi di codifica Linguaggi di programmazione Evoluzione e tipologia Ciclo di vita del software Università degli Studi di Udine
Ciclo di vita del software La costruzione dei prodotti informatici non è un procedimento casuale, ma costituisce quello che viene definito il ciclo di vita del software. Università degli Studi di Udine
Ciclo di vita del software Tale ciclo parte dalla nascita del programma e termina con la sua definitiva eliminazione dal sistema. Università degli Studi di Udine
Ciclo di vita del software Vengono individuate sette fasi fondamentali: lo studio di fattibilità lo studio di fattibilità l’analisi e la specifica dei requisiti l’analisi e la specifica dei requisiti il progetto dell’architettura del sistema il progetto dell’architettura del sistema la realizzazione dei singoli moduli la realizzazione dei singoli moduli l’integrazione del sistema l’integrazione del sistema l’installazione l’installazione la manutenzione. la manutenzione. Università degli Studi di Udine
Ciclo di vita del software Nello studio di fattibilità si stimano i possibili costi di sviluppo derivanti dalla realizzazione del prodotto e si comparano con i benefici ricavabili. Università degli Studi di Udine
Ciclo di vita del software Nella seconda fase vengono esplicitate le proprietà richieste al programma e specificati gli obiettivi che si vogliono conseguire, fino a portare alla formalizzazione delle funzioni e delle strutture dati che risolvono il problema. Università degli Studi di Udine
Ciclo di vita del software Il progetto dell’architettura del sistema prevede la scomposizione del problema generale in problemi più semplici detti moduli. Università degli Studi di Udine
Ciclo di vita del software Vengono, quindi, realizzati separatamente, tramite un qualsiasi linguaggio, i vari moduli ed ogni singola componente è controllata e verificata per garantire le specifiche richieste. Università degli Studi di Udine
Ciclo di vita del software Nella fase di integrazione le singole sottoparti vengono assemblate ottenendo il programma completo Università degli Studi di Udine
Ciclo di vita del software La fase di verifica dell’intero sistema si esplicita tramite alcuni controlli effettuati dal produttore (alfa-test) e, in seguito, da terze parti (beta-test). Università degli Studi di Udine
Ciclo di vita del software L’installazione è la fase in cui il sistema viene messo in opera, effettuando l’operazione di trasporto del programma dall’ambiente di sviluppo del produttore all’ambiente di utilizzazione del cliente. Università degli Studi di Udine
Ciclo di vita del software Dalla consegna del programma fino alla definitiva disinstallazione, vi è una lunga fase che prende il nome di manutenzione. Università degli Studi di Udine