Newsgroup: it.comp.lang.c++
Titolo: C++ e Standard - lungo

Ciao a tutti.
In questi giorni ho intavolato alcune discussioni sul C++ e le
risposte che ho ottenuto mi hanno lasciato veramente perplesso.
La prima discussione l'ho avuta sul NG it.comp.os.dibattiti.
Quoto la sua tesi (scusate se è specificatamente riferita al
linguaggio C, ma il discorso è generico e si applica anche al C++, e
la mia seconda discussione è propriamente sul C++):
<quote>
Ti ripeto, quello che comunqmente si chiama "linguaggio C", non e'
propriamente un linguaggio. Un linguaggio non può esimersi dal
definire la semantica ed il vocabolario. Il C non lo fa. L'ANSI C lo
fa, e  l'unica cosa che l'ANSI C ha in comune con il Nemesis C, con
L'Amiga C e con qualsiasi altro C e' proprio e solo la parte
riguardante la grammatica e la sintassi (con l'eccezione del K&R C).
Per pura chiarezza ti ricordo che vocabolario e semantica sono
definiti  dalle funzioni dell'OS e dalla sottostante API.
</quote>
Quindi secondo lui non esistono un linguaggio C od un linguaggio
C++, ma i linguaggi ANSI C ed ISO C++, Windows C e Windows C++, Mac
C e Mac C++, ecc...
Io invece sostengo che il linguaggio sia uno ed uno solo (l'ANSI C
nel caso del C e l'ISO C++ nel caso del C++), e che le funzioni del
sistema operativo non c'entrino nulla con il linguaggio (tanto più
che sono utilizzabili da linguaggi diversi) e che eventuali
differenze (tipo WinMain di Windows) siano estensioni proprietarie
al linguaggio.
La seconda discussione l'ho invece avuta con l'autore di uno dei
tanti tutorial C++ che si trovano per la rete. Dopo averne letto
solo poche righe gli ho scritto per fargli notare che il suo
tutorial conteneva degli errori perché lo standard C++ richede che
venga esplicitato il tipo di ritorno (int) della funzione main (da
lui scritta con il parametro implicito) e che il file iostream.h non
era un file di inclusione standard e che pertanto la direttiva
giusta era #include <iostream>.
Questa è stata la sua risposta:
<quote>
Mi riprometto di chiarirle un attimino le idee (davvero un po'
confuse!)
circa il concetto di "Standard", non appena avro' cinque minuti
disponibili
(cosa davvero ardua, purtroppo) per scriverle con piu' calma.
In ogni caso, se nel frattempo avesse altri dubbi o altre lacune sul
C++ non
esiti a contattarmi.
</quote>
A questo punto chiedo a voi: è possibile che io non abbia capito
nulla di linguaggi di programmazione e di standard e che quindi
debba darmi all'ippica?
Ciao.
--
BSD is for UNIX-lovers -- linux is for Windows-haters.

 </quote>
Se per "parametro implicito" intendi dire che lui aveva scritto
main()
e tu
int main()
allora hai ragione tu s entrambi i punti e le idee confuse ce le ha lui.
Invitalo a discuterne sul NG :-)
Altrimenti...
"Valori insufficienti per risposta significativa" (Asimov :-)
--
Gerolamo

debba darmi all'ippica?
Non e' colpa tua.  
Sono entrambi in errore.
-- 
Andrea Laforgia - walkietalkie(at)
libero.it
"Meglio cieco che negro" (Stevie Wonder)

debba darmi all'ippica?
Se ti piace cavalcare... eh,eh,eh!!
Il Ghenio
---------
// TODO: Place your ass here

 debba darmi all'ippica?
L'unica cosa che forse non hai capito è come eseguire l'unsubscribe di
it.comp.os.dibattiti
--
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

 non è che una tupla. E lasciarlo li a chiedersi che ca**o è una tupla.
