Vai al contenuto

C/Linguaggio/Panoramica

Wikibooks, manuali e libri di testo liberi.
Indice del libro

Un linguaggio di programmazione

[modifica | modifica sorgente]

Il primo computer fu programmato con il linguaggio macchina, ossia un linguaggio formulato tramite una sequenza di bit. Questo modo di programmare è detto di bassissimo livello ed è l'unico linguaggio comprensibile e direttamente eseguibile dal microprocessore. Scrivere un programma direttamente in linguaggio macchina richiede la conoscenza intima dello specifico microprocessore per il quale si sta scrivendo il programma, questo comporta la non trasportabilità del programma su un altro computer basato su un'altra famiglia di microprocessori. Noi umani non comprendiamo per natura il linguaggio macchina o binario, soltanto leggere una sfilza interminabile di codice per i nostri occhi è una fatica insostenibile.

Per questi e altri motivi, durante l'evoluzione informatica sono stati creati i linguaggi di programmazione, al fine di semplificare e ridurre i tempi di sviluppo e manutenzione del programma.

Uno dei linguaggi ancora usato è il linguaggio assembly assembler:, tuttavia anche questo è poco produttivo e per questo viene usato assieme ad altri linguaggi specie con il C, quando le operazioni da svolgere devono essere compiute nel minore tempo possibile. L'assembly è afflitto dagli stessi problemi del linguaggio macchina, cioè non è portabile ed è molto complesso perché ci si ritrova a dovere manipolare direttamente i registri del microprocessore, tuttavia è un linguaggio mnemonico facilmente memorizzabile e leggibile dagli umani. Il programma scritto in assembly per potere essere eseguito dal computer richiede una trasformazione in codice macchina comprensibile al microprocessore, in genere la trasformazione è ad opera di un programma detto assembler o assemblatore. Questo linguaggio appartiene alla categoria dei linguaggi di basso livello e si colloca poco sopra il linguaggio macchina.

Durante l'evoluzione informatica si assiste a una proliferazione di linguaggi di alto livello, creati e pensati per risolvere un particolare tipo di problemi e altri invece più generici. I linguaggi di alto livello rendono il programma più leggibile e mantenibile, il risultato è un codice compatto e maggiormente comprensibile.

Alcuni esempi di questi linguaggi di alto livello sono il Pascal per le applicazioni didattiche, il Fortran per applicazioni scientifiche, il BASIC, il Cobol per citarne alcuni, e naturalmente il C.

Le particolarità del C

[modifica | modifica sorgente]

È un linguaggio a medio livello

[modifica | modifica sorgente]

Quello che differenzia il C dagli altri linguaggi di programmazione è proprio il fatto che è considerato Il linguaggio di più basso livello tra quelli di alto livello, proprio in questa affermazione va ricercato il fatto che il C è ampiamente utilizzato per programmare driver, sistemi operativi e applicazioni che richiedono un controllo diretto sulle periferiche.

Ogni programma viene visto come un comando (complesso, o strutturato) ottenuto componendo altri comandi mediante 3 strutture di controllo: concatenazione, alternativa e ripetizione.

Con tipizzazione debole

[modifica | modifica sorgente]

Nel senso che un dato di un particolare tipo può essere visto dal programma, tramite particolari tecniche, come di un altro tipo o addirittura convertito in un altro tipo. Inoltre alcune conversioni da un tipo all'altro sono implicite, altre possono essere forzate.

È case-sensitive

[modifica | modifica sorgente]

Il C è case-sensitive: pertanto ab, AB, Ab e aB saranno quattro variabili diverse.

Storia del C

[modifica | modifica sorgente]

Fu ideato nei Bell Laboratories della AT&T nel 1972 da Dennis Ritchie come evoluzione del linguaggio B di Ken Thompson usato per la scrittura dei primi sistemi operativi UNIX. Lo stesso Thompson nel 1970 si era a sua volta ispirato al linguaggio BCPL di Martin Richards, anch'esso pensato per scrivere sistemi operativi e software di sistema. La definizione formale si ha nel 1978 a cura di B. W. Kernighan e D. M. Ritchie. Nel 1983 iniziò il lavoro di definizione di uno standard da parte dell'American National Standards Institute, che rilasciò nel 1990 lo Standard ANSI C (ISO C89).

Varianti e i linguaggi derivati

[modifica | modifica sorgente]

Lo standard venne anche adottato dall'International Organisation for Standardisation (ISO) nel 1999 con il nome di C Standard ANSI/ISO. Nel 1995 fu adottato l'Emendamento 1 al C Standard che, fra le altre cose, ha aggiunto nuove funzioni alla libreria standard del linguaggio. Usando come documento base il C89 con l'Emendamento 1, e unendovi l'uso delle classi di Simula, Bjarne Stroustrup iniziò a sviluppare il C++.

Il risultato finale del continuo sviluppo del C fu lo standard promulgato nel 1999, noto come ISO C99.

Il linguaggio Objective C deve la sua popolarità alla Apple che lo ha scelto come base per il suo sistema operativo Mac OS X.

È un linguaggio orientato agli oggetti e a differenza del C++ mantiene la piena compatibilità con il C.

Un semplice programma

[modifica | modifica sorgente]

Partiamo introducendo il classico programma Hello World!.

 #include <stdio.h>
 #include <stdlib.h>
 int main(void)
 {
  printf("Hello World!");
  system("PAUSE");    //permette di fermare il programma
 }

Ecco l'analisi del codice:

  • #include <stdio.h> consente di poter usare la funzione printf che consente di scrivere sullo schermo;
  • int main(void): è la funzione principale del programma (vedere La funzione main);
  • printf("Hello World!");: stampa la stringa Hello World!;

Esamineremo in dettaglio tutte queste istruzioni nei prossimi capitoli.