Il linguaggio di programmazione Python

Documenti analoghi
Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Linguaggi di programmazione

LINGUAGGI DI ALTO LIVELLO

la traduzione dei programmi ed introduzione a Java

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

Linguaggi di Programmazione

Teoria dell Informazione

Informatica. Terzo anno Prof. A. Longheu

Unità di apprendimento 6. Il software: dal linguaggio alla applicazione

I Linguaggi di Programmazione

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

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

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

Il Software programmabili programma algoritmo

Introduzione alla programmazione. Walter Didimo

Elementi di programmazione

Cosa è un programma. Informatica di Base -- R.Gaeta 18

Linguaggi di Programmazione

Linguaggi, Traduttori e le Basi della Programmazione

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione

Linguaggi di alto livello, compilatori e interpreti

LA CODIFICA DELLE INFORMAZIONI

Linguaggi di programmazione

LINGUAGGI DI PROGRAMMAZIONE E CODIFICA PROGRAMMI

Introduzione alla Programmazione. Giselda De Vita

Programmazione C Massimo Callisto De Donato

Corso di Linguaggi di Programmazione + Laboratorio

Introduzione alla programmazione

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Linguaggi, compilatori e interpreti

Programmazione: Sommario

FONDAMENTI DI INFORMATICA

Programmazione Procedurale in Linguaggio C++

Elementi di programmazione

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

Programmazione. Andrea Passerini Informatica. Programmazione

Algoritmi e Linguaggi

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

Traduzione e interpretazione

Cos è la programmazione?

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

Laboratorio di Calcolo Linguaggi di programmazione

Macchine Astratte. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione feb, 2016

Esempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina

Corso di Fondamenti di Informatica Linguaggi di Programmazione

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

Unità Didattica 2 I Linguaggi di Programmazione

Algoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo

Formalismi per la descrizione di algoritmi

FONDAMENTI DI INFORMATICA

Sorgenti di errore. Laboratorio di Informatica 1

Linguaggi di programmazione

Introduzione al Linguaggio C ed all IDE DEV-C++

Fondamenti di Algoritmi

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

Organizzazione strutturata

Corso di Informatica 1 Esercitazione n. 4

Programmazione strutturata

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

10: I LINGUAGGI di PROGRAMMAZIONE PARTE 1

I linguaggi di alto livello

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Macchine astratte, linguaggi, interpretazione, compilazione

Linguaggi e Paradigmi di Programmazione

; programma MOV AX, DATO_1. ; somma al contenuto dell' accumulatore il contenuto del registro B

Informatica (A-K) 6. Linguaggi di programmazione

Cos è. In un linguaggio di programmazione si possono distinguere:

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Indice. Prefazione. 3 Oggetti e Java 53

COMPILAZIONE. Tarsformazione di linguaggi

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

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Linguaggi di programmazione e astrazione

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN

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

Linguaggi di Programmazione

Marta Capiluppi Dipartimento di Informatica Università di Verona

PROGRAMMAZIONE STRUTTURATA

Linguaggi di programmazione

Il software: dall algoritmo al linguaggio macchina

Introduzione alla programmazione

Algoritmi e soluzione di problemi

Linguaggio C: introduzione

Linguaggi e Ambienti di Programmazione

Concetti Introduttivi. Il Computer

Davide Cervi Classe : 3E I.T.E Agostino Bassi - Lodi

Informatica! Appunti dal laboratorio 1!

Rappresentazione con i diagrammi di flusso (Flow - chart)

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

INFORMATICA. L informatica comprende:

Fondamenti VBA. Che cos è VBA

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Sommario. Linguaggi per la rappresentazione di algoritmi. Linguaggi formali. Sintassi e semantica: esempio. Linguaggio naturale: sintassi

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

Prof.Claudio Maccherani 1995

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

Transcript:

Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it) Sommario Linguaggi di programmazione: caratteristiche generali Paradigmi di programmazione Compilatori ed interpreti Il linguaggio Python Esempi M. Liverani - Appunti di Informatica - Programmazione Python 1