ROTFL... ci sto discutendo proprio ora su it.comp.lang.c.
Pare che non voglia convincersi proprio.
Di fronte a certa ottusita' non c'e' altro da fare che 
lasciar perdere. Sfodera vocabolari e semantiche, 
riempiendosi la bocca con la teoria dei linguaggi che, 
a suo avviso, nessuno di noi conosce.
ARIROTFL ;)
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 nel caso del C e l'ISO C++ nel caso del C++), e che le funzioni del
Non vedo su che basi puoi rifiutarti di definire "linguaggi" le varie
stranezze come il "Microsoft Managed C++".  Certo "C++" identifica UN
linguaggio (quello definito dallo standard), ma di linguaggi al mondo
ce ne sono altri 100,000, e uno di essi e` "MSMGCP" o come preferisci
identificarlo (basta NON identificarlo come "C++", quello si` che
sarebbe un errore).
Se quel che stai cercando di trarre e` una distinzione fra "un
linguaggio" e "un dialetto di un linguaggio", mi sembra capziosa,
come quelli che cercano di negare lo status di "linguaggio" al
Sardo o altri linguaggi regionali volendoli "solo dialetti".  Da
un punto di vista _linguistico_ si tratta di linguaggi, cercare
di chiamarli in altro modo e` faccenda invece solo "politica".
Alex

 di chiamarli in altro modo e` faccenda invece solo "politica".
Heila. Il Sardo non è un linguaggio. Va bene che in un NG tecnico come
questo gli inglesismi sono come la giacca al casinò. Ma usare il termine
"linguaggio" in questa accezione è un inglesismo parecchio scorretto. Il
Sardo è una "lingua". Che poi le lingue siano tutte forme di linguaggio
questo è un altro discorso.
Da un punto di vista _linguistico_ in questo caso si dice _lingue_ e non
_linguaggi_.


 Sardo è una "lingua". Che poi le lingue siano tutte forme di linguaggio
Hai ragione: mi scuso dell'imprecisione.
Alex

 "un linguaggio" e "un dialetto di un linguaggio"...
[cut]
No, no, cercavo appunto di capire la questione di cui sopra.


 Sarei curioso di sapere chi e' ! :)
Avendo riportato integralmente una conversazione privata preferisco
non rivelare il nome dell'autore.


 Tra l'altro hai le idee molto più chiare tu di lui.
Ne ero convinto anche io, ma questa risposta mi aveva fatto venire
il dubbio che lo standard avesse una importanza minore di quella che
gli avevo sempre dato.


 semplice deve essere imparato correttamente.
Anche io. Quando mi capita di leggere errori simili scrivo sempre un
e-mail all'autore per fargli (educatamente) notare i suoi errori.
Molti mi hanno risposto dimostrando la loro palese ignoranza del
linguaggio, altri dicendo che non è importante insegnare cose giuste
(sembra assurdo ma mi è stato pure risposto questo), ma questa
non-risposta mi aveva sollevato un vero dubbio, ovvero che io
sopravvalutassi l'importanza dello standard.


 confuse ce le ha lui.
Sul fatto che lo standard preveda questo non avevo il minimo dubbio,
il dubbio era sul non aver capito la reale importanza dell standard,
ed averla sopravvalutata.


 dell'API di Windows (come sosteneva invece il mio interlocutore).
Il programma suddetto è un programma scritto in C/C++. Puoi persino dire
che è standard.
Salvo che il programma usa funzioni e nomi di tipi che non sono definiti
nello standard.
Se sono definiti da te, da MS o da una libreria di terze parti non
cambia.
Ovviamente il fatto che il programma segua lo standard non significa che
sia portabile. Se i tipi e le funzioni non definite dallo standard le
definisci tu, allora sarebbe anche portabile. Se le definisce qualcun
altro ... è portabile tanto quanto la libreria in cui sono definite.
Idem per la discussione della cosa in questo NG. Puoi parlare di quel
programma. Basta che l'argomento sia del tutto neutrale alla definizione
di HFILE e di OpenFile e al loro uso specifico.
--
Andrea Ferro
IHHC - Member of HT-Group    DVD Authoring operator    Fan of I.Asimov
Brainbench C++ Master:
http://www.brainbench.com/transcript.jsp?pid=2522556

 gli avevo sempre dato.
Credo sia più sostenibile un ridimensionamento dell'importanza del suo
tutorial piuttosto che quello dello standard!
