Newsgroup: it.comp.lang.c++
Titolo: C/C++ ? Arabo?

Ciao a tutti forse nel subject ho un po' esagerato ;-) ma da molto tempo
cerco di avvicinarmi al C/C++ venendo dal Basic.
Prima di passare a cose complicate , e quindi all'utilizzo di Visual C++
vorrei prima imparare le basi del c/c++, quindi vorrei sapere se on-line si
puo' trovare un buon corso o tutorial freeware.
Premetto che questo corso dovrebbe essere molto semplice e chiaro, adatto a
chi di C/C++ non sa proprio niente.
Per il momento utilizzo djggp.
Ciao e grazie.
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
  Vincenzo Lopez
e-mail:                                       ICQ UIN :  8048481
 
spi...@ba.dada.it
 
vincenz...@usa.net
          Recensore di:
Indirizzo Web:                                  
http://www.shopitaly.net/
 
http://www.pegacity.it/informatica/inlinea
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-

Ciao a tutti forse nel subject ho un po' esagerato ;-)
Il Corano e' scritto in Chiara Lingua Araba, ed ogni giorno 1 miliardo di
persone comunica e si esprime in questo sottile e squisito linguaggio e nei
suoi molteplici dialetti, e questo ormai da più di 1000 anni.
Il c++, come tutti gli altri linguaggi, nasce dall'esigenza di dialogare con
l'elaboratore ad un livello che faciliti l'ideazione di paradigmi che
permettano la risoluzione dei problemi.
Conosci Civilization, di Sid Meier?
E' un gioco in cui puoi avere al massimo 6 avversari.
Se tu volessi aumentare il numero massimo di avversari a 9, dovresti
innanzitutto possedere il codice, modificare poi buona parte del codice,
centinaia cioe' se non migliaia di righe, sottoporre quindi il risultato a
debug ed infine otterresti forse la risoluzione del tuo problema.
Non sarebbe una gran cosa un linguaggio di programmazione che ti permettesse
di fare la stessa cosa così:
-Aumenta il numero di avversari a 10 in Civilization
e con il compilatore che si preoccupasse autonomamente del riconoscimento
del significato semantico, lessico e sintattico della frase?
O svegliarti al mattino e dire:
-Voglio ascoltare "La vie en rose" cantata da Farinelli e musicata da Mozart
e dopo pochi millisecondi iniziare ad ascoltare un brano filologicamente
corretto?
Quante righe di codice dovresti scrivere e quante conoscenze specialistiche
dovresti avere  per ottenere un programma decente per fare un'operazione del
genere?
Disprezzare le lingue umane per la loro complessita' e' sbagliato, dacche'
e' proprio questa caratteristica che le rende capaci di esprimere concetti
complicatissimi e profondissimi in pochi istanti.
Detto questo i linguaggi di programmazione odierni si basano su un insieme
ristretto di parole chiave attraverso cui si definiscono secondo precise
scelte progettuali tutti gli elementi che alla fine portano alla creazione
del dizionario del linguaggio.
Molti gruppi di ricercatori iniziato concretamente a lavorare intorno alla
possibiltà di creare un linguaggio di programmazione isomorfo ad una lingua
corrente, ma vi e' un insieme vastissimo di problemi da risolvere.
Iskandar ibn Nasser


Se vieni dal basic, ti consiglio di provare per un po' il
linguaggio C. Visto che il C++ ha la sintassi che e' praticamente
identica a quella del C, meglio perdere un po' di tempo con
quest'ultimo. 
In questo modo imparerai le funzioni, le strutture di
base, i tipi di dato ecc. pur rimandendo in una modalita' di
programmazione in fondo non molto diversa da quella che puoi fare
in Basic, cioe' di tipo procedurale.
Quando ti sentirai a tuo agio con il linguaggio C, potrai leggere
qualcosa sulla programmazione ad oggetti in generale e sul
linguaggio C++. Il C++ si differenzia poco dal C per la sintassi,
ma e' completamente diverso per la logica di programmazione, che
e' appunto ad oggetti. Questo e' un salto notevole e, inutile
mentire, richiede un certo tempo ed un certo sforzo.
Pero' sicuramente il gioco vale la candela.
 
Vinicio Coletti - 
vcol...@webcom.com
 - 
http://www.webcom.com/vcoletti
President of the First International Collectivist Association
- "hey! hands off my girl!" -
PLEASE DO NOT USE 
v.co...@iol.it
 ANY MORE

Iskandar ibn Nasser
Non credo che spiros volesse offendere la lingua araba, o le
lingue umane in generale, dicendo che per lui il C++ "e' arabo".
Questo e' un modo di dire molto comune in Italia e non e' per
niente offensivo. Per noi l'arabo e' una lingua "difficile"
perche' scritta in un'alfabeto diverso e con fonetica non certo
simile alla nostra, per cui questa espressione si usa
semplicemente per dire che e' una cosa "difficile".
Ci sono altre lingue molto diverse dall'italiano, ad esempio il
cinese, ed infatti a volte di fronte ad una scrittura difficile
da capire si dice che "sembra cinese", senza che cio' implichi
offesa o mancanza di rispetto per i cinesi.
Il tuo messaggio e' comunque molto interessante, a proposito
della complessita' delle lingue umane, ma purtroppo temo che
il progetto di un linguaggio di programmazione isomorfo ad una
lingua umana sia destinato a fallire.
Il problema e' che le lingua umane sono "ambigue". Ogni parola o
frase ha molti significati e quello "giusto" dipende da una serie
di informazioni accessorie dipendenti dal contesto: chi dice la
frase, quando la dice, in che luogo, facendo quale gesto, dopo
quale altra frase o azione, con che tono di voce, ecc.
In pratica per programmare un computer "in italiano" o "in
arabo", dovremmo fare in modo che esso possa conoscere e gestire
tutte queste informazioni accessorie.
Inoltre il computer dovrebbe "conoscere" tutta una serie di
informazioni basilari su come e' fatto il mondo, simili alle
informazioni in nostro possesso.
Esempio banale: il computer legge la frase, forse poetica, "i
tuoi occhi color del mare". Per dare un senso pieno a questa
frase il computer dovrebbe sapere gia' che il mare e' di colore
blu.
In definitiva, ogni linguaggio si addice ad un certo
"ascoltatore". I computer di oggi sanno solo come fare alcune
centinaia di operazioni elementari su simboli e numeri e quindi
sono programmati con linguaggi che si riferiscono a queste
entita', anche se, per nostra convenienza, usiamo una sintassi
vicina alla logica umana.
Quando avremo computer basati su reti neurali, in grado di
apprendere dall'esperienza, di accumulare informazioni, di 
avere una "idea del mondo", potremo programmarli con il 
nostro linguaggio umano, senza ambiguita' (o quasi).
O meglio, piu' che programmarli, dovremo allora EDUCARLI.
Viste le tecnologie in sviluppo, cio' potrebbe essere persino
dietro l'angolo, o comunque non troppo distante nel tempo.
Vinicio Coletti
p.s. per cambiare il numero di giocatori massimo in un gioco
per computer, basta che il programmatore sia stato saggio ed
abbia previsto una variabile o una define per definire un
simbolo, da usare al posto del numero giocatori in tutti i luoghi
del programma in cui cio' serve. Basta poi cambiare il valore
corrispondente al simbolo, all'inizio del programma, e
ricompilare. Cio' fa parte della normale pratica di ogni
programmatore... e non e' possibile farlo automaticamente,
a meno che il programma non lo abbia scritto un robot a
tecnologia neurale :)
