Informatica Generale Andrea Corradini I linguaggi di programmazione

Documenti analoghi
Linguaggio C++ Linguaggi di terza generazione

Introduzione alla programmazione. Walter Didimo

Sviluppo di programmi

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Primi passi col linguaggio C

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

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

Linguaggi, compilatori e interpreti

Linguaggio C - sezione dichiarativa: costanti e variabili

Linguaggi di Programmazione

Programmazione C Massimo Callisto De Donato

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

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

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

Algoritmi e Linguaggi

Struttura dei programmi C

Dalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

LINGUAGGI DI ALTO LIVELLO

Prof. Pagani Corrado ALGORITMI

Programmazione in Java (I modulo)

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica

Problemi, algoritmi, calcolatore

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

CONCETTI FONDAMENTALI

Corso di Informatica di Base

Linguaggi di alto livello, compilatori e interpreti

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

Il concetto di calcolatore e di algoritmo

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Programmazione strutturata

Il linguaggio di programmazione Python

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

LINGUAGGI DI PROGRAMMAZIONE!

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

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Strutture dati e loro organizzazione. Gabriella Trucco

Introduzione al Linguaggio C

Il linguaggio C Il linguaggio C. Caratteristiche del C. Caratteristiche del C. Linguaggi di Programmazione I. Ferdinando Cicalese

DESCRIZIONI RIGOROSE c7

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Problema: calcolare il massimo tra K numeri

Funzioni, Stack e Visibilità delle Variabili in C

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Linguaggi di programmazione

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

Caratteristiche di un linguaggio ad alto livello

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

Informatica! Appunti dal laboratorio 1!

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Il linguaggio C. Notate che...

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

UD 3.2b: Programmazione in Pascal (1)

Fondamenti di programmazione!! Parte 2!

Unità Didattica 2 I Linguaggi di Programmazione

Linguaggi di programmazione

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Elaborazione dell informazione

Laboratorio di Programmazione

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

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

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Transcript:

Informatica Generale Andrea Corradini 17 - I linguaggi di programmazione

Sommario Cos'è un linguaggio di programmazione? Una prospettiva storica: linguaggi di prima, seconda e terza generazione I paradigmi di programmazione Principali componenti di un linguaggio di programmazione ad alto livello Dichiarazione di variabili e di costanti, assegnamento

Cos'è un linguaggio di programmazione? A cosa serve? E' un linguaggio formale definito da un insieme di regole che permettono di: generare tutti i programmi corretti; controllare se un dato programma è corretto. Serve per scrivere algoritmi per la soluzione di problemi in modo non ambiguo. Esempio: il linguaggio macchina che abbiamo visto. Esistono moltissimi linguaggi di programmazione, che vengono classificati in diversi modi. Per esempio generazioni di linguaggi paradigmi di programmazione

Linguaggi della prima generazione : i linguaggi macchina Le istruzioni sono eseguibili direttamente dalla CPU Sono rappresentate da sequenze di bit (o cifre esadecimali) Fanno riferimento esplicitamente all'hardware (registri, indirizzi di celle di memoria) Strutture di controllo molto semplici: sequenza e salto condizionato I dati su cui operano sono molto semplici: numeri in complemento a due o virgola fissa, sequenze di bit Svantaggi: specifico per ogni calcolatore: non è portabile (se cambia l indirizzo di una locazione, o cambia la CPU, bisogna cambiare il programma) difficile per l umano (gestire lunghe sequenze di bit)

Linguaggi della seconda generazione : i linguaggi assembler Consentono di usare nomi simbolici per le istruzioni (codici operazione) per le celle di memoria (identificatori) invece di indirizzi Ogni istruzione corrisponde a un'istruzione del linguaggio macchina: l'assemblatore traduce un programma assembler in linguaggio macchina, per poterlo eseguire. LD R5, Prezzo LD R6, SpeseSpedizione ADDI R0, R5 R6 ST R0, CostoTotale HLT assemblatore (assembler) 1 5 6 C 1 6 6 D 5 0 5 6 3 0 6 E C 0 0 0 Più comprensibile per gli umani, ma specifico per ogni CPU: non portabile indirizzo di Prezzo indirizzo di Spese indirizzo di CostoTotale

Linguaggi della terza generazione : i linguaggi ad alto livello Le istruzioni primitive sono concettualmente più complesse Un'istruzione corrisponde a numerose istruzioni macchina/assembler I tipi dei dati sono più complessi e strutturati Le strutture di controllo sono più ricche (come nello pseudocodice) I programmi devono essere tradotti in linguaggio macchina per mezzo di strumenti complessi chiamati compilatori. I programmi sono portabili: possono essere compilati su macchine diverse. CostoTotale = Prezzo + SpeseSpedizione LD R5, Prezzo LD R6, SpeseSpedizione ADDI R0, R5 R6 ST R0, CostoTotale HLT 1 5 6 C 1 6 6 D 5 0 5 6 3 0 6 E C 0 0 0 linguaggio di alto livello linguaggio assembler linguaggio macchina

Le generazioni dei linguaggi di programmazione Problemi risolti in un ambiente in cui l'essere umano si adegua alle caratteristiche della macchina Problemi risolti in un ambiente in cui la macchina si adegua alle esigenze dell'essere umano

L'evoluzione dei Paradigmi di Programmazione Imperativo: algoritmo descritto come sequenza di passi Funzionale: algoritmo come composizione di funzioni Dichiarativo: niente algoritmo, solo relazione tra input e output Object-Oriented: algoritmo descritto come comunità di oggetti con stato interno, che interagiscono invocando metodi

Principali componenti di un programma (imperativo) Dichiarazioni (o istruzioni dichiarative) che descrivono i dati che sono manipolati dal programma Istruzioni che descrivono le azioni da eseguire sui dati

Variabili e costanti Le dichiarazioni introducono le variabili: celle di memoria caratterizzate da identificatore (il nome) e da un valore (assunto mediante assegnamenti) Ogni variabile ha un tipo, che determina i valori che può assumere (questo determina lo spazio necessario in memoria). Esempi di tipi di dati: booleani (0,1), interi (rappresentati in complemento a due) reali (rappresentato in virgola mobile) caratteri (rappresentati con ASCII (in C) o UNICODE (in Java)) Si possono anche dichiarare delle costanti: hanno un nome e un valore come le variabili, ma il valore non può essere cambiato con un assegnamento.

Esempi di dichiarazioni di variabili e di assegnamenti (C, C++, Java...) float Length, Width; // dichiara due variabili di tipo float int Price, Total, Tax; char Symbol = '*'; // dichiarazione con inizializzazione Price = 150; // assegnamento Length = 74.25; Symbol = '#'; Total = 125.76; // NO: errore di tipo! Width = 34; // OK: un intero è anche un reale... final float PI = 3.1416; // Una dichiarazione di costante