Linguaggio C in 48h – Lo standard ANSI/C

linguaggio-c-K&R

Seconda lezione sul linguaggio di programmazione C. I vantaggi del linguaggio C e lo standard ANSI per il linguaggio C. L’uso di compilatori ANSI/C garantisce la completa portabilità.

I vantaggi del linguaggio C

Come dicevamo nella puntata precedente (Introduzione alla programmazione in C) i vantaggi del linguaggio C sono molteplici.
Oltre ad avere istruzioni intuitive per la lungua inglese, abbiamo la possibilità riusare parti di programma. Infatti il linguaggio C è NON è un linguaggio di programmazione ad oggetti ma sul linguaggio C si basamo molti importanti linguaggi di programmazione orientati agli oggetti, come ad esempio il C++.

Nel linguaggio C , non avendo a disposizione le classi, e quindi gli oggetti, possiamo definire “i nostri oggetti” le librerie che possiamo creare e sfruttare per ogni programma. Una libreria può essere considerata una funzione, o una subroutine. In pratica un oggetto finito, a se stante, che abbiamo sviluppato una volta e riuseremo tutte le volte che ci serve, sia nello stesso programma, che in altri che svilupperemo in futuro.

Mi spiego meglio. Se dobbiamo scrivere su un display particolare, faremo UNA VOLTA l’oggetto (la routine, la funzione, il driver… chiamatelo come vi pare) che gestisce quel tipo di display. Ovviamente la funzione deve ricevere il carattere da stampare sul display (se questa non l’avete capita ora, non vi preoccupate,la capirete in seguito), stamparlo e ritornare (eventualmete) OK.
Fatto questo, ogni volta che chiameremo quell’oggetto, lo faremo “passandogli” il valore del carattere ed aspettando la conferma dell’OK. Questo per ogni vlta che dobbiamo scrivere su quel display, adesso e nei software futuri. Questa à la programmazione ad oggetti.

Altro vantaggio del linguaggio C è che molti altri linguaggi di programmazione sono derivati dal C. Quindi se conoscete il linguaggio di programmazione C non avrete sicuramente difficoltà ad imparare il C++ , il C# oppure il linguaggio Java , il PHP, il Perl.

Il linguaggio C e lo standard ANSI

Per molti anni lo standard per il linguaggio C è stato dettato dai fondatori Kernighan & Ritchie. Il loro standard risale al 1978 e da molte cambiamenti, non ufficiali, sono stati fatti dopo alcuni anni.
Finchè l’istituto ANSI (American National Standards Institute), preoccupato per il rischio che la portabilità venisse a mancare, ha deciso di creare uno standard per il linguaggio C. Nel 1983 nasce lo standard ANSI/C e nel 1989 viene approvato come standard ufficiale per il linguaggio di programmazione C.
Lo standard ANSI/C si basa ovviamente sul K&R, al quale apporta alcuni miglioramenti.
Con la nascita dello standard ANSI/C tutte le case di sviluppo dei compilatori hanno iniziato a realizzare compilatori ansi/c in grado di rendere questo linguaggio di programmazione veramente portabile su tutte le macchine (microprocessori).
Ci sono alcune eccezioni ovviamente, spesso legate ai microcontrollori, ad esempio ad 8bit con poche risorse disponibili, ma a parte poche famiglie di micro, quasi tutti i processori hanno a corredo un compilatore C, o meglio ANSI/C, anche chiamato FULL/ANSI.

I compilatori C

Una volta finito di scrivere il programma in C (su qualsiasi editor di testo) si deve compilare, cioè tradurre in linguaggio macchina, per poi essere “dato in pasto” al microcontrollore o eseguito sul PC.
Quindi il compilatore svolge un ruolo fondamentale perche è colui che traduce il nostro software.
Se usate Linux probabilmete avrete già un compilatore nel vostro sistema, altrimenti esistono decine di compilatori C per Windows come il Borland, il Visual C++ etc.
In genere i compilatori C sono anche C++ quindi troverete spesso compilatori C/C++ e quasi tutti con all’interno anche una IDE che permette di scrivere il programma direttamente nell’ambiente di sviluppo.
Nel mondo embedded i compilatori sono spesso realizzati per famiglie di processori, perche non sempre è possibile avere lo standard FULL/ANSI e perche ci sono delle piccole differenze che vedremo in seguito.
Comunque le potenzialità dello standard ANSI/C sono apprezzate soprattutto per il fatto che se dobbiamo sviluppare un firmware per un microcontrollore a 8bit che ha un compilatore ANSI/C, possiamo scrivere il programma nel Borland, testarlo sul PC e, quando tutto funzionante, “portarlo” sul nostro micro con un minimo di fatica, ma avendo fatto tutti i test necessari su una piattafoma ad alto livello come quella Borland.

One Response

  1. Emanuele 19 febbraio 2010

Leave a Reply