Breve Excursus su Evoluzione della Programmazione. Corso di Linguaggi e Metodologie di Programmazione

Documenti analoghi
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Automazione Industriale 4- Ingegneria del Software

FONDAMENTI di INFORMATICA L. Mezzalira

Introduzione ai tipi di dato astratti: applicazione alle liste

Concetti di base di ingegneria del software

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

INFORMATICA 1 L. Mezzalira

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Fasi di creazione di un programma

Object Oriented Programming

Linguaggi di programmazione

Programmazione Orientata agli Oggetti in Linguaggio Java

Origini e caratteristiche dei calcolatori elettronici

Istituto Universitario Navale Facoltà di Ingegneria Corso di Laurea in Ingegneria delle Telecomunicazioni

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

Descrizione di un algoritmo

Strumenti di modellazione. Gabriella Trucco

Gestione del workflow

Modellazione dei dati in UML

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

Progettaz. e sviluppo Data Base

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

Ingegneria del Software 12. Progettazione. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Generazione Automatica di Asserzioni da Modelli di Specifica

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

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

I NUOVI MODELLI ORGANIZZATIVI E TECNOLOGICI A SUPPORTO DELL EFFICIENZA AZIENDALE

GLOSSARIO MANAGEMENT SOCIALE

Anno di corso: 2004/2005. Istruzioni. Istruzioni per lo svolgimento dei progetti didattici. versione 1.1

TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE

DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Dispensa di Informatica I.1

LA FORMAZIONE E LA CONSERVAZIONE DELLA MEMORIA DIGITALE

Tecnologie dei Linguaggi di Programmazione

Introduzione ai Web Services Alberto Polzonetti

CORSO DI PROGRAMMAZIONE JAVA

Esercizio 1: trading on-line

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

Automazione Industriale (scheduling+mms) scheduling+mms.

GLI ARCHIVI DI DATI. File Un File è una sequenza di informazioni che costituisce una unità logica. Un file è un un contenitore di di informazioni

La cultura della Sicurezza nelle PMI Ing. Francesco Guatelli Parma, 23 marzo 2006 Unione Parmense degli Industriali

Artifact Centric Business Processes (I)

Base di dati e sistemi informativi

Introduzione al corso

Ricapitoliamo. Ricapitoliamo

L apposizione di firme e informazioni su documenti firmati

La Metodologia adottata nel Corso

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari

Regione Piemonte Portale Rilevazioni Crediti EELL Manuale Utente

Ottimizzazione delle interrogazioni (parte I)

Progetto Campo Base. Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Oggetti Lezione 3. aspetti generali e definizione di classi I

L analisi dell attività

Il Sistema Operativo (1)

REGIONE BASILICATA UFFICIO S. I. R. S.

1. I FONDAMENTI DELLA PROGRAMMAZIONE AD OGGETTI

Progettazione di Basi di Dati

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011.

DRC - Formazione. la Diagnosi delle Strutture ed i Controlli Non Distruttivi. la Scuola di Specializzazione per.

Sistemi Informativi. Introduzione. Processi fisici. Tipologie di processi. Processi informativi. Processi aziendali

ARCHIVIO UNITARIO REGIONALE ASSISTITI Specifiche di Sicurezza

1- Corso di IT Strategy

La Progettazione Concettuale

DMA Accesso Diretto alla Memoria

SISTEMA DI GESTIONE PER LA QUALITA Capitolo 4

Ciclo di vita dimensionale

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Basi di dati. Esercizi sul modello E.R.

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

GESTIONE AVANZATA DEI MATERIALI

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

La norma ISO 9001:08 ha apportato modifiche alla normativa precedente in

Riorganizzazione dei processi lavorativi e di ottimizzazione delle risorse degli Uffici Giudiziari della Regione Molise

Funzioni in C. Violetta Lonati

Introduzione. Il software e l ingegneria del software. Marina Mongiello Ingegneria del software 1

IL SOFTWARE SECONDO LA NORMA UNI EN ISO :2008 (IIA PARTE) 1

1. BASI DI DATI: GENERALITÀ

Corso di Valutazione Economica dei Progetti e dei Piani. Marta Berni AA

Brochure Internet. Versione The Keyrules Company s.r.l. Pagina 2 di 8

NORMA CEI EN PLC: programmazione. PLC: programmazione. PLC: programmazione. Automazione Industriale 3. Automazione Industriale

AREA LEGALE. RAPPRESENTANTI DEI LAVORATORI PER LA SICUREZZA (RLS) (Cod. 01LEG)

A cura di Giorgio Mezzasalma

LINGUAGGI DI PROGRAMMAZIONE

Coordinazione Distribuita

Rapporto conclusivo di accessibilità

9. Urti e conservazione della quantità di moto.

Concetto di Funzione e Procedura METODI in Java

PROCEDURE ISTITUTO COMPRENSIVO STATALE Leonardo da Vinci OLEVANO SUL TUSCIANO. Processo: TENUTA SOTTO CONTROLLO DELLA DOCUMENTAZIONE

Progetto PI , passo A.1 versione del 14 febbraio 2007

Sistemi informativi secondo prospettive combinate

SAP per centralizzare tutte le informazioni aziendali

Corso di Programmazione Concorrente

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

AZIENDA SANITARIA LOCALE TO1 - SC MEDICINA LEGALE - OBITORIO CIVICO

