Newsgroup: it.comp.lang.c++
Titolo: Mi date un consiglio?

Sono un tecnico elettronico! il mio quesito e quello che voglio imparare un
linguaggio di programmazione e avevo optato per il c! solo che nel informami
non ci sto capendo più niente, mi piacerebbe sapere che differenza ce tra il
c il c++ e il c#! premetto che io voglio programmare microprocontrolli tipo
z80, pic, St6 o st7 giusto per nominarne qualcuno! ora togliendo l'assembler
che non mi piace e ci ho litigato pesantemente (non ci capiamo molto)!!!
quale tra questi mi consigliate e perchè! qualè la loro reale differenza tra
di loro! vi ringrazio! e mi scuso se la domanda sicurmaente e stata già
fatta! ma outlook non mi fà vedere tutte le news nel girarmi le mail che
potevo leggere non ho trovato la mia risposta! mi scuso ancora!
Tenete conto che nel programmare quei giocattoli! dovrò anche creare una
piccola interfaccia tipo windows che possa essere visualizzata su un lcd
colorato, la parte HW non avrò dificoltà ma la parte SW non sò che
compilatore usare!
P.S. ultima domanda! ho scaricato anche 2 compilatori, Turbo c, e borland
5.5! avreste da consigliarmi qualche altro compilatore? vi ringrazio salve!

 5.5! avreste da consigliarmi qualche altro compilatore? vi ringrazio
salve!
I compilatori menzionati compilano codice per architetture x86, il secondo è
un compilatore C++.
Non so se ti saranno di qualche utilità per la programmazione dei
microcontrollori, sicuramente potrai esercitarti con la programmazione in C
o in C++ !
Come riferimento per il C c'è il libro di Kernighan & Ritchie Programmare in
C (The C programming Language), fondamentale, per il C++ c'è il libro di
Bjarne Stroustrup C++ Language.
ciao.

 potevo leggere non ho trovato la mia risposta! mi scuso ancora!
per questo puoi usare google.... (google->gruppi poi scegli il gruppo e
cerchi tutti i messaggi dalla preistoria ad ora).
Tommy

ok ora o le idee + chiare! cmq dopo una ricerca anche personale, ho trovato
altre info, tra le quali programmare i microcontrollori in c++ e possibile
dipende se trovi le librerie giuste! quindi penso che mi butto sul c++ che
cmq mi tornerà utile per crearmi anche programmi d'interfaccia con progetti
che ho in mente fatti con microprocessori! al massimo vi tartasserò di
domande! hehehe skerzi a parte vi ringrazio siete stati gentilissimi, vi
aggiornerò su i miei progressi sempre se ci saranno progressi! ciao a tutti
e grazie alla prossima!

 e grazie alla prossima!
Ciao,
Tommy

oooooook vaaaaaaaabeeeeene! ora ho deciso hai ragione al 1000% tanto devo
solo programmare vecchi microprocessori! opterò per il c! e poi ho già tante
risorce per quel lingiaggio! ultimissima cosa, se uso turbo c non e un
problema vero?!? anche perchè ho trovato solo quello e mi sembrava
abbastanza carino! un ultimissima domanda, per programmare i microprocessori
di quel tipo devo trovare delle librerie, vero? grazie ancora! e grazie per
la vostra attenzione!

 z80, pic, St6 o st7 giusto per nominarne qualcuno! 
Considerato il tuo obiettivo, ti consiglieri decisamente il C, per una 
serie di motivi, tra i quali:
- e' piu' facile imparare il C rispetto al C++ (il C++ e' _molto_ piu' 
esteso del C)
- il compilatore C++ fa molte cose in automatico e "di nascosto", 
invece, col C, cio' che scrivi ottieni, niente di piu' => hai piu' 
controllo sul codice, ottimizzazione, etc.
- il codice C ben scritto spesso e' tendenzialmente piu' snello del 
codice C++ 
- credo che un compilatore C con relative librerie standard si trovi su 
quasi tutte le piattaforme, ...un compilatore C++ _aderente allo 
standard_ _e_ con le librerie C++ standard e' molto piu' complesso e 
forse meno diffuso sulle varie piattaforme
Pero': per programmare _bene_ in C secondo me e' richiesta piu' 
"disciplina" rispetto al C++, perche' il C++ ha dei meccanismi che, 
gia' in fase di compilazione, ti avvertono di certi errori, che invece 
in C si scoprono in fase di esecuzione. Inoltre, anche a run-time, col 
C++ si hanno dei controlli piu' "severi" rispetto al C.
Se poi, dopo aver imparato bene il C, vorrai passare al C++, non avrai 
problemi, e non avrai comunque perso del tempo.
Il C (non C++) e' usato in molti software importanti e a basso livello 
(= vicini allo hardware), come device driver, kernel di GNU/Linux, etc.
(Se il tuo discorso invece fosse stato quello di programmare ad esempio 
applicativi con GUI sotto Windows, motori grafici, simulatori 
scientifici, etc. ...allora ti avrei consigliato per il C++.)
Ciao e buono studio
Dan

 wrote

