Per leleganza della sintassi e le compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.
(Guida al C MC GRAW HILL).
Che dite, lo impariamo?
Il C è un linguaggio di alto livello con un insieme ristretto di costrutti di controllo e parole chiave (circa trenta), ma possiede un buon numero di operatori. Tra i linguaggi di basso livello è quello di piu alto livello. Attenzione a non confondervi: linguaggio a basso livello non significa piu facile da imparare ma, al contrario, è piu difficile poiché in grado di operare anche a basso livello nel computer, con istruzioni che si fanno via via piu incomprensibili.
Il C e' diventato un linguaggio professionale ampiamente utilizzato perché ha appunto strutture di alto livello ma puo' maneggiare attivita' di basso livello. Produce inoltre programmi efficienti e puo' essere compilato su un'ampia gamma di sistemi operativi.
Il suo trampolino di lancio è stato UNIX, sistema operativo di grandissima stabilità. Il C ne ha seguito le sorti fin dallinizio divenendo il linguaggio di programmazione preferito da studenti universitari e istituti di ricerca.
Lo standard per i programmi C in origine era dato dalle caratteristiche messe a punto da Dennis Ritchie. In seguito, al fine di rendere il linguaggio piu' accettabile a livello internazionale, venne messo a punto uno standard internazionale chiamato ANSI C (American National Standards Institute). Il C non venne modificato e, nella versione ANSI attuale include un numero limitato di istruzioni, ma ogni funzione diversa dai costrutti di controllo o dalle operazioni standard è affidata a un insieme di librerie esterne. Ogni programmatore puo aggiungerne di nuove rendendo la programmazione estremamente versatile e flessibile.
Ma iniziamo...
Ecco il classico Hello World.
#include <stdio.h>
main()
{
printf(Hello World);
}
Cerchiamo di analizzarlo.
Listruzione #include <stdio.h> significa includi <stdio.h> che sta per standard input/output. Con questa istruzione includiamo nel nostro programma la libreria standard del linguaggio C che consente di gestire i flussi in entrata e in uscita. Per esempio la lettura di un dato immesso con la tastiera (ovvero un input), oppure lapparizione di una stringa di testo sullo schermo (un output).
Il main() è il corpo del programma, dove saranno racchiuse le nostre istruzioni. Bisogna aprire e chiudere le graffe rispettivamente allinizio e alla fine del main.
Listruzione printf( ) è listruzione che ordina di scrivere una stringa di testo. Il testo andrà scritto tra doppi apici che a loro volta saranno racchiusi tra le parentesi tonde. Alla fine di ogni linea di codice occorre sempre aggiungere un punto e virgola.
Come editore/compilatore consiglio CodeWarrior. Per lapprendimento del linguaggio va bene anche la versione Lite reperibile gratuitamente su Internet.
Cosa sono leditor ed il compilatore?
Leditor è simile ad un programma di videoscrittura con il quale scrivete le linee di codice (vedi anche ScriptEditor negli articoli su AppleScript) e che ha al suo interno un debugger, ovvero un sistema che ricerca gli errori eventualmente commessi allinterno del vostro listato e ve li segnala.
Un programma come CodeWarrior ha integrato sia il sistema di editing che di debugging e di compilazione. Ma è anche possibile usare strumenti diversi, ad esempio scrivere il listato con SimpleText e compilarlo con un compilatore. Tuttavia, per comodità è preferibile lutilizzo di un sistema integrato.
Il compilatore traduce le istruzioni scritte in C in linguaggio comprensibile al microprocessore, ovvero in Assembler. Il computer infatti non lavorerà con le istruzioni scritte da noi, ma con le istruzioni molto piu a basso livello tipiche di tale linguaggio. Non ci occuperemo di Assembler, ma accludo qui sotto un esempio di listato per fare mente locale su questo linguaggio e mostrarvi quanto appaia incomprensibile di primo acchito e non solo, poiché richiede uno studio molto piu approfondito rispetto agli altri linguaggi.
CSEG
main_: jmp inizio
mess db 'ABC,10,13,13
mess2 db ' ABCDEF',10,13,10,13,'$'
hjkf db ' '
inizio:
MOV AX,CS
MOV DS,AX
MOV AH,9 ;
MOV DX,OFFSET mess2
INT 21H MOV AH,4CH ;per finire programma
INT 21H ;fine programma
RET
END
Le variabili
Se avete seguito il mio corso di AppleScript sarete piu facilitati nellapprendimento di alcuni concetti.
Iniziamo a parlare delle variabili (vedi relativo articolo di AppleScript).
Ecco allinterno di un listato C come si dichiara una variabile. In questo caso è un numero intero (int) ma puo essere anche a virgola mobile (float):
#include <stdio.h>
main() {
int a;
}
int a, ovvero numero intero a.
Ora vediamo luso di una variabile in un listato piu useful. Ecco per esempio il listato di un programma che scrive a video la somma di due numeri interi.
#include <stdio.h>
main() {
int a = 5;
int b = 4;
int c = a+b;
printf("Risultato: %d",c);
}
Abbiamo dichiarato due variabili ( a , b) di tipo intero (int) e abbiamo assegnato loro un valore (ad a 5, a b 4), in seguito è abbiamo dichiarato unaltra variabile sempre int il cui valore sarà quello dato da a + b.
Infine per mostrare il risultato a video ecco listruzione printf.
Se deve essere stampato, oltre al testo prestabilito (Risultato:), anche una variabile, dobbiamo scrivere tra i doppi apici %d nel caso di una variabile intera, %f nel caso di una variabile a virgola mobile (dichiarata come float), e fuori dagli apici, ma prima della chiusura della tonda, dobbiamo dichiarare la variabile da stampare a video. %d serve esclusivamente ad indicare il punto allinterno della stringa di testo nel quale dovrà essere stampata la variabile.