STORIA E CARATTERISTICHE

Documenti analoghi
C O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O

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

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

Linguaggio C. Appunti per il corso di Laboratorio di Algoritmi e Strutture Dati. Stefano Aguzzoli

Linguaggio C Struttura dei programmi

Linguaggio C: introduzione

Programmazione C Massimo Callisto De Donato

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C

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

Linguaggio C++ Linguaggi di terza generazione

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

Unità Didattica 2 I Linguaggi di Programmazione

Linguaggi di Programmazione

Il linguaggio di programmazione Python

LINGUAGGI DI ALTO LIVELLO

Linguaggi di Programmazione

Le direttive del Preprocessore

Informatica (A-K) 7. Linguaggio C - 1

Corso sul linguaggio Java

IL PRIMO PROGRAMMA IN C

Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore)

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Corso di Calcolatori Elettronici Un computer è un dispositivo in grado di eseguire dei calcoli e di prendere delle decisioni logiche.

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Modulo 2: Strutture fondamentali della programmazione Java

Elementi di informatica

Il calcolatore. Architettura di un calcolatore (Hardware)

Introduzione al Linguaggio C

Informatica B. Breve introduzione all ambiente di programmazione. Politecnico di Milano IV Facoltà di Ingegneria 2003

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

INTRODUZIONE Informatica - Modulo di Programmazione Ingegneria gestionale, a.a Patrizia Scandurra

Introduzione alla programmazione. Walter Didimo

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

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Introduzione a. Funzioni di Ingresso e Uscita. Compilazione

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

Programmazione Orientata agli Oggetti in Linguaggio Java

Cenni sul preprocessore e il suo utilizzo

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

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base

Indice. Prefazione. 3 Oggetti e Java 53

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

COMPILAZIONE. Tarsformazione di linguaggi

Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

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

Introduzione a Ingresso e Uscita. Scrittura di un programma C++ Compilazione Esecuzione

Programmazione: Sommario

Macchina Astratta: struttura e realizzazione.

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

Elementi di C++ di base

AMBIENTI DI PROGRAMMAZIONE

Linguaggi di programmazione

Linguaggi di programmazione

Linguaggi, compilatori e interpreti

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

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Programmazione Procedurale in Linguaggio C++

Lab 01 Introduzione a Codelite

Informatica! Appunti dal laboratorio 1!

Informatica A. Il linguaggio C. A.a. 2006/2007. Allievi Ingegneria Gestionale

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

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Linguaggi di Programmazione

Il software: dall algoritmo al linguaggio macchina

Corso di Architettura (Prof. Scarano) 09/04/2002

Le basi del linguaggio Java

Linguaggi di alto livello, compilatori e interpreti

Il paradigma di programmazione a oggetti

La programmazione nel linguaggio C

La sintassi del C APPENDICE H

Sviluppare un programma in FORTRAN

Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Primi passi con JFlex

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

cap.6 del testo a cosa servono i tipi nei linguaggi di programmazione cos è un linguaggio type safe

10: I LINGUAGGI di PROGRAMMAZIONE PARTE 1

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

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

Programmazione modulare

LA CODIFICA DELLE INFORMAZIONI

LINGUAGGI DI PROGRAMMAZIONE!

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

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

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

Corso di. Fondamenti di Informatica T

LA SINTASSI DEI LINGUAGGI DI PROGRAMMAZIONE. Ivan Lanese

Debug di un programma

Introduzione a Java. Riferimenti

La programmazione in linguaggio C

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

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

Introduzione a Visual Studio Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

COSTRUZIONE DI UN APPLICAZIONE

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010

Il linguaggio C - Introduzione

Preprocessore, linker e libreria standard

GENERATORE DI MATRICI COMMUTATIVE

la traduzione dei programmi ed introduzione a Java

Transcript:

IL LINGUAGGIO C

STORIA E CARATTERISTICHE