Linguaggi di programmazione 1 Sono linguaggi artificiali progettati per la codifica di algoritmi Sono un compromesso tra linguaggio naturale e linguaggio macchina Sono privi delle ambiguità tipiche di un linguaggio naturale, ma sufficientemente chiari da essere facilmente compresi Sono costituiti da un alfabeto di simboli e delle parole chiave una grammatica e una sintassi una semantica Linguaggi di programmazione 2 Codificare un programma utilizzando il linguaggio macchina è assai arduo e richiede una conoscenza approfondita del funzionamento di un particolare calcolatore (o meglio: del microprocessore che costituisce la CPU della macchina) Per ovviare a questo problema, che ha costituito per molti anni un grosso limite alla diffusione della programmazione e quindi anche dell uso dei calcolatori, sono stati sviluppati dei linguaggi di programmazione più evoluti, che si pongono a metà strada fra il nostro linguaggio naturale ed il linguaggio macchina Sono semplici e poveri (poche parole chiave, poche regole), ma privi di qualsiasi ambiguità M. Liverani - Appunti di Informatica - Programmazione Python 2

Linguaggi di programmazione 3 In informatica si parla di programmazione a basso livello quando si utilizza un linguaggio molto vicino alla macchina, al suo funzionamento interno Si parla invece di programmazione ad alto livello quando si utilizzano linguaggi più sofisticati ed astratti, slegati dal funzionamento fisico della macchina Si viene così a creare una gerarchia di linguaggi, dai meno evoluti (il linguaggio macchina e l assembler) a quelli più evoluti (Pascal, Fortran, Cobol, Perl, Java, Python,...) Il linguaggio Python è tra i linguaggi moderni di livello più alto, privo di formalismi eccessivi e per questo adatto anche alla didattica Linguaggi di programmazione 4 La programmazione a basso livello è più ardua e meno intuitiva, ma consente di sviluppare programmi molto efficienti su uno specifico sistema hardware/software, sfruttandone a fondo le caratteristiche. Ad alto livello la programmazione è più naturale e rapida, ma è possibile che non consenta di produrre software particolarmente efficiente. Efficienza del programma Programmazione a basso livello Programmazione ad alto livello Facilità e velocità di programmazione M. Liverani - Appunti di Informatica - Programmazione Python 3

Paradigmi di programmazione 1 Possiamo aggregare i numerosi linguaggi di programmazione esistenti sulla base del modello astratto di programmazione che sottintendono e che è necessario adottare per utilizzarli. Linguaggi di programmazione Imperativi Dichiarativi Procedurali Ad oggetti Paralleli Funzionali Logici Relazionali (C, Pascal, Fortran) (C++, Java SmallTalk) (implem. Parallele) (Lisp) (Prolog) (SQL) Paradigmi di programmazione 2 Linguaggi imperativi: Il modello computazionale è basato sui cambiamenti di stato della memoria della macchina. È centrale il concetto di assegnazione di un valore ad una locazione di memoria (variabile). Il compito del programmatore è costruire una sequenza di assegnazioni (spesso reiterandole più volte) che producano lo stato finale (in modo tale che questo rappresenti la soluzione del problema). Linguaggi dichiarativi: Il modello computazionale è basato sui concetti di funzione e relazione. Il programmatore non ragiona in termini di assegnazioni di valori, ma di relazioni fra entità e di valori di una funzione. M. Liverani - Appunti di Informatica - Programmazione Python 4

Compilatori ed interpreti 1 Un programma è la codifica di un algoritmo eseguita utilizzando un linguaggio di programmazione. L unico linguaggio che la macchina è in grado di interpretare è il linguaggio macchina. Per eseguire un programma scritto in un linguaggio di alto livello è necessario dunque tradurlo in linguaggio macchina. Naturalmente è possibile eseguire la traduzione in modo automatico utilizzando un programma traduttore (un compilatore o un interprete). Ogni traduttore è in grado di interpretare e tradurre un solo linguaggio (compilatore C, interprete Perl, compilatore Pascal, ecc.). Compilatori ed interpreti 2 Compilatore: esegue una sola volta il processo Legge tutte le istruzioni del programma sorgente, ne verifica la correttezza sintattica e le traduce in linguaggio macchina. Memorizza su disco il programma eseguibile tradotto in linguaggio macchina. Al termine della compilazione avremo un programma eseguibile in linguaggio macchina. La traduzione di ogni istruzione del programma avviene una sola volta, anche se una stessa istruzione viene ripetuta più volte all interno del programma. Non ho bisogno di avere il compilatore ed il sorgente per eseguire il programma: mi basta il programma eseguibile. M. Liverani - Appunti di Informatica - Programmazione Python 5