CONTROLLO DEGLI ACCESSI INTELLIGENTE PER UN FLUSSO DI PERSONE SICURO E CONFORTEVOLE. KONE Access

Corso di Informatica

12. Evoluzione del Software

Transcript:

Breve Excursus su Evoluzione della Programmazione Corso di Linguaggi e Metodologie di Programmazione

Introduzione Le slide presenti in questo documento hanno il solo scopo di riassumere i momenti fondamentali della evoluzione delle metodologie e dei linguaggi di programmazione Si rimanda lo studente ad un più ampio studio sui testi segnalati per il corso. 2

Programmazione anni 60 Linguaggi di Programmazione già possedevano: astrazione rispetto ai registri del processore uso avanzato della memoria Ma erano fortemente legati alle stesse modalità di organizzazione del flusso di operazioni. Il salto incondizionato (GO TO, o, semplicemente, GOTO) rappresentava l unico meccanismo per gestire il flusso decisionale di un algoritmo 3

Critiche al GOTO Verso la fine degli anni 60, prime critiche alla programmazione tradizionale: Edsger Dijkstra (March 1968). "Go To Statement Considered Harmful". Communications of the ACM 11 (3): 147 148. doi:10.1145/362929.362947. unrestricted GOTO statements should be abolished from higher-level languages because they complicate the task of analyzing and verifying the correctness of programs Teorema di Böhm-Jacopini (1966): qualunque algoritmo può essere implementato utilizzando tre sole strutture, la sequenza, la selezione ed il ciclo (iterazione), da applicare ricorsivamente alla composizione di istruzioni elementari Diffusione crescente di ALGOL (ALGOrithmic Language), in particolare nella sua versione ALGOL 60 (il linguaggio era cmq stato già inventato negli anni 50) 4

Programmazione Strutturata Un programma strutturato è composto di tre combinazioni principali, applicate a blocchi primitivi di operazioni (statement) Sequenza: una esecuzione ordinata di statement Selezione: a seconda dello stato del programma, uno statement viene selezionato da un insieme di statement per essere eseguito Ciclo, o iterazione: uno statement è eseguito fino a che il programma non raggiunge un determinato stato In blu, le rappresentazioni originariamente utilizzate per rappresentare i tre elementi fondamentali della programmazione strutturata: la sequenza, la selezione, la iterazione 5

Programmazione Strutturata I seguenti requisiti devono essere rispettati da un linguaggio di programmazione strutturato Completezza: le tre strutture della programmazione strutturata devono avere almeno una rappresentanza sintattica nel linguaggio (e opzionalmente, delle variazioni) Singolo punto di Ingresso e Uscita: in ogni struttura di controllo si devono poter identificare un singolo punto di ingresso e un singolo punto di uscita. Ciò è necessario per la successiva: Componibilità: ogni struttura di controllo deve poter essere considerata come un macro-statement, di modo da poter essere usata, ricorsivamente, come istruzione in altre strutture di controllo In blu, le rappresentazioni originariamente utilizzate per rappresentare i tre elementi fondamentali della programmazione strutturata: la sequenza, la selezione, la iterazione 6

Programmazione Procedurale Consiste nella possibilità di agevolare la leggibilità di un programma (e la sua manutenibilità) tramite la definizione di blocchi di codice, racchiusi da delimitatori e usualmente identificati da un nome. Tali blocchi assumo il nome di: Subroutine (in italiano sottoprogrammi, anche se nessuno usa tale nome!) Procedure Funzioni Metodi tali nomi implicano differenze dipendenti dal contesto del modello di linguaggio usato 7

Programmazione Orientata agli Oggetti Principi Fondamentali dell OOP (Object Oriented Programming) Encapsulation Nascondere dettagli implementativi, permettendo di raggiungere solo alcune informazioni tramite accessors e mutators. Abstraction Direttamente correlata alla precedente La Abstraction ha a che fare con la definizione di modelli, viste etc.. per gli oggetti che si vogliono rappresentare mentre la encapsulation garantisce che le implementazioni di tali modelli rimangano opache ai loro utilizzatori An abstraction denotes the essential characteristics of an object that distinguish it from all other kinds of object and thus provide crisply defined conceptual boundaries, relative to the perspective of the viewer. G. Booch, Object- Oriented Design With Applications, Benjamin/Cummings, MenloPark, California, 1991. 8

Programmazione Orientata agli Oggetti Principi Fondamentali dell OOP (Object Oriented Programming) Inheritance La ereditarietà permette di raccogliere a fattor comune caratteristiche condivise da oggetti simili, definendo dei modelli che rappresentino tali caratteristiche, e specializzando tali modelli per insiemi di oggetti via via più ristretti, ma accomunati da una similarità maggiore (ossia, più caratteristiche comuni). Esempio: la classe delle autovetture accomuna tutti gli oggetti con 3 o 4 ruote dotate di un qualche sistema di propulsione e che permettano a delle persone di spostarsi. La classe delle citycar può essere definita come una specializzazione della precedente (quindi eredita dalla precedente) perché comprende tutte le sue caratteristiche, ed ha in più caratteristiche aggiuntive, o restrizioni su quelle già definite (e.g. avere dimensioni ridotte, o bassi consumi etc..) Polymorphism (la capacità di assumere diverse forme) Overriding (run-time polymorphism) Overloading (compile-time polymorphism) 9