guarda che per me potevi anche imparare il C++, anzi... ;-)
Ad ogni modo il turbo C non e' il massimo e poi sicuro che compili anche per
quei microprocessori?
Io l'ho sempre e solo usato per il mio PC di casa....
per programmare processori di quel tipo, piu' che librerie (che fanno sempre
comodo) hai bisogno di un compilatore il cui back-end produca codice target
per qui sistemi.
Tommy

 codice C++
Io direi che (in generale) il codice ben scritto è tendenzialmente più
efficiente del codice "mal scritto".
Direi così perché è possibile scrivere codice C++ con la stessa efficienza
di come potrebbe essere scritto e compilato in C, conoscendo a fondo il
linguaggio e come il compilatore si comporta e stando attenti ad alcune cose
(soprattutto i costruttori delle classi e gli oggetti temporanei tendono a
far perdere efficienza).
Per il resto, è chiaro che spesso nei microcontroller, un compilatore di C++
sarebbe fuori luogo e che quindi il C la fa da padrone (una volta si
programmavano in assembly).
Oltretutto il compilatore C++ non può fare affidamento sulla bravura del
programmatore e quindi la probabilità che accada quello che dici (programma
in C++ inefficiente) effettivamente sarebbe reale in un hardware con poca
memoria e potenza di calcolo limitata rispetto a quella dei personal
computer.
Tuttavia se molti programmatori C++ scrivono software inefficiente non è per
colpa del linguaggio, né per colpa dei compilatori.
Per il resto condivido le tue osservazioni.
ciao.

 [CUT]
Condivido in pieno cio' che hai scritto!
Ciao
Dan

la mia scelta rivolta al c e ormai definitiva anche perchè voi mi avete dato
molte conferme.
1. come compilatore scelgo il turbo c uno perchè lo conosco già e due perchè
da quello che sò mi crea il file che a me serve + importatne targato ASM con
il     quale posso carricarlo facilemente sul micro senza problemi il
programma da me creato, in linea di massima tutti i mocroprocessori leggono
quel file o meglio il suo contenuto senza problemi.
2. non ho scelto l'assembler perchè lo trovo molto macchinoso (per dirlo lo
usato) cmq molta gente lo usa ancora ma secondo il mio giudizio con scarso
profitto, rispetto a le vere potenzialite del micro.
3. X Tommy: cmq aveo già scelto in precedenza il c ma volevo solo una
confema che voi mi avete dato ;)
4. sempre da quello che mi sembra con poche modifiche del programma
originale posso utilizzarlo anche su altri micro oviamente sapendo i
registri giusti!
ok ora mi metto al lavoro se no qui non imaparo a utilizzare il c!!! grazie
a tutti per il vostro aiuto, appena combino qualcosa posterò i miei
risultati, spero che riesco almeno nell'itento di accendere e spegnere una
serie di led, e già un buon inizio! hehehe mamma ragazzi che lavoraccio!
ciao e grazie!

 ciao e grazie!
In questo sito è meglio che torni per parlare di C++, chiamandosi appunto
it.comp.lang.c++.
In bocca al lupo!

 differente dal x86?
non lo capisco nemmeno io....
gli avevo scritto:
"Ad ogni modo il turbo C non e' il massimo e poi sicuro
che compili anche per quei microprocessori?
Io l'ho sempre e solo usato per il mio PC di casa...."
magari esiste un back-end per altre architetture, ma non che io sappia.
Tommy

Mi sono spiegato male scusate, cmq dopo un minuciosa ricerca ho trovato
questo sito che mi smebrava interessante: 
http://sdcc.sourceforge.net/
 peso
che e sia un buon punto di partenza! thx

ok correzione dell'utimo momento su questo sito e spiegato meglio
http://www.jofi.it/fiser/index.html
ok ora basta che sto diventando un pň ot ciao e grazie!!!