programmazione ii - lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 introduzione a...

39

Upload: vannhu

Post on 24-May-2018

215 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Programmazione II

Lezione 1

Daniele Sgandurra

[email protected]

19/10/2010

1/39 Programmazione II Lezione 1 19/10/2010

Page 2: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Sommario

1 IntroduzioneStruttura del CorsoObiettiviInfo

2 Cenni StoriciEvoluzione dei Linguaggi

2/39 Programmazione II Lezione 1 19/10/2010

Page 3: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Introduzione

Parte I

Introduzione

3/39 Programmazione II Lezione 1 19/10/2010

Page 4: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

IntroduzioneStruttura del CorsoObiettiviInfo

Programmazione II

Programmazione II.

9 CFU.

72 ore (36 lezioni).1 Linguaggi di programmazione (28 ore).2 Introduzione a Java (20 ore).3 Metodologie di programmazione (24 ore).

4/39 Programmazione II Lezione 1 19/10/2010

Page 5: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

IntroduzioneStruttura del CorsoObiettiviInfo

Parte 1: Linguaggi di Programmazione

Argomenti:

Macchine astratte, compilazione, interpretazione.

Sintassi, semantica.

Tipi di dato.

Espressioni e comandi.

Blocchi, ambiente e scoping.

Memoria.

Sottoprogrammi.

Strutture di controllo.

Oggetti e classi.

Passaggio di parametri.

5/39 Programmazione II Lezione 1 19/10/2010

Page 6: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

IntroduzioneStruttura del CorsoObiettiviInfo

Testo di Riferimento

Linguaggi di programmazione: principi e paradigmi. MaurizioGabbrielli, Simone Martini. McGraw-Hill Italia (prima edizione2006, seconda edizione 2010?).

6/39 Programmazione II Lezione 1 19/10/2010

Page 7: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

IntroduzioneStruttura del CorsoObiettiviInfo

Parte 2: Introduzione a Java

Argomenti:

Concetti base, classi, oggetti, compilazione, esecuzione.

Speci�catore accesso, overloading, ereditarietà.

Gerarchie di tipi, classi astratte, interfacce, risoluzione dei nomi, tipiprimitivi.

Iteratori, eccezioni, generics.

Laboratorio.

7/39 Programmazione II Lezione 1 19/10/2010

Page 8: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

IntroduzioneStruttura del CorsoObiettiviInfo

Testo di Riferimento

Core Java 2. Vol. 1: Fondamenti. Horstmann Cay S.; Cornell Gary.Pearson Italia (2005).

8/39 Programmazione II Lezione 1 19/10/2010

Page 9: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

IntroduzioneStruttura del CorsoObiettiviInfo

Parte 3: Metodologie di Programmazione

Argomenti:

Astrazioni.

Astrazioni procedurali.

Eccezioni.

Astrazione sui dati.

Iteratori.

Gerarchie di tipi.

Polimor�smo.

9/39 Programmazione II Lezione 1 19/10/2010

Page 10: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

IntroduzioneStruttura del CorsoObiettiviInfo

Testo di Riferimento

Program Development in Java: Abstraction, Speci�cation, andObject-Oriented Design. Barbara Liskov, John Guttag.Addison-Wesley Professional (2000).

10/39 Programmazione II Lezione 1 19/10/2010

Page 11: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

IntroduzioneStruttura del CorsoObiettiviInfo

Obiettivi

�Computer science is no more aboutcomputers than astronomy is abouttelescopes�. (Edsger Wybe Dijkstra,1930-2002; premio Turing 1972).

�A good programming language is aconceptual universe for thinking aboutprogramming. (Alan Jay Perlis,1922-1990; primo premio Turing1966).

11/39 Programmazione II Lezione 1 19/10/2010

Page 12: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

IntroduzioneStruttura del CorsoObiettiviInfo

Obiettivi Parte Prima

Conoscere i paradigmi comuni a centinaia di linguaggi.

Imparare cosa sia importante nei linguaggi di programmazione.

Stretta connessione tra progettazione e implementazione di unlinguaggio.

