Newsgroup: it.comp.lang.c++
Titolo: linguaggi

Scusate la mia ignoranza ma sono nuovo del mondo del PC.
Avrei però piacere che qualcuno mi spiegasse cosa sono e come funzionano i
vari linguaggi di programmazione.
Se la cosa è troppo lunga sono accette anche brevi introduzioni , mi basta
solo capire un poco.
Alessio
La mia E-MAIL : 
a.ma...@fi.flashnet.it

I calcolatori sono in grado di eseguire solo un numero limitato di
operazioni elementari; e' pero' possibile combinare le operazioni 
elementari per ottenere delle sequenze di arbitraria complessita'.
Ogni operazione elementare e' identificata da una serie di valori 
binari (composti solo da zeri e uni). Una sequenza di operazioni
compone un programma. 
Lo scenario che si presenta e' il seguente: da una parte c'e'
una persona che vorrebbe far fare qualcosa alla macchina, e nella
macchina c'e' un processore che non aspetta altro che qualcuno gli
dica cosa deve fare. Purtroppo i due soggetti usano due modi di
comunicare che sono del tutto incompatibili:
- i linguaggi naturali che si usano tra gli umani sono troppo vaghi
  ed imprecisi per essere compresi da una macchina
- i valori binari sono tanto chiari per un processore quanto sono 
  oscuri per una persona normale.
Il problema e' quindi come comunicare alla macchina quello che
vogliamo fare in modo efficiente; e' a questo scopo che sono stati 
inventati i linguaggi di programmazione, i quali sono dei formalismi per 
descrivere cosa si vuole fare ad un livello di dettaglio sufficiente 
ad evitare ogni ambiguita'. 
Prendiamo ad esempio una operazione banale come puo' essere il bere un
bicchier d'acqua. In linguaggio naturale si dice "bevi un bicchier d'acqua";
e' una frase banale, ma per essere compresa richiede la comprensione di
una serie di concetti (bicchiere, bere, acqua) ed un criterio per correlare
questi concetti; questo e' un lavoro che un cervello umano sa fare con
la massima naturalezza. Un cervello un po' meno evoluto, potrebbe aver
bisogno di una spiegazione piu' precisa, come :
"vuoi bere; prendi un bicchiere; prendi l'acqua; 
riempi il bicchiere; bevi"
ogni fase dell'operazione puo' venire ulteriormente dettagliata, ad es.
"prendi un bicchiere"=individua un bicchiere, avvicinati, allunga
il braccio, apri la mano, chiudila attorno al bicchiere, stringi, alza
il braccio.
e via dettagliando. Come si vede, la descrizione delle cose da 
fare diventa sempre piu' precisa, ma contemporaneamente si allontana 
dal modo con cui siamo abituati ad esprimere le nostre azioni.
Un linguaggio di programmazione e' composto da pochi vocaboli che
descrivono azioni elementari, e che possono essere composti in modo
da descrivere una azione in maniera molto lunga e noiosa ma priva di
ambiguita'.
Eliminate le ambiguita', e' possibile fare 'leggere'
le nostre istruzioni ad un particolare programma che sa tradurre i
nostri comandi nei corrispondenti codici macchina. Insomma, un
linguaggio di programmazione e' un  'dialetto' che sta a meta' tra 
il modo di comunicare umano e quello delle macchine.
Un linguaggio che si avvicina alla nostra natura si dice di 'alto livello',
uno che si avvicina di piu' alla natura della macchina si dice di 'basso
livello'.
Di linguaggi ne sono stati inventati a bizzeffe, ma quelli usati piu'
comunemente sono molto pochi (una decina?).
Passo la palla ad un altro volontario... :)
ciao
--
Marco Danti
remove NOSPAM from my address if you want to reply directly to me; sorry.
Email address intentionally wrong; remove the dash before replying