Linguaggio C e C++.

Slides:



Advertisements
Presentazioni simili
C C++ &.
Advertisements

I Linguaggi di programmazione
Traduzione ed Interpretazione
Informatica Generale Marzia Buscemi
Sistema operativo MS-DOS
Il Software.
Software di base: Linguaggi di Programmazione
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Code::Blocks Ambiente di sviluppo.
Code::Blocks Ambiente di sviluppo.
Evoluzione dei linguaggi di programmazione
I linguaggi di programmazione
Linguaggi di programmazione
Type Checking (1° parte)
Algoritmi e Programmazione
Generalità Linguaggio e Macchina Astratta
3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)
3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)
Dr. Francesco Fabozzi Corso di Informatica
Programmazione Procedurale in Linguaggio C++
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.
TRADUZIONE DEL PROGRAMMA Una volta che un programma sia stato scritto in C, esso non può essere eseguito senza unulteriore traduzione. Ciò perché qualsiasi.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
Terza parte: Programmazione ad oggetti in Java. Cosè Java Linguaggio di programmazione definito dalla Sun Obiettivo: sviluppo di applicazioni sicure,
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.
Struttura dei sistemi operativi (panoramica)
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
Unità Didattica 2 I Linguaggi di Programmazione
Primi Elementi di Programmazione in C++
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
Fondamenti di Informatica
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Espressioni condizionali
AN FI Concetti. Linguaggi di alto livello u Hanno capacita' espressive superiori a quelle del linguaggio macchina u Suggeriscono concetti e modi.
9. HARDWARE KERNEL O NUCLEO GESTORE DELLA MEMORIA GESTORE DELLE PERIFERICHE GESTORE DEI FILE INTERFACCIA UTENTE - GUI(Graphic Interface Unit) 2 ECDL MODULO.
Introduzione al linguaggio assemby del microprocessore a parte
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
Le basi della programmazione
Lo sviluppo del software e i linguaggi di programmazione
Macchine astratte, linguaggi, interpretazione, compilazione
Implementazione di un linguaggio ad alto livello (con riferimento a Java)
Linguaggi per COMUNICARE
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Dal problema all’ algoritmo
la traduzione dei programmi
Rappresentazione degli algoritmi
Scrivere e compilare programmi
Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado.
Corso di Architetetture degli Elaboratori, A.A. 2004/ Architettura degli Elaboratori Elisa B.P. Tiezzi Orario ricevimento: Giovedì, ( Il materiale.
Interpreti e compilatori
Concetti Fondamentali sulla Programmazione
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.
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
I linguaggi di programmazione -GALBIATI ALBERTO -ESPOSITO MATTIA.
Programmazione orientata agli Oggetti Introduzione a Java.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Unità di apprendimento 6
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

Linguaggio C e C++

1971 inizio sviluppo linguaggio C Nato per scrivere implementazioni efficaci di UNIX sui nuovi processori e che fosse: Semplice da usare Espressivo e flessibile Sufficientemente compatto in modo da occupare poca memoria

Caratteristiche del C Permette di gestire in modo semplice i dispositivo hardware Permette di implementare algoritmi anche complessi in modo relativamente semplice Permette la scrittura di un codice compatto ed efficiente

Nasce il C++ Anni ’80 nasce il C++ per aggiungere qualcosa di nuovo al linguaggio C C e C++ hanno la stessa sintassi Il C++ nasce per rendere più semplice la scrittura di grandi software pensati per sistemi di simulazione. La principale e fondamentale differenza del C++ rispetto al C consiste nell’implementazione del PARADIGMA A OGGETTI.

Classificazione dei linguaggi Classificazione per livello Linguaggi di basso livello Linguaggi di alto livello Classificazione per paradigma (approccio alla soluzione del problema) Di tipo dichiarativo Di tipo imperativo Classificazione per formato di codice Linguaggi compilati Linguaggi interpretati Linguaggi semicompilati

Linguaggi di alto livello (FORTRAN PASCAL) Si occupano di problemi non legati alla macchina La gestione dell’hardware è demandata alle librerie di sistema quindi al programmatore non è consentita la personalizzazione totale I programmi sono portabili (tramite il compilatore)

Linguaggi di basso livello (assembler) Permettono di dialogare in maniera diretta con il microprocessore e con l’ardware (vantaggio) Ha applicazione in sviluppo di driver (vantaggio) Il programmatore deve conoscere le caratteristiche dell’hardware (svantaggio) È una programmazione complessa (svantaggio) I programmi non sono portabili

Di tipo imperativo Linguaggi a procedure: consiste nel suddividere l’algoritmo da eseguire in diversi sottoalgoritmi detti procedure o funzioni, tali procedure possono essere suddivise in sottoprocedure ecc.. (processo TOP-DOWN) Linguaggi ad oggetti: tende a raggruppare procedure e i dati da essere trattati in ambienti chiusi detti oggetti

Di tipo dichiarativo Inizio anni ‘6o Il linguaggio che adotta un paradigma di programmazione dichiarativo si occupa di definire CHE COSA deve essere fatto, senza occuparsi del come demandandolo all’implementazione del linguaggio

Linguaggi compilati Prevedono un ciclo di vita del tipo: scrittura, compilazione (tramite compilatore), traduzione permanente in linguaggio macchina Produce programmi più veloci Il programma compilato non dà la possibilità di leggere il sorgente I programmi compilati non sono portabili

Linguaggi interpretati Non sono tradotti in linguaggio macchina ma sono letti, durante l’esecuzione, da un particolare programma detto interprete che li traduce simultaneamente in linguaggio macchina Un linguaggio interpretato è più lento Il sorgente è leggibile

Linguaggi semicompilati (java) Prima avviene una pre-compilazione portabile Quando viene lanciato viene tradotto completamente in linguaggio macchina Il pre-compilato non è facilmente leggibile quindi abbastanza sicuro

Classificazione dei linguaggi C e C++ Non è né di alto né di basso livello è di livello intermedio È un linguaggio a paradigma imperativo e aggiunge la possibilità di gestioni coerenti con il paradigma ad oggetti quindi è ibrido È un linguaggio complilato Non è né di alto né di basso livello è di livello intermedio È un linguaggio a paradigma imperativo È un linguaggio complilato

Le fasi della programmazione Codice su carta editor Errori compile-time Codice sorgente Errori di run-time compilatore Codice oggetto Librerie esterne linker Codice eseguibile run risultati

Errori di COMPILE-TIME Lessicali:se il compilatore non riconosce un simbolo (es. una variabile che inizia con un numero, scrittura errata di una parola riservata come while…) Semantici:ad es. una variabile non dichiarata o la presenza di una variabile dichiarata ma mai utilizzata. Gli errori come quest’ultimo viene indicato come un worning (avvertimento) Sintattici: quando non vengono rispettate le regole sintattiche proprie del linguaggio Se capita di commettere uno dei precedenti errori si torna in fase di editing e si eliminano gli errori che di solito vengono segnalati dal compilatore

Run Possiamo eseguire il programma e, se non ci sono errori di RUN-TIME ottengo i risultati voluti

linker Il passo successivo coinvolge il linker che ha il compito di collegare il codice oggetto con altri codici oggetto creati in precedenza (librerie esterne) il linker produce un file eseguibile .EXE

Programma o Codice oggetto Il programma sorgente viene compilato e, se non ci sono errori di COMPILE-TIME, tradotto in programma oggetto o codice oggetto dal COMPILATORE

Errori di RUN-TIME Risultati diversi da quelli previsti: questo errore può derivare da errata visualizzazione di dati ma anche da errori di logica Over flow, under flow, divisione per zero: è causato da calcoli che hanno un risultato che non può essere memorizzato perché al di fuori del range dei valori ammessi, oppure perché il denominatore di una frazione assume valore zero Loop infinito:quando si verifica questo errore il programma non termina l’esecuzione perché esegue infinite volte il nucleo di un ciclo.

Codice sorgente Attraverso un editor si digita, usando un apposito linguaggio di programmazione, (codifica) si salva in una memoria di massa e prende il nome di programma sorgente o codice sorgente

Codice su carta Progettazione dell’algoritmo risolutore del problema di partenza Scrittura del codice su carta Verifica del funzionamento mediante simulazione (testing)