Aiuto sui linguaggi di programmazione

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Vlk
Linux 3.x
Linux 3.x
Messaggi: 671
Iscritto il: mer 9 feb 2005, 0:00

Aiuto sui linguaggi di programmazione

Messaggio da Vlk »

Quanti di voi programmano ed in che linguaggio? Ed a che livello lo sapete fare? Vorrei imparare, ovviamente partendo da zero, a programmare. Non importa la difficoltà del linguaggio, ma il fatto che il linguaggio con cui devo iniziare deve permettermi tramite lo studio ad arrivare anche a programmare PIC - a basso livello, utilizzando ad esempio l'Assembly o qualcosa di simile e che all'inizio mi permetta di fare quei programmini stupidi che danno però molta soddisfazione al principiante. Cosa mi consigliate per iniziare?

p.s. come si chiama il programma in cui vengono scritte le righe di codice sorgente? Sul Slack c'è qualche programma simile per C o C++?

Bart
Staff
Staff
Messaggi: 4249
Iscritto il: lun 9 ago 2004, 0:00
Località: Rimini

Re: Aiuto sui linguaggi di programmazione

Messaggio da Bart »

Vlk ha scritto:p.s. come si chiama il programma in cui vengono scritte le righe di codice sorgente? Sul Slack c'è qualche programma simile per C o C++?
L'editor intendi? Puoi usare kdevelop che è fenomenale.
Se vuoi imparare a programmare parti con il linguaggio C.
Te Useless che dici, ho consigliato bene? :lol:
Ciao :wink:

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Messaggio da useless »

io ti consiglio il C. a scendere a basso livello quanto vuoi non hai problemi (anche senza usare l'asm), a salire nemmeno, mantenendo comunque una discreta semplicità di implementazione.
il C++ è un linguaggio ad oggetti, quindi radicalmente diverso come mentalità, può essere che ti trovi meglio con questa, ma tieni presente che la programmazione ad oggetti è stata inventata x aumentare l'astrazione, scollegandosi dall'hardware. quindi scordati il basso livello.
se vuoi sviluppare interfacce grafiche, puoi sfruttare gtk in C e qt in C++. entrambi (gtk insieme eventualmente a glib) comunque ti offrono moooolte altre funzionalità oltre a quelle grafiche, e rimangono 100% portabili su altre piattaforme (windows, solaris, *bsd...).
ci sono altri linguaggi e altri "mezzilinguaggi", ma se hai intenzioni serie scegli uno dei 2 già citati.

quanto al programma che cerchi, di solito ci si riferisce come "ide", ossia "integrated development environment". i 2 + famosi e potenti su unix sono anjuta e kdevelop. il primo è basato su gtk e orientato al c, il secondo è parte di kde (quindi qt) e orientato al c++, ma entrambi possono essere utilizzati x entrambi i linguaggi (e molti altri). ad esempio io uso kdevelop x programmare in C.

Avatar utente
Firetux
Linux 4.x
Linux 4.x
Messaggi: 1465
Iscritto il: gio 10 giu 2004, 0:00
Località: Lecco
Contatta:

Messaggio da Firetux »

vai tranquillo con il C e con l'assembly inline 8)

Vlk
Linux 3.x
Linux 3.x
Messaggi: 671
Iscritto il: mer 9 feb 2005, 0:00

Messaggio da Vlk »

Grazie per il consiglio, ma come mio solito approfitto della vs disponibilità e vi bombardo di domande.
In effetti avevo pensato anche io al C o al C++. Solo che mi avevavano consigliato il Python, per cui non sapevo cosa fare. Me lo sconsigliate sto Pitone? E quali sono le principali differenze tra C e C++?
Un'altra cosa: se io scrivo il sorgente in C o C++ nell'editor Kdevelop e lo compilo in Linux, come faccio poi ad installare il programma? E posso installarlo anche in altre piattaforme, come ad esempio Windows, compilandolo magari con qualche editor per Windows? E testi? Quali sono i migliori? Grazie :o
Aggiunta: mica bisogna conoscere l'hardware del pc per programmare? Io lo conosco, ma ad un livello molto elementare e non vorrei trovarmi in difficoltà. Che ne dite?

Bart
Staff
Staff
Messaggi: 4249
Iscritto il: lun 9 ago 2004, 0:00
Località: Rimini

Messaggio da Bart »

Python lo conosco pochissimo e non posso fare commenti su di esso.
Quando crei un programma in C, tu per farlo funzionare devi compilarlo. Durante la compilazione, se non ci sono errori, ti verrà creato un file eseguibile: il programma vero e proprio. Per farlo girare ti basterà lanciare l'eseguibile.
comunque ti consiglio di prendere un buon libro di C e di partire con quello. Lì troverai risposte a tutte le tue domande, capirai cosa significa programmare e passerai interi pomeriggi (e a volte serate) a battere la testa sui puntatori doppi. :lol:

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Messaggio da useless »

forse hai le idee un po' confuse 8). voler programmare a basso livello senza conoscere l'hardware è come voler costruire una macchina senza sapere niente di meccanica ;). x programmare "normalmente" la conoscenza dell'hardware è relativa, ci sono i driver che ti permettono di usare tutte le periferiche in modo alquanto generico. programmare a basso livello in sostanza vuol dire scrivere un driver.
la differenza tra c e c++ è, come dicevo, che il secondo è un linguaggio orientato agli oggetti, mentre il primo no. spiegarti questa differenza non è banale, così come non lo è imparare a programmare in nessuno dei 2.
se vuoi imparare il c c'è la bibbia: "il linguaggio C", di kernighan/ritchie, che però forse non è il meglio se non hai idea di cosa sia la programmazione. quanto al c++, non me ne intendo assolutamente, ma consiglierei "thinking in c++", che forse puoi anche scaricare gratuitamente.

