|
Storia del linguaggio C
Il linguaggio C fu sviluppato al Bell Laboratories nel 1972 da Dennis
Ritchie.
Molti dei suoi principi e idee erano presi dal precedente linguaggio B e
il B aveva ereditato certe caratteristiche da BCPL e CPL.
Il CPL (Combined Programming Language) era stato creato con lo scopo di
creare un linguaggio capace di operare ad alto livello, con
programmazione indipendente dalla macchina, ma che ancora consentisse al
programmatore di controllare il comportamento dei singoli bit di
informazione.
Il guaio maggiore di CPL era che occupava troppo spazio per poter girare
in molte applicazioni.
Nel 1967 venne creato il BCPL (Basic CPL) proprio per ovviare a questo
problema con una versione ridotta, senza perdere le sue funzioni di
base.
Nel 1970, Ken Thompson, presso i Bell Laboratories, portò ancora più
avanti il progetto realizzando appunto il linguaggio B, che era una
versione ancora più scalata del BCPL, scritta appositamente per essere
usata come linguaggio di sistema.
E per ultimo, nel 1972, un collaboratore di Ken Thompson, Dennis
Ritchie, restituì alcune generalità del BCPL al linguaggio B, con lo
scopo di sviluppare una nuova versione, che venne ovviamente denominata
"C".
La potenza e flessibilità del C apparve subito evidente e per questo il
sistema operativo di Unix, scritto in assembly, venne riscritto
immediatamente in C.
Fino alla fine degli anni '70, il C invase molti college e università
per il suo stretto legame con Unix e la disponibilità di un compilatore.
Presto molte organizzazioni indipendenti iniziarono ad usare una loro
versione di C, creando notevoli problemi di compatibilità. Come risposta
l'ANSI (American Standards Institute) nel 1983 formò un comitato per
stabilire una definizione standard del C, che divenne così un ANSI
Standard C.
Oggi il C è diffusissimo, insieme ad una ricca raccolta di librerie di
funzioni.
Aree applicative linguaggio C
Il C è usato in molte applicazioni, ma in particolare in ambiente Unix e
per sviluppo di giochi.
Il C++
E' un'estensione del C, sviluppato da Bjarne Stroustrup all'inizio degli
anni '80, presso i Bell Laboratories.
Il C++ fornisce una serie di funzioni che potenziano il C, ma, cosa
ancora più importante, fornisce le capacità di gestione della
programmazione di tipo object-oriented, con ampio utilizzo delle classi.
Aree applicative del C++
- Software Engineering
- grafica
Esempi di programmi in C:
1) Hello World
/* Hello World program */
#include<stdio.h>
main()
{
printf("Hello World");
}
2) Sorting program
/* Using qsort() and bsearch() with values.*/
#include <stdio.h>
#include <stdlib.h>
#define MAX 20
int intcmp(const void *v1, const void *v2);
main()
{
int arr[MAX], count, key, *ptr;
/* Enter some integers from the user. */
printf("Enter %d integer values; press Enter after each.\n", MAX);
for (count = 0; count < MAX; count++)
scanf("%d", &arr[count]);
puts("Press a key to sort the values.");
getch();
/* Sort the array into ascending order. */
qsort(arr, MAX, sizeof(arr[0]), intcmp);
/* Display the sorted array. */
for (count = 0; count < MAX; count++)
printf("\narr[%d] = %d.", count, arr[count]);
puts("\nPress a key to continue.");
getch();
/* Enter a search key. */
printf("Enter a value to search for: ");
scanf("%d", &key);
/* Perform the search. */
ptr = (int *)bsearch(&key, arr, MAX, sizeof(arr[0]),intcmp);
if ( ptr != NULL )
printf("%d found at arr[%d].", key, (ptr - arr));
else
printf("%d not found.", key);
}
int intcmp(const void *v1, const void *v2)
{
return (*(int *)v1 - *(int *)v2);
}
|