STORIA E VERSIONI Sviluppato da Dennis Ritchie ai Bell Labs nel 1972 per realizzare il sistema operativo UNIX K&R C: 1978 (prima versione, K&R dal nome degli autori del libro che lo ha divulgato: Kernighan e Ritchie) ANSI C: 1989 (alias: Standard C, C89) ISO C: 1990 (quasi identico al C89, alias: C90) C99: 1999 (Nuovo standard ISO)

CARATTERISTICHE DEL LINGUAGGIO Un compilatore C è disponibile su tutti sistemi Codice molto efficiente (veloce) Ha caratteristiche di alto livello: adatto per programmi anche complessi Ha caratteristiche di basso livello (accesso ai bit): permette di sfruttare le peculiarità proprie di una macchina o architettura (efficienza)

CARATTERISTICHE DEL LINGUAGGIO Tantissime librerie per aggiungere funzionalità Tra i linguaggi più diffusi, il più usato per sviluppare software di sistema Interfaccia utente testuale (+libreria grafiche) Non è a oggetti e ha gestione manuale della memoria dinamica (nessun garbage collector)

FASI DI COMPILAZIONE

FASI DI COMPILAZIONE Il preprocessore elabora le direttive #include,#define,... modificando il sorgente Il compilatore traduce il codice C in linguaggio macchina: 1) con ottimizzazione (della velocità di esecuzione o della dimensione dell eseguibile) 2) senza ottimizzazione (per il debug) Il linker assembla in un unico file eseguibile: i file oggetto prodotti da diversi file sorgente le librerie (I/O, matematiche, network, ecc.)

ERRORI E WARNING Il compilatore verifica la correttezza del codice C e produce due tipi di errori: Error: errori sintattici, impediscono la generazione del codice eseguibile Warning: errori non sintattici che non impediscono la generazione del codice eseguibile; i warning segnalano un possibile (e altamente probabile) problema che il compilatore risolve in base a regole generiche (ma attenzione: la soluzione generica potrebbe non essere quella corretta) Un codice pulito non deve produrre né errori né warning

SINTASSI

LA SINTASSI I caratteri maiuscoli sono considerati diversi dai corrispondenti minuscoli (il linguaggio C è case sensitive ) Le istruzioni sono una sequenza di caratteri terminate dal carattere ;

LA SINTASSI Quando l istruzione è il solo carattere ; essa è detta istruzione nulla e non produce alcuna azione (esempi più avanti nel corso) I commenti sono annotazioni sul codice fatte dal programmatore, iniziano con la coppia di caratteri /* e terminano con la coppia */, vengono ignorati dal compilatore che li considera come un unico carattere spazio

LA SINTASSI Le istruzioni possono continuare su più righe Si può andare a capo in ogni punto dove si può mettere uno spazio, esclusi quelli all interno delle stringhe (sequenze di caratteri delimitate da doppie virgolette, es. "ciao ciao")

LA SINTASSI Una sequenza (anche mista) di uno o più: spazi caratteri di tabulazione (Tab) ritorni a capo commenti è considerata dal compilatore equivalente ad un unico spazio (tranne che all interno delle stringhe)

LA SINTASSI Un blocco di codice è un insieme di istruzioni racchiuso tra parentesi graffe e costituito, nell ordine, da due parti: una sezione opzionale con la definizione d tutte le variabili ad uso esclusivo di quel blocco una sezione con le istruzioni eseguibili Le parentesi graffe sono opzionali e normalmente omesse se il blocco di codice è costituito da una sola istruzione (salvo il blocco che racchiude il corpo di una funzione, in particolare il main)

LA SINTASSI Le istruzioni di un blocco (non le eventuali parentesi graffe) si scrivono tutte indentate di un numero fisso di spazi { } a = 12; b = 23; c = a + b; L indentazione viene ignorata dal compilatore ma aiuta il programmatore a comprendere meglio il flusso del programma per cui va fatta mentre si programma e non dopo