Compilatori ed interpreti 3 Interprete: itera più volte questo processo Legge un istruzione del programma sorgente Traduce l istruzione in linguaggio macchina Esegue l istruzione Passa all interpretazione dell istruzione successiva Al termine di questa operazione, del programma in linguaggio macchina non rimane alcuna traccia (la traduzione non viene memorizzata). Se il programma torna più volte su una stessa istruzione, questa verrà tradotta (ed eseguita) ogni volta. È necessario disporre dell interprete per poter eseguire il programma. Progettazione, codifica ed esecuzione 1 Il processo di progettazione, codifica, traduzione nel caso di linguaggi compilati Progettazione e sviluppo Traduzione / compilazione Editor Compiler Linker #include <stdlib.h> int #include main(void) <stdlib.h> { int #include a, main(void) b; <stdlib.h> { a=3 int a, main(void) b; { b=17; a=3int a, b; b=17; a=3 } b=17; } } 00111001 1001010 100101 00111001 010101001010 1101010001 100101 00111001 010100101 1001010 101010 1101010001 100101 1010 01010 10101 0100101 10010101010 101010 1101010001 1010 10101 10101 0100101 101010111 10010101010 101010101100001 10101 10101010100 101010111 10010101010 101100001 10101 10100110 10101010100 101010111 1010101 101100001 10100110 10101010100 1010101 10100110 1010101 00111001 1001010 100101 01010 1101010001 0100101 101010 1010 10101 10010101010 10101 101010111 101100001 10101010100 10100110 1010101 Algoritmo, pseudo-codice, diagramma di flusso Codice in formato sorgente (programmi in Linguaggio C) Codice in formato oggetto Codice in formato eseguibile M. Liverani - Appunti di Informatica - Programmazione Python 6

Progettazione, codifica ed esecuzione 2 Il processo di progettazione, codifica, traduzione nel caso di linguaggi interpretati Progettazione e sviluppo Traduzione / esecuzione Interprete Editor Traduzione Esecuzione max = 0 i = max 0 = 0 while i = max i<n: 0 = 0 while x i = = input() i<n: 0 if while x x = > input() max: i<n: if max x x = > input() xmax: i = i+1 if max x = > xmax: print i max = i+1 max = x print i max = i+1 print max Algoritmo, pseudo-codice, diagramma di flusso Codice in formato sorgente (programmi in Linguaggio Python) Il linguaggio Python È un linguaggio interpretato di alto livello È un linguaggio multi-paradigma : supporta la programmazione strutturata supporta la programmazione a oggetti (OOP) è dotato di caratteristiche di programmazione funzionale Una caratteristica del Python è il fatto che l indentazione delle istruzioni ha un valore sintattico e consente di definire blocchi contenuti all interno di una struttura algoritmica (un ciclo, una condizione, ecc.) Il codice scritto in Python è molto leggibile, se paragonato al codice di altri linguaggi di programmazione M. Liverani - Appunti di Informatica - Programmazione Python 7

Istruzioni del linguaggio 1 Assegnazione: variabile = valore Leggi: variabile = input( messaggio ) Scrivi: print messaggio, variabile Se... allora... altrimenti: if condizione: istruzioni else: istruzioni Istruzioni del linguaggio 2 Cicli per ripetere più volte delle istruzioni: while condizione: istruzioni for variabile in lista: istruzioni M. Liverani - Appunti di Informatica - Programmazione Python 8

codice esecuzione Esempio 1 Letti in input due numeri stampa la somma print "Inserisci due numeri: " a = input(); b = input(); print "Hai inserito ", a, " e ", b c = a+b print "La somma di ", a, " e ", b, " e' ", c python esempio1.py Inserisci due numeri: 4 8 Hai inserito i numeri 4 e 8 La somma di 4 e 8 e' 12 codice Esempio 2 Letti in input n numeri stampa il massimo n = input("inserisci il numero di elementi: "); print "Inserisci ", n, " numeri: " max = 0 i = 0 while i<n: x = input(); if x > max: max = x i = i+1 print "Massimo: ", max esecuzione python esempio2.py Inserisci il numero di elementi: 3 Inserisci 3 numeri: 5 10 7 Massimo: 10 M. Liverani - Appunti di Informatica - Programmazione Python 9