Concetti Fondamentali sulla Programmazione

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
Advertisements

C C++ &.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F1 Primi programmi.
Introduzione al linguaggio C++
I Linguaggi di programmazione
Traduzione ed Interpretazione
Informatica Generale Marzia Buscemi
Sistema operativo MS-DOS
Il Software.
Software di base: Linguaggi di Programmazione
Code::Blocks Ambiente di sviluppo.
Code::Blocks Ambiente di sviluppo.
Dalla scrittura all’esecuzione
Evoluzione dei linguaggi di programmazione
Introduzione alla programmazione A. Ferrari. Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede.
I linguaggi di programmazione
Definizione e tipi di implementazione
Algoritmi e Programmazione
1 Strutture dati nel supporto a run time. 2 Entità presenti quando un programma va in esecuzione §programmi dutente (compilati) §routines del supporto.
3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)
3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)
5. Codifica degli algoritmi in un linguaggio di alto livello
Dr. Francesco Fabozzi Corso di Informatica
Concetti di base: header file, funzione main(),set caratteri C++, token, operatori, espressioni etc. Flusso di controllo, cicli, costrutti.
Programmazione Procedurale in Linguaggio C++
Introduzione alla programmazione
Anno Accademico Corso di Informatica Informatica per Scienze Biologiche e Biotecnologie Anno Accademico
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
FUNZIONI DI BIBLIOTECA
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Unità Didattica 2 I Linguaggi di Programmazione
Primi Elementi di Programmazione in C++
Espressioni condizionali
...dal bit al linguaggio R. In principio era il bit… …Per intenderci 0 e 1, il linguaggio macchina. Tra gli anni '40 e gli anni '50, la programmazione.
Algoritmi e Programmazione strutturata
PROGRAMMAZIONE: linguaggi
PROGRAMMARE IN C Un ambiente di sviluppo `e un software che serve per scrivere ed eseguire programmi. Generalmente integra almeno 3 funzionalita’: Editor:
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
Lo sviluppo del software e i linguaggi di programmazione
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
ECDL Patente europea del computer
Linguaggi per COMUNICARE
Programma di Informatica Classi Prime
Dal problema all’ algoritmo
la traduzione dei programmi
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma “La Sapienza”
Scrivere e compilare programmi
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado.
Algoritmi.
L’esecuzione dei programmi
Interpreti e compilatori
1 Macchine astratte, linguaggi, interpretazione, compilazione.
1 Linguaggi: guardando la semantica §esistono un insieme di concetti semantici e di strutture di implementazione in termini dei quali si descrivono in.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Il software Claudia Raibulet
FI - Algoritmi e Programmazione 1 Variabili Consentono di aumentare notevolmente la potenza espressiva. Una variabile è caratterizzata da:  Un nome 
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
Programmazione dei Calcolatori Elettronici
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
I linguaggi di programmazione -GALBIATI ALBERTO -ESPOSITO MATTIA.
LINGUAGGI DI PROGRAMMAZIONE E' un linguaggio formale dotato di una sintassi ben definita che viene utilizzato per scrivere programmi che realizzano algoritmi.
Unità di apprendimento 6
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

Concetti Fondamentali sulla Programmazione Cosa Significa Programmare Linguaggi di Programmazione Lo sviluppo dei programmi: tecniche di programmazione L’esecuzione dei programmi L’interpretazione La compilazione Le Librerie Le Fasi di Compilazione e Link Esempio in C

La Programmazione Dato un problema INFORMATICO, programmare significa: Definire l’algoritmo risolutivo, che deve essere finito e realizzabile con le risorse disponibili Tradurre l’algoritmo nel linguaggio di programmazione scelto, attraverso la particolare tecnica di programmazione scelta, rispettando le regole sintattiche del linguaggio

Linguaggi di programmazione: Linguaggio Macchina I primi linguaggi di programmazione coincidevano con l'insieme delle istruzioni eseguibili dall'hardware. Le istruzioni hardware sono codificate in codice binario: ogni informazione è rappresentata, all'interno della macchina, come una sequenza di bit. LOAD 8 potrà essere rappresentata in una macchina reale come 00110010, dove 0011 è la rappresentazione interna del codice operativo LOAD Enorme sforzo richiesto per codificare algoritmi semplici.

Linguaggi di programmazione: Assembly Dalla nascita dei primi calcolatori, si è cercato di diminuire lo sforzo e aumentare la produttività dell'utente, anche a costo di caricare la macchina di maggiori compiti. E’ meglio risparmiare il tempo dell'uomo anche a costo di sprecare tempo-macchina (traduzione di programmi e scarsa efficienza del programma). La prima evoluzione dei linguaggi di programmazione ha portato ad una codifica di tipo simbolico, anziché binaria, dei programmi. Tali versioni simboliche dei linguaggi hardware sono note come linguaggi assembly

Linguaggi di programmazione: Evoluzione Il passo successivo nell’evoluzione dei linguaggi di programmazione tese a rendere la codifica degli algoritmi il più possibile “vicina” al problema da risolvere anziché all'architettura della macchina destinata all'esecuzione del programma. Non a caso i primi due linguaggi di alto livello, FORTRAN e COBOL, hanno costrutti fortemente ispirati alla notazione usata per descrivere i problemi di maggior rilievo per il calcolo automatico degli anni '50, cioè l'elaborazione numerica e quella gestionale. Alto Livello Assembly Macchina/binario MicroProgrammi Hardware

Linguaggi di programmazione: Evoluzione Gli anni '70 vedono il fiorire dei linguaggi Strutturati: il SIMULA 67, l’ALGOL 68, ma soprattutto il PASCAL e il C Negli anni '80 si ha l'affermarsi dei linguaggi Object-Oriented (OO): C++, Visual BASIC, Java, C#

La Tecnica di Programmazione Non è legata ad un linguaggio, anche se alcuni linguaggi sono ideali per essere abbinati ad una specifica tecnica di programmazione Esistono tre tecniche: Programmazione NON Strutturata, che produce lo Spaghetti Code Programmazione Strutturata: Sequenza, Selezione, Ripetizione Programmazione ad Oggetti: Classe, Oggetto, Metodo

L’Esecuzione dei Programmi Il programma scritto in un qualunque linguaggio deve essere tradotto in linguaggio binario Esistono due soluzioni: Interpretazione Compilazione

L’Interpretazione Funzionamento di un interprete: Preleva un’istruzione I del programma P scritto nel linguaggio L Decodifica I Traduce I in una serie di istruzioni in linguaggio macchina M1, M2, … , Mn Esegue M1, M2, … , Mn Passa all’istruzione successiva di P fino a quando non si sia raggiunta una istruzione di terminazione

Lo sviluppo dei programmi basato sulla Compilazione File sorgente File sorgente File sorgente File sorgente Compilazione Compilazione Compilazione Compilazione File oggetto File oggetto File oggetto File oggetto Link Libreria/e File eseguibile I codici sorgente ed oggetto possono essere suddivisi in più file, il codice eseguibile di un programma risiede in un unico file

Le Funzioni di Libreria In molti linguaggi (quali il C), molte operazioni vengono delegate a delle librerie Le funzioni sono divise in gruppi, quali I/O, gestione della memoria, operazioni matematiche e manipolazione di stringhe Per ogni gruppo di funzioni esiste un file sorgente, chiamato file header, contenente le informazioni necessarie per utilizzare le funzioni (Dichiarazione costanti, funzioni, parametri delle funzioni, etc.) I nomi dei file header terminano, per convenzione, con l’estensione “.h” (ad es., stdio.h è il file header dello standard I/O nel linguaggio C)

La compilazione dei file sorgente Un file sorgente contiene un main e un insieme di routine, chiamate funzioni, ognuna delle quali risolve una piccola parte del problema di programmazione Un file sorgente può contenere chiamate a funzioni di libreria e chiamate a funzioni contenute in altri file sorgenti Il compilatore è esso stesso un programma (o un gruppo di programmi) che deve essere eseguito Durante la compilazione avviene: Controllo del codice sorgente da parte di un preprocessore: interpretare speciali direttive di precompilazione, Controllo di eventuali errori sintattici (NON LOGICI), Produzione di un file in codice Assembly, Trasformazione del file in codice Assembly in un altro file in codice OGGETTO (Macchina): estensione .obj

Il link Il linker è generalmente un programma distinto dal compilatore: in alcuni ambienti il programma di link deve essere lanciato separatamente Il Linker fa in modo che: i riferimenti tra diversi file oggetto e con le librerie vengano risolti i file oggetto creati dal compilatore vengano trasformati in un unico file eseguibile, al quale vengano associate le librerie necessarie all’esecuzione Il risultato prodotto dal Linker è un programma eseguibile, che può essere caricato in memoria

La Fase di Caricamento Il Caricamento di un programma in memoria, avviene nel momento in cui l’utente richiede la sua esecuzione Durante la fase di caricamento (o loading ), il programma eseguibile viene caricato nella memoria del calcolatore; Le Fasi di Compilazione, Linker e Loading sono separate (anche temporalmente) Attenzione: l’uso dei compilatori crea false impressioni !

Esempio – Linguaggio C Molte idee basilari del C derivano dal linguaggio BCDL e linguaggio B Nel 1978 Kernighan e Ritchie pubblicano “The C Programming Language” Nel 1983 l’American National Standards Institute (ANSI) ha iniziato i lavori per la definizione dell’ANSI C Nel 1988 nasce l’ANSI C

Esempio – Linguaggio C Per includere un file header in un programma in linguaggio C, occorre inserire nel codice sorgente: include <nomefile.h> La direttiva include è rivolta al preprocessore Si chiama: Direttiva di Precompilazione Esempio: Per utilizzare printf(), che permette di visualizzare dati su terminale, è necessario inserire nel sorgente la direttiva di precompilazione: include <stdio.h>

Esempio – Linguaggio C include<stdio.h> main() { printf(“Salve, mondo\n”); } Include la libreria standard di I/O Definisce una funzione main che non riceve alcun valore come argomento main richiama la funzione di libreria printf per stampare la sequenza di caratteri specificata; \n indica il new line