se usi ansi C il tuo codice compilerà praticamente dappertutto. ad esempio in windows lo puoi aprire col visual studio o qualunque editor e non dovresti avere problemi. installare sotto linux non è necessario x programmi di piccole dimensioni, basta che metti l'eseguibile in /usr/local/bin (ad esempio), ma sia anjuta che kdevelop ti aiutano a gestire i makefile, implementando anche un "make install" che fa tutto da sé, qualora ne avessi bisogno.

insomma, imparare a programmare non è x niente banale, tantomeno da soli, ma mattoncino dopo mattoncino si può arrivare là dove nessun uomo è mai giunto prima 8).

Vlk
Linux 3.x
Linux 3.x
Messaggi: 671
Iscritto il: mer 9 feb 2005, 0:00

Messaggio da Vlk »

useless ha scritto:forse hai le idee un po' confuse 8). voler programmare a basso livello senza conoscere l'hardware è come voler costruire una macchina senza sapere niente di meccanica ;). x programmare "normalmente" la conoscenza dell'hardware è relativa, ci sono i driver che ti permettono di usare tutte le periferiche in modo alquanto generico. programmare a basso livello in sostanza vuol dire scrivere un driver.
In realtà ho le idee ben confuse, questo lo si sapeva. Il fatto è che vorrei riprendere a livello amatoriale ed hobbystico, ma comunque non superficiale, gli studi di ing. elettronica che ho abbandonato l'anno scorso. Il C mi servirebbe per capire cosa significhi programmare (da noi in facoltà si usava il C++) per poi provare a programmare in Assembly i PIC (mooolto in futuro). Per ora però conosco poco a livello hardware sia del pc e sia di PIC, ma appunto dovrei studiare anche questo parallelamente al C. Nella fase iniziale, il C mi servirebbe solo per fare pratica. Ora se mi dici che può svolgere questo ruolo senza una conoscenza approfondita dell'hardware allora mi impegno, altrimenti, se me lo sconsigli perchè bisogna capire bene l'hw di un pc, allora lo lascio perdere. Grazie, useless (di nome, ma non di fatto).
p.s. il libro che mi consigliavi è questo? http://hpe.pearsoned.it/site/show.php?c ... 887192200x

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Messaggio da useless »