Come i costrutti linguistici possono essere implementati e illoro relativo costo:

tradeo�.

Aspetti architetturali che possono in�uenzare la progettazionee l'implementazione.

12/39 Programmazione II Lezione 1 19/10/2010

Page 13: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

IntroduzioneStruttura del CorsoObiettiviInfo

Obiettivi Parte Seconda

Conoscere il nucleo di Java.

Programmazione ad oggetti.

Saper progettare e sviluppare programmi in Java.

13/39 Programmazione II Lezione 1 19/10/2010

Page 14: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

IntroduzioneStruttura del CorsoObiettiviInfo

Obiettivi Parte Terza

Speci�ca, implementazione, dimostrazioni.

Programmazione come decomposizione guidata da astrazioni.

Meccanismi di astrazione: parametrizzazione, speci�ca.

Tipi di astrazione: procedure, tipi di dato astratti, iterazioneastratta, gerarchie di tipi.

Metodologie di programmazione orientata ad oggetti(esempli�cate tramite Java).

Programmi robusti e facili da mantenere.

14/39 Programmazione II Lezione 1 19/10/2010

Page 15: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

IntroduzioneStruttura del CorsoObiettiviInfo

Orario

9-10 10-11 11-12 12-13

Lun

Mar PR2 (LAB1) PR2 (LAB1)

Mer

Gio

Ven PR2 (LAB2) PR2 (LAB2) PR2 (LAB2) PR2 (LAB2)

15/39 Programmazione II Lezione 1 19/10/2010

Page 16: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

IntroduzioneStruttura del CorsoObiettiviInfo

Modalità Esame

Esame = prova scritta + orale.

L'orale deve essere sostenuto nella stessa sessione dello scritto.

Ammissione all'orale con votazione ≥ 15 nello scritto.

2 prove intermedie (compitini) che possono sostituire la provascritta.

16/39 Programmazione II Lezione 1 19/10/2010

Page 17: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

IntroduzioneStruttura del CorsoObiettiviInfo

Consigli

Seguire il corso mantenendosi al passo con il programma.

Partecipare (attivamente) alle esercitazioni e al laboratorio.

Sostenere le prove intermedie.

17/39 Programmazione II Lezione 1 19/10/2010

Page 18: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

IntroduzioneStruttura del CorsoObiettiviInfo

Sito Web e Contatti

Sito web (under construction):http://www.di.unipi.it/~daniele/teaching/pr2-10/

Contatto e-mail: [email protected].

Oggetto delle e-mail nella forma: [PR2]: oggetto.

Ricevimento su appuntamento: da concordare via e-mail.

18/39 Programmazione II Lezione 1 19/10/2010

Page 19: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici

Parte II

Cenni Storici

19/39 Programmazione II Lezione 1 19/10/2010

Page 20: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Primi Calcolatori

1941: Z3. �Primo calcolatore totalmente programmabile e automatico�:

Konrad Zuse.

1944: Mark I. �Primo calcolatore digitale automatico�:

IBM e Harvard University (Howard Hathaway Aiken).

1946: ENIAC. �Primo computer elettronico general-purpose�:

J. Presper Eckert e John Mauchly (University of Pennsylvania);in�uenzato dal seminario di Von Neumann sull'EDVAC.

1949: EDSAC. �Primo computer elettronico a programma memorizzato�:

costruito dal gruppo di Maurice Wilkes all'università di Cambridge;in�uenzato dall'ENIAC.

20/39 Programmazione II Lezione 1 19/10/2010

Page 21: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Z3 e Mark I

21/39 Programmazione II Lezione 1 19/10/2010

Page 22: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

ENIAC e EDSAC

22/39 Programmazione II Lezione 1 19/10/2010

Page 23: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Generazione dei Linguaggi

Per programmare queste macchine si usavano linguaggi macchina:

basso livello;codi�ca in binario delle operazioni e meccanismi di calcolo dellamacchina stessa;istruzioni elementari: somma, load, store;linguaggi di prima generazione (1GL).

Richiesti formalismi più lontani dal linguaggio macchina e più �vicini� al