sì, il libro è quello.

se sei iscritto a ing eln, allora vai a seguire dei corsi in programmazione in facoltà, sicuramente ti saranno molto utili, almeno a darti le basi, poi sono convinto che uno debba appassionarsi e sbattersi molto da solo x andare avanti, ma le basi si fanno prima ad imparare con una guida.

un pic è un controllore di interrupt? xké ti serve proprio fare questo? la programmazione ad oggetti va x la maggiore al momento, forse vale la pena di proseguire sulla strada del c++.
se comunque vuoi darti al c, un tempo scrissi una piccola guida alla programmazione, la trovi da qualche parte su http://www.nyft.org.

Vlk
Linux 3.x
Linux 3.x
Messaggi: 671
Iscritto il: mer 9 feb 2005, 0:00

Messaggio da Vlk »

useless ha scritto:sì, il libro è quello.

se sei iscritto a ing eln, allora vai a seguire dei corsi in programmazione in facoltà, sicuramente ti saranno molto utili, almeno a darti le basi, poi sono convinto che uno debba appassionarsi e sbattersi molto da solo x andare avanti, ma le basi si fanno prima ad imparare con una guida.

un pic è un controllore di interrupt? xké ti serve proprio fare questo? la programmazione ad oggetti va x la maggiore al momento, forse vale la pena di proseguire sulla strada del c++.
se comunque vuoi darti al c, un tempo scrissi una piccola guida alla programmazione, la trovi da qualche parte su http://www.nyft.org.
Ad ing.elettronica ero iscritto :(
Mi serve sapere programmare PIC perchè ormai sono utilizzati in tutti i circuiti e, che io sappia, sono programmati spesso in Assembly. Ma, ripeto, per ora credo che imparare l'Assembly sia assurdo e soprattutto dia poche soddisfazioni, nel senso che credo sia più facile scriversi un piccolo programmino in C che in Assembly. Il C lo intendo usare inizialmente in questo modo, poi chissà (proprio ora un ex collega mi ha detto che si possono programmare anche in C, ma con risultati inferiori). Vado o cambio? La accendiamo? :D

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Messaggio da useless »

vai tranquillo con il c. alla fin fine non è che ci sia molto da programmare in un pic. sono gli interrupt handler che devono essere molto snelli, ma credo che te la puoi cavare x gran parte in c. comunque un po' di asm non fa male, anzi, ti insegna a capire meglio alcuni aspetti del c (qualcuno ha detto "puntatori"? :D).

Sickk
Linux 3.x
Linux 3.x
Messaggi: 678
Iscritto il: gio 27 nov 2003, 0:00
Contatta:

Messaggio da Sickk »

ahaha grande "inutile" ! comunque C tutta la vita e poi il c t apre anche la strada nella programmazione sotto linux

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

caro Vlk,
se posso condigliarti un libro su C che non sia così ostico come quello di Kerningham e Ritchie, prendererei "C didattica e programmazione", che letteralmente ti insegna a programmare, portandoti poi ad un ottimo livello.

Una presentazione di questo libro é:

http://www.librinformatica.it/novita/li ... 922190.htm

Ciao!
Paola

Avatar utente
zzt
Linux 2.x
Linux 2.x
Messaggi: 249
Iscritto il: lun 7 mar 2005, 0:00

Messaggio da zzt »

Dio benedica la "Flight"...
(Questo lo possono capire pochissimi... eletti) :wink:

Avatar utente
marco79
Linux 2.x
Linux 2.x
Messaggi: 451
Iscritto il: gio 14 ott 2004, 0:00
Località: Como
Contatta:

Messaggio da marco79 »

Be nn so se hai fatto esami di elettronica ma sapere le basi di logica combinatoria e sequenzialo comunque i circuit base deocder,ecc.. secondo me ti aiuterebbe molto nel basso livello...

Rispondi