linguaggio naturale:

primo passo: linguaggi assembly;rappresentazioni simboliche del linguaggio macchina;assemblatore (assembler): traduzione in linguaggio macchina;linguaggi di seconda generazione (2GL).

Anni '50: linguaggi di alto livello:

linguaggi astratti: prescindono dalle caratteristiche �siche deicalcolatori;linguaggi di terza generazione (3GL).

23/39 Programmazione II Lezione 1 19/10/2010

Page 24: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Evoluzione

Anni '50-'60:

L'architettura hardware in�uenza direttamente i linguaggi: es. goto.

Obiettivo principale: e�cienza.

�Programmers cheap, machines expensive: keep the machine busy!�.

�I think there is a world market for about �ve computers� (attribuita aThomas J. Watson, 1943, presidente IBM).

24/39 Programmazione II Lezione 1 19/10/2010

Page 25: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Evoluzione

Oggi:

Compilazione di programmi scritti in maniera e�ciente.

Connessione diretta tra software design e linguaggio:

incapsulamento;ereditarietà.

Software engineering.

�Programmers expensive, machines cheap: keep theprogrammers busy!�.

25/39 Programmazione II Lezione 1 19/10/2010

Page 26: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Anni '40-'50, '50-'60

Anni '40-'50: linguaggio macchina e assembly.Anni '50-'60: primi linguaggi di alto livello:

FORTRAN (Backus 1957): per calcolo numerico-scienti�co (FORmulaTRANslator); uso di notazione matematica in espressioni.

ALGOL (Naur 1958): progettato come linguaggio universale peresprimere algoritmi (ALGOrithmic Language). Passaggio parametri pernome; blocchi; grammatica BNF (Backus Naur Form); ricorsione;gestione dinamica della memoria.

LISP (McCarthy 1959): per intelligenza arti�ciale (LISt Processor);funzioni di ordine superiore.

COBOL (1959): per applicazioni commerciali (COmmon BusinessOriented Language).

SIMULA (1962): primo linguaggio con classi e oggetti.

PL/I (IBM 1964): tentativo di creare un linguaggio multiuso(Fortran=applicazioni scienti�che, COBOL=applicazioni commerciali).Programmazione strutturata e ricorsione. Scarso successo.

26/39 Programmazione II Lezione 1 19/10/2010

Page 27: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Anni '70

Pascal (Wirth): basato su ALGOL. Portabilità: P-code (codiceintermedio). Linguaggio strutturato a blocchi; funzioni e blocchi annidati.De�nizione di nuovi tipi.

C (Dennis Ritchie): evoluzione del B (a sua volta del BCPL);programmazione di sistema (Unix). E�cienza. Notevole successo.

Smalltalk (Alan Kay): strumenti di incapsulamento e information-hiding;nozione di classe e oggetto; regole di visibilità.

ML: linguaggio funzionale; nato come Meta Linguaggio per sistemasemi-automatico di dimostrazione di proprietà di programmi.

Prolog: uso della logica come base di un linguaggio di programmazione.

27/39 Programmazione II Lezione 1 19/10/2010

Page 28: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Anni '80-'90

ADA (Ichbiah): bando di gara del Dipartimento della Difesa degli USAper un linguaggio per sviluppare programmi di dimensioni elevate (ede�nire un linguaggio standard). Include tutto ciò che si conosceva altempo (anche concorrenza); stato dell'arte dell'ingegneria del software;compilatori certi�cati!

Nome in onore di Augusta Ada Byron (Ada Lovelace, �glia di Lord

Byron):riconobbe le macchine di Babbage (macchina analitica) comestrumenti programmabili;prima programmatrice: algoritmo per il calcolo dei numeri diBernoulli.

28/39 Programmazione II Lezione 1 19/10/2010

Page 29: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Anni '80-'90

C++ (Bjarne Stroustrup, 1986): �C più classi ed ereditarietà�.Programmazione ad oggetti; uso dei template (polimor�smoparametrico); funzioni virtuali; ereditarietà multipla.

Java (SUN, James Gosling): altamente portabile (�Write once, runanywhere�); Java Virtual Machine e bytecode; type-safety (controllo a trelivelli: compilatore, bytecode, interprete); sand-box; garbage-collector;caricamento dinamico delle classi.

29/39 Programmazione II Lezione 1 19/10/2010

Page 30: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Classi�cazione dei Linguaggi

Imperativi

von Neumann: Fortran, Pascal, Basic, C;orientati agli oggetti: Smalltalk, Ei�el, C++;linguaggi di scripting: Perl, Python, JavaScript, PHP.

Dichiarativi

funzionali: Scheme, ML, pure Lisp, FP;logici, basati su vincoli: Prolog, VisiCalc, RPG.

30/39 Programmazione II Lezione 1 19/10/2010

Page 31: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Linguaggi Imperativi

Basati sulla nozione di stato:

insieme di locazioni di memoria con valori.

Le istruzioni sono comandi (statements) che cambiano lostato:

es: assegnamento (y=y+2;)

C, Pascal, FORTRAN, COBOL.

Linguaggi orientati agli oggetti (Java, C++, Smalltalk):

incapsulamento;ereditarietà.

31/39 Programmazione II Lezione 1 19/10/2010

Page 32: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Linguaggi Dichiarativi

Basati sulla nozione di funzione o relazione.

Le istruzioni sono dichiarazioni di nuovi valori, in modo diretto, oppure

per composizione di funzioni o relazioni:

(fun(x). x+2)3

Linguaggi funzionali (Lisp, Scheme, ML, Haskell):

basati sulla nozione di funzione;risultato del programma = valore esplicito di un'espressione;applicazione e de�nizione di funzioni;ricorsione;programmare = costruire la funzione che calcola il risultato.

32/39 Programmazione II Lezione 1 19/10/2010

Page 33: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Linguaggi Dichiarativi

Linguaggi logici (Prolog, CLP):

basati sul relazioni;risultato = valore di alcune variabili determinato da alcune relazioni;istruzioni = implicazioni logiche fra formule;programmare = speci�care la relazione che de�nisce il valore dellevariabili di interesse.

33/39 Programmazione II Lezione 1 19/10/2010

Page 34: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Diagramma Temporale Principali Linguaggi

34/39 Programmazione II Lezione 1 19/10/2010

Page 35: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Popolarità Linguaggi di Programmazione

35/39 Programmazione II Lezione 1 19/10/2010

Page 36: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Andamento a Lungo Termine dei Linguaggi Top Ten

36/39 Programmazione II Lezione 1 19/10/2010

Page 37: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Perché Così Tanti Linguaggi?

Evoluzione: nel tempo abbiamo imparato metodi migliori perfare alcune cose.

Fattori socio-economici: interessi proprietari, vantaggicommerciali.

Linguaggi �special purposes�: es., C per programmazione disistema.

Preferenze personali: chi preferisce programmare in C++, chilo odia.

37/39 Programmazione II Lezione 1 19/10/2010

Page 38: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Perché un Linguaggio Ha Successo?

Potere espressivo: meccanismi di astrazione.

Facilità di utilizzo: BASIC, Pascal, LOGO, Scheme.

Facilità di implementazione: BASIC, Forth.

Buoni compilatori: Fortran (codice veloce, piccolo).

Sponsor: COBOL, PL/1, Ada, Visual Basic.

Open source: C.

38/39 Programmazione II Lezione 1 19/10/2010

Page 39: Programmazione II - Lezione 1 - di.unipi.itdaniele/teaching/pr2-10/pr2-01.pdf · 2 Introduzione a Java(20 ore). 3 Metodologie di programmazione ... overloading, ereditarietà. Gerarchie

Cenni Storici Evoluzione dei Linguaggi

Riferimenti

[1] Linguaggi di programmazione: principi e paradigmi (Cap 13).

Maurizio Gabbrielli, Simone Martini.

[2] History of Programming Languages.

http://oreilly.com/news/graphics/prog_lang_poster.pdf

39/39 Programmazione II Lezione 1 19/10/2010