PDA

View Full Version : Iniziare a programmare con C++


Matt82
17-05-2005, 18:14
Ciao, premetto che conosco abbastanza bene C, devo iniziare a programmare in C++ per la tesi. Ci sono molte differenze tra i due linguaggi? L'università mette a disposizione Visual studio .NET 2003 con licenza MSDNAA, può servirmi per i miei scopi?
Grazie, ciao
Matteo

cionci
18-05-2005, 01:25
Certo...è un ottimo ambiente...
Se lo puoi prendere a buon prezzo non fartelo scappare...

Se vuoi risparmiare ci sono altri IDE molto interessanti. Ad esempio questo: www.codeblocks.org

mjordan
18-05-2005, 05:46
Ciao, premetto che conosco abbastanza bene C, devo iniziare a programmare in C++ per la tesi. Ci sono molte differenze tra i due linguaggi? L'università mette a disposizione Visual studio .NET 2003 con licenza MSDNAA, può servirmi per i miei scopi?
Grazie, ciao
Matteo

Sebbene C++ come nome e' inteso come C = C + 1 dalla sintassi originale C, dovrebbe essere una variante di C "a oggetti", dove appunto il "+1" starebbe a indicare l'aggiunta dell'object orientation. Con gli ultimi standard pero' questo non e' del tutto vero. Puoi sempre scrivere codice C++ utilizzando gli insiemi comuni a C e mantenendo solo questo insieme, ma non e' una buona pratica di programmazione, anzi, ti fa abbastanza "ignorante". Sebbene MOLTO del C sia utilizzabile sotto C++ senza differenze, esistono delle cose che sono valide esclusivamente in C e cose che sono valide esclusivamente in C++ . L'OO e' un campo abbastanza vasto e come tale si riflette nelle differenze sul C++. In definitiva, sei vuoi scrivere del buon codice C++ che valga la pena essere chiamato C++, a parte le basi comuni, dovrai imparare un nuovo linguaggio, le cui novita', tuttavia, rimangono molto fedeli come feeling alla sintassi a cui sei gia' abituato. Comunque C++ e' un linguaggio abbastanza ricco e ha il vantaggio (si oggi e' un vantaggio) di non essere un OO puro (quindi sei tu che decidi quando usare gli oggetti e quando no), a differenza di Java che porta l'object orientation a livelli insani, a volte esagerati. Inizia da subito, impostando una mentalita' "The C++ Way" che e' leggermente diversa dalla mentalita' tradizionale C.
Per quanto riguarda Visual C++, se possa assolvere ai tuoi scopi o no, bhe', non hai citato gli scopi. :D A meno che dover fare una "tesi di laurea" sia uno scopo.

EDIT: In ogni caso, scopi o non scopi, Visual C++ nella tua posizione te lo sconsiglio vivamente. Quella licenza e' valida finche sei studente per una durata di 1 anno dall'attivazione. Ma visto che devi discutere una tesi di laurea e quindi presto abbandonerai lo status di studente, ti consiglio allora di tenerti quella moneta nel portafogli per una bella festa a base di alcool :ubriachi: e sesso e nel frattempo usare l'IDE che ti ha consigliato cionci. Anche perche', nonostante Microsoft dica che sia a prezzi contenuti, sono sempre bei soldi per qualcuno che non ne trae profitto e, per come la vedo io, gli studenti questa roba la dovrebbero avere gratis. Del resto sono loro che devono convincermi a usare i loro prodotti un giorno. Oracle da agli studenti il loro database di classe enterprise gratuitamente per scopi non commerciali, Microsoft mi deve far pagare pure un IDE. :rolleyes:

NA01
18-05-2005, 07:12
Anche perche', nonostante Microsoft dica che sia a prezzi contenuti, sono sempre bei soldi per qualcuno che non ne trae profitto e, per come la vedo io, gli studenti questa roba la dovrebbero avere gratis. Del resto sono loro che devono convincermi a usare i loro prodotti un giorno. Oracle da agli studenti il loro database di classe enterprise gratuitamente per scopi non commerciali, Microsoft mi deve far pagare pure un IDE. :rolleyes:

lo danno gratuitamente anche loro :eek:
o meglio: l'università paga la licenza e poi la può dare a tutti gli studenti.
noi quest'anno abbiamo finito i fondi e microsoft italia è stata così gentile da fornirci password personali di accesso per scaricare tutti i loro software in modo del tutto gratuito (tutto tranne office a quanto ho visto)


ciao

mjordan
18-05-2005, 07:35
lo danno gratuitamente anche loro :eek:
o meglio: l'università paga la licenza e poi la può dare a tutti gli studenti.
noi quest'anno abbiamo finito i fondi e microsoft italia è stata così gentile da fornirci password personali di accesso per scaricare tutti i loro software in modo del tutto gratuito (tutto tranne office a quanto ho visto)


ciao

Sempre soldi vostri sono. :D Poi ci lamentiamo che alzano le tasse universitarie. :p

71104
18-05-2005, 13:01
lo danno gratuitamente anche loro :eek:
o meglio: l'università paga la licenza e poi la può dare a tutti gli studenti.
noi quest'anno abbiamo finito i fondi e microsoft italia è stata così gentile da fornirci password personali di accesso per scaricare tutti i loro software in modo del tutto gratuito (tutto tranne office a quanto ho visto)
gentile? io non ci vedo gentilezza... :asd:
pubblicità casomai :p

mjordan
18-05-2005, 16:53
gentile? io non ci vedo gentilezza... :asd:
pubblicità casomai :p

O forse paura che al ristabilirsi dei fondi non venga rinnovato di nuovo il contratto? :asd:
Sinceramente una mossa cosi "generosa" da Microsoft non me la sarei mai aspettata, sembra quasi vi stiano mendicando un rinnovo al dipartimento.
E poi scusa, perche' allora noi no? Che siamo figli di p*****a? :asd:

O tutti o nessuno, eh! :asd:

sirus
18-05-2005, 17:54
per cominciare DevCpp oppure MinGW DevStudio ;) tutti e due free :) (bella scelta quella del C++)

OT
sapete se al Poli di Milano danno le licenze dei software MS ??? :mbe:
alle superiori ci hanno dato Windows XP Professional :sofico:

Matt82
18-05-2005, 18:10
per cominciare DevCpp oppure MinGW DevStudio ;) tutti e due free :) (bella scelta quella del C++)

OT
sapete se al Poli di Milano danno le licenze dei software MS ??? :mbe:
alle superiori ci hanno dato Windows XP Professional :sofico:

Si, al politecnico tutti gli studenti della V facoltà (Tlc, informatica, elettronica) hanno accesso alle licenza MSDNAA. Proprio per questo motivo ho chiesto se Visual studio .NET 2003 andava bene per iniziare con il c++... come studente ho la licenza "gratuita". Riguardo agli scopi per cui dovrei usarlo, ancora non so di preciso perchè nn ho ancora il titolo della tesi, so che mi potrebbe capitare di dover fare delle variazioni al codice di un simulatore di reti proprietario.

sirus
18-05-2005, 18:27
Si, al politecnico tutti gli studenti della V facoltà (Tlc, informatica, elettronica) hanno accesso alle licenza MSDNAA. Proprio per questo motivo ho chiesto se Visual studio .NET 2003 andava bene per iniziare con il c++... come studente ho la licenza "gratuita". Riguardo agli scopi per cui dovrei usarlo, ancora non so di preciso perchè nn ho ancora il titolo della tesi, so che mi potrebbe capitare di dover fare delle variazioni al codice di un simulatore di reti proprietario.
per il C++ c'è poca roba superiore al VC.net 2003 ;) però se il progetto che devi modificare è un vecchio progetto di VC6 potresti avere qualche problema ad adattarlo...
tuttavia io ritengo il VC.net 2003 il milgiore :) di quello ho comprato la licenza studente...del VC6 :fiufiu: il babbo ha preso quello della licenza MSDN della sua ditta :eh:

alesnoce
20-05-2005, 11:30
Ciao a tutti,

anch'io per la tesi devo iniziare a programmare in c++, ed ero intenzionato ad usare come IDE Eclipse, che dispone di un plugin per questo linguaggio.

Qualcuno di voi lo ha mai utilizzato?

Se sì, mi può dire come si trova?

Grazie in anticipo.

alesnoce
20-05-2005, 12:10
Se vuoi risparmiare ci sono altri IDE molto interessanti. Ad esempio questo: www.codeblocks.org
Queto IDE ha opzioni di compilazione per i vari os?

Non avendo direttive sulla scelta del linguaggio ho scelto c++, pur non conoscendolo, perché mi piace il c (lo so, non è OO e quindi è diverso) e perché la portabilità del java è spesso presunta, però mi piacerebbe poter compilare sia per win che per GNU/linux.

cionci
20-05-2005, 17:17
No...questo compila solo per Windows...al massimo ti compila per Windows a 64 bit ;)

Questo è solo un IDE...il compilatore che usa è un porting del gcc...quindi in teoria mantenendo lo stesso Makefile potresti compilalrlo anche su Linux... Ovviamente dovresti stare attento a come programmi... Ad esempio se usi le wxWidgets potresti usare la stessa interfaccia grafica sia su Windows che su Linux...

mjordan
21-05-2005, 02:15
Ciao a tutti,

anch'io per la tesi devo iniziare a programmare in c++, ed ero intenzionato ad usare come IDE Eclipse, che dispone di un plugin per questo linguaggio.

Qualcuno di voi lo ha mai utilizzato?

Se sì, mi può dire come si trova?

Grazie in anticipo.

L'ho provato io, Eclipse 3.0.1 + CDT.
Devo dire una cosa. Benche' CDT attualmente non sia altro che un mero adattamento di Eclipse a C/C++ mediante l'integrazione di GNU Make e GCC, si ottiene un'ottimo feelink goc questo IDE. A me personalmente piace molto, soprattutto per quanto riguarda la configurabilita' dell'editor in se (indentazione, colorazione, ecc.)

Ma c'e' di piu'. L'Intel C++ Compiler 8.1 (che puoi scaricare gratuitamente per scopi non commerciali) ha un plugin per Eclipse incluso per interfacciarsi con Eclipse. Sebbene Eclipse sia prevalentemente Java (e per Java ancora un poco immaturo rispetto a Netbeans) credo che prima o poi possa diventare uno degli ambienti piu' versatili di tutti i tempi.
Occhio che Fedora Core 4 Linux includera una versione di Eclipse compilata nativamente con il compilatore gcj (GNU Compiler for Java). Questo dovrebbe regalargli un incremento di prestazioni notevolissimo.

CDT nello stato in cui l'ho usato io ha un target diretto verso Linux quindi per Windows ancora niente. Se ti interessa Eclipse per C/C++ sia sotto Linux che Windows allora e' meglio usare il plugin incluso con l'Intel C++ Compiler 8.1 ...

blackknight
22-05-2005, 20:54
Mi date il link dove posso scaricare il compilatore intel??
Per quanto riguarda Eclipse io lo uso per il java e lo trovo ottimo...considerate che è un regalo dell'IBM :D

mjordan
23-05-2005, 04:52
Mi date il link dove posso scaricare il compilatore intel??
Per quanto riguarda Eclipse io lo uso per il java e lo trovo ottimo...considerate che è un regalo dell'IBM :D

Mmmm... Non penso sia disponibile per Amiga... :sofico:
Stronzate a parte, ecco il link:
http://www.intel.com/software/products/compilers/

Devi registrarti, rispondere a delle domande e richiedere la versione trial.
La trial non scade, e' comunque il compilatore completo per uso non commerciale (quindi gratuito). La versione Linux sono circa 128 MB di download.

alesnoce
23-05-2005, 09:36
Grazie cionci e mjordan,

non vedo l'ora di aver buttato giù uno straccio di progetto (ho la brutta impressione che mi ci vorrà un po' :( )per iniziare a scrivere in c++.

Credo che utilizzerò Eclipse perché nei laboratori della facoltà è già installato, però a questo punto vi faccio un'altra domanda:
per creare un'interfaccia grafica basta Eclipse oppure mi devo rivolgere a tool quali gtk+ o QT (per il quale tra l'altro ho trovato un manuale liberamente scaricabile)?

blackknight
23-05-2005, 11:33
Mmmm... Non penso sia disponibile per Amiga... :sofico:
Stronzate a parte, ecco il link:
http://www.intel.com/software/products/compilers/

Devi registrarti, rispondere a delle domande e richiedere la versione trial.
La trial non scade, e' comunque il compilatore completo per uso non commerciale (quindi gratuito). La versione Linux sono circa 128 MB di download.

Come non c'è per amiga??? :D :D :D

Grazie del link lo provo subito!!

mjordan
23-05-2005, 17:30
Grazie cionci e mjordan,

non vedo l'ora di aver buttato giù uno straccio di progetto (ho la brutta impressione che mi ci vorrà un po' :( )per iniziare a scrivere in c++.

Credo che utilizzerò Eclipse perché nei laboratori della facoltà è già installato, però a questo punto vi faccio un'altra domanda:
per creare un'interfaccia grafica basta Eclipse oppure mi devo rivolgere a tool quali gtk+ o QT (per il quale tra l'altro ho trovato un manuale liberamente scaricabile)?

Dipende da cosa vuoi ottenere.
Eclipse in fondo e' una piattaforma, non soltanto un IDE. E' una piattaforma per costruire sopra degli IDE. Eclipse, nativamente, appunto perche' e' nato per Java, ti consente di usare AWT/SWING puro (ovviamente solo Java) senza nessuno sforzo, ma c'e' di piu'. Bisogna ammettere che AWT/Swing non e' che sia tutto questo gran che come look & feel nativo sulle varie piattaforme (anche se la situazione sta decisamente migliorando, ma niente che faccia gridare all'urlo). Cosi' Eclipse fornisce a corredo una sua libreria grafica per Java graficamente molto piu' appagante, la cosiddetta SWT unita a JFace. JFace usa il toolkit considerato nativo per disegnare la grafica d'interfaccia (MFC sotto Windows oppure GTK+/Motif sotto Linux, per esempio) quindi e' un vero e proprio layer di astrazione Java per interfacce grafiche. Tale concetto e' detto peer. Per C/C++, invece, devi usare una libreria a parte per le GUI, difatti non ne dispongono nello standard.

GTK+ e' una libreria nativa C utilizzabile anche con C++ mediante la libreria addizionale gtkmm (un wrapper C++ a GTK+), mentre le Trolltech QT sono native C++. Puoi usare entrambe, infatti sono ambedue "cross platform". E' solo una questione di gusti personali.

Certo e' che se ti devi fossilizzare sull'uso di GTK+ oppure QT, ci sono IDE migliori di Eclipse per questi scopi, specie in ambiente Linux. In linux per esempio per le GTK+ c'e' Anjuta 2.0 (e' da poco uscita la alpha) ma ha il grande vantaggio di interfacciarsi con Glade (un GTK+ User Interface Builder) grafico che ti consente di disegnare l'interfaccia in modo visuale e poi caricarla con le GTK+ dal file XML generato mediante libglade, la libreria di caricamento interfaccia di Glade. Per le QT, forse non c'e' niente di meglio di KDevelop, anch'esso integra un buon supporto per QTDesigner, un tool per le QT simile a Glade per le GTK+ che ti ho citato sopra.

Se invece e' Windows la piattaforma principale su cui vuoi sviluppare, Eclipse e' una buona scelta, anche se a me piace solo per il Java.

alesnoce
24-05-2005, 10:12
Grazie mille per la completezza e la chiarezza della risposta.

Ora, nella spero breve attesa di passare a fare domande sulla stesura del codice, rivolgo a tutti, in particolar modo a quelli che hanno utilizzato più di un linguaggio OO (in sostanza almeno c++ e java) il domandone al quale sto cercando di dare risposte concettualmente e progettualmente passabili:

perché il c++?

Devo progettare un simulatore di statecharts (in sostanza macchine a stati) e mi hanno lasciato carta bianca.

Io ho subito optato per il c++, soprattutto per il desiderio di impararlo, ma vorrei giustificare la mia scelta, in fase di redazione della tesi, con altri argomenti.

Al momento l'unico che mi viene in mente è la maggior velocità del codice compilato su quello interpretato, ma IMHO con le macchine di oggi, e i miglioramenti apportati alla JVM per quanto riguarda l'esecuzione del bytecode, il divario dovrebbe essersi ridotto di molto.

Ciao

fek
24-05-2005, 11:35
Al momento l'unico che mi viene in mente è la maggior velocità del codice compilato su quello interpretato, ma IMHO con le macchine di oggi, e i miglioramenti apportati alla JVM per quanto riguarda l'esecuzione del bytecode, il divario dovrebbe essersi ridotto di molto.

Ciao

Questo purtroppo e' il peggiore dei motivi che si possono portare per una scelta di questo tipo. Il primo motivo dovrebbe essere sempre la produttivita' con la quale puoi portare a termine il lavoro che soddisfi i requisiti imposti. Se fra i requisiti imposti non c'e' la velocita' di esecuzione, non scegliere C++ e vai pure su Java.

cionci
24-05-2005, 12:15
Il programma quanto sarà "peso" ? I generale uno dei problemi che ho sempre riscontrato con i programmi fatti in Java è la quantità di memoria utilizzata...ora non conoscendo le caratteristiche del tuo programma, se già il programma come strutture dati prende una bella quantità di memoria...l'utilizzo dell'interfaccia grafica di Java potrebbe appesantire ulteriormente il tutto limitando l'usabilità... Succede con vari programmi Java con un interfaccia grafica abbastanza complessa (ad esmepio JBuilder)...

71104
24-05-2005, 14:25
Devo progettare un simulatore di statecharts (in sostanza macchine a stati) e mi hanno lasciato carta bianca. in effetti per il progetto che hai descritto più che il C++ io sceglierei il Java ;)
ciao

alesnoce
24-05-2005, 14:26
Questo purtroppo e' il peggiore dei motivi che si possono portare per una scelta di questo tipo. Il primo motivo dovrebbe essere sempre la produttivita' con la quale puoi portare a termine il lavoro che soddisfi i requisiti imposti. Se fra i requisiti imposti non c'e' la velocita' di esecuzione, non scegliere C++ e vai pure su Java.

Quindi ritieni che java garantisca maggior produttività del c++?

Buon suggerimento cionci, effettivamente l'utilizzo di memoria potrebbe rivelarsi piuttosto consistente.

cionci
24-05-2005, 14:32
Quindi ritieni che java garantisca maggior produttività del c++?
Dal punto di vista del linguaggio no, ma dal punto di vista del framwork sì...ma se con C++ ci si affida ad un framework multipiattaforma per l'interfaccia grafica ed altre cose allora secondo me sono alla pari...

alesnoce
24-05-2005, 14:33
in effetti per il progetto che hai descritto più che il C++ io sceglierei il Java ;)
ciao

Quello che al momento ti posso dire è che gli oggetti si prestano bene a descrivere il sistema.

Con la programmazione strutturata non credo sarei in grado di tirar su del codice funzionante (per questo progetto eh :D, non in generale), quindi mi serve un linguaggio OO.

Detto questo, potresti fornirmi allora una motivazione per la scelta del java piuttosto che del c++?

71104
24-05-2005, 14:57
Quello che al momento ti posso dire è che gli oggetti si prestano bene a descrivere il sistema.

Con la programmazione strutturata non credo sarei in grado di tirar su del codice funzionante (per questo progetto eh :D, non in generale), quindi mi serve un linguaggio OO.

Detto questo, potresti fornirmi allora una motivazione per la scelta del java piuttosto che del c++?
più semplice e più OO; migliore IMHO per scopi didattici come il tuo :)

cionci
24-05-2005, 15:19
e più OO
Si può programmare OO in C++ allo stesso modo di quanto si fa in Java...certo il C++ ti mette meno paletti...

mjordan
24-05-2005, 15:25
Grazie mille per la completezza e la chiarezza della risposta.

Ora, nella spero breve attesa di passare a fare domande sulla stesura del codice, rivolgo a tutti, in particolar modo a quelli che hanno utilizzato più di un linguaggio OO (in sostanza almeno c++ e java) il domandone al quale sto cercando di dare risposte concettualmente e progettualmente passabili:

perché il c++?

Devo progettare un simulatore di statecharts (in sostanza macchine a stati) e mi hanno lasciato carta bianca.

Io ho subito optato per il c++, soprattutto per il desiderio di impararlo, ma vorrei giustificare la mia scelta, in fase di redazione della tesi, con altri argomenti.

Al momento l'unico che mi viene in mente è la maggior velocità del codice compilato su quello interpretato, ma IMHO con le macchine di oggi, e i miglioramenti apportati alla JVM per quanto riguarda l'esecuzione del bytecode, il divario dovrebbe essersi ridotto di molto.

Ciao


Diciamo delle cose preliminari. Qualsiasi siano i motivi per utilizzare C++ o Java, niente e nessuno puo' sostituirsi alle tue "sensazioni". Nel senso che ognuno di noi e' portato per qualcosa o qualcos'altro, ha delle preferenze, dei gusti. Questo incide pesantemente sulle tue motivazioni personali di "portare a termine qualcosa". Di conseguenza, ognuno di noi puo' darti la sua visione in materia, ma sostanzialmente, visto che il lavoro e' tuo e soprattutto e' caratterizzato da "libero arbitrio sulla scelta", la cosa che ti posso proporre e' di cominciare subito "a sporcarti le mani" con entrambi i linguaggi. La scelta ti verra' naturale. Non da trascurare, comunque, le motivazioni tecniche a favore di quelle stilistiche. Un simulatore di statecharts e' uno strumento CASE, di conseguenza bisogna valutare alcune cose.
Come ti dicevo prima in qualche post precedente, il fatto di essere "OO ibrido" a volte e' un innegabile vantaggio mentre Java ha le classi (e quindi e gli oggetti) anche per i tipi elementari. Mentre con C++ sei libero di scegliere e adattare la progettazione in base ai tuoi gusti/motivazioni tecniche/quant'altro ci sia da inserire, con Java sei incitato a utilizzare una progettazione OO sin dall'inizio. E sei forzato a farlo, visto che anche il programma complessivo, in Java, e' visto come un oggetto. La main(), insomma, dev'essere anch'essa un membro di una classe. (A proposito, Java ha una terminologia sua per queste cose, diciamo che e' piu' snob di C++, quindi dovremmo dire e' un metodo di una classe :p )

Ma ci sono degli innegabili vantaggi nell'impostare un simulatore di statecharts in Java. Proprio perche' e' uno strumento CASE, avrai bisogno di un mucchio di roba che esce fuori dai normali canoni guida delle UI. In definitiva avrai bisogno di parecchie classi scritte ad hoc per la rappresentazione grafica di cio' che puo' essere una statechart. E quindi, di avere parecchi widget specializzati per la costruzione di una UI non ti servira' a molto. Piuttosto sarai costretto ad usare il cosiddetto "underlying toolkit" usato dal tuo toolkit grafico scelto per rappresentare il disegno della grafica (per farti un esempio, AWT di Java che viene usato da Swing, GDK che viene usato da GTK+, SWT che viene usato da JFace, e cosi' via). Inoltre, il salvataggio di una statecharts e' un qualcosa che vedo molto bene con lo studio di un formato di file in XML. In Java hai gia' tutti questi strumenti "integrati nel linguaggio" laddove in C++ dovrai rivolgerti a librerie di terze parti, che, quasi certamente, ti daranno dei piccoli grattacapi in piu' per quanto riguarda "l'integrazione" nel tuo programma. In Java hai gia' una libreria per il parsing XML, un set di widget abbastanza ricco, delle primitive abbastanza evolute per il disegno di grafica, ecc. ecc. In sostanza il vantaggio e' di avere tutto "centralizzato" e accessibile, con uno stile di programmazione praticamente unificato fra le varie librerie (e quindi piu' familiare). Inoltre tieni in considerazione che C++ e' "solo" un linguaggio, Java e' invece un'intera "piattaforma" e la documentazione e' tutta centralizzata in un unico archivio facilmente consultabile.

Per quanto riguarda la parte "simulazione" sicuramente dovrai realizzare un qualcosa che permette di controllare l'evoluzione dello stato in funzione degli eventi, quindi qui' una progettazione OO dovrebbe essere quasi obbligatoria. In definitiva, per come la vedo io, la velocita' di esecuzione non e' una parte cruciale di un simile strumento. L'occupazione di memoria non e' nulla di cui ti debba preoccupare o che sia qualcosa di ingestibile da un comunissimo PC. Anche perche' ormai la velocita' di esecuzione di Java e' migliorata di parecchio e come se non bastasse si sono evoluti anche dei compilatori nativi per questo linguaggio.

Se ti hanno lasciato scelta al linguaggio, evidentemente questa volta non sono interessati al codice ma al risultato finale, quindi, come ti diceva Fek, alla produttivita'. Java ti consente per molti versi di "oltrepassare" alcuni ostacoli dovuti a mancanza di conoscenza di un determinato settore mediante l'uso piu' o meno mirato di una qualche libreria gia' integrata all'interno del linguaggio per cui le informazioni sono forse piu' facilmente reperibili in rete che non per una libreria esterna C++.

A te la scelta.

alesnoce
25-05-2005, 10:09
il salvataggio di una statecharts e' un qualcosa che vedo molto bene con lo studio di un formato di file in XML.

Per quanto riguarda la parte "simulazione" sicuramente dovrai realizzare un qualcosa che permette di controllare l'evoluzione dello stato in funzione degli eventi, quindi qui' una progettazione OO dovrebbe essere quasi obbligatoria.
Centrato in pieno!

Quello che il mio simulatore deve fare, rispetto al tool commerciale di cui riprenderò in sostanza sintassi e semantica degli statecharts, è proprio l'acquisizione del modello in XML, secondo specifiche che si chiamano XMI (XML Metadata Interchange) di cui per adesso ho una vaga idea.
Acquisito il modello, lo devo implementare con oggetti (non mi viene in mente altra via praticabile), dargli in pasto una serie temporizzata di input, e fargli sputare l'evoluzione del sistema e lo stato finale.

Nonostante le vostre indicazioni, per le quali vi sono veramente grato, mi suggeriscano il java, ho la testa dura, e voglio testarla contro il c++ :muro: :) .
In java ho già scritto qualcosa, trattando pure il parsing XML, quindi so quello che mi perdo in questo campo; il c++ desidero apprenderlo, e penso che questa sia l'occasione migliore. Motivazioni da dare per la scelta di questo linguaggio spero di trovarle cammin facendo.

In compenso ho scoperto che per l'XML ci sono delle interfacce definite dal progetto Xerces (anche qui mi dovrò guardare un po' di roba prima di avere un'idea chiara :confused: ) e che per queste interfacce esistono implementazioni in java, c++ e perl (o forse php).

Pertanto credo che le mie prossime domande verteranno su quello, anche se prima devo studiarmi DTD, XML schema, XMI............

ciao

fek
25-05-2005, 10:16
Dal punto di vista del linguaggio no, ma dal punto di vista del framwork sì...ma se con C++ ci si affida ad un framework multipiattaforma per l'interfaccia grafica ed altre cose allora secondo me sono alla pari...

Secondo me no cionci. Se e' alle prima armi con C++ rischia di perdere un marea di tempo fra doppie deallocazioni, memory leak e puntatori che puntano chissa' dove e scrivono e leggono allegramente il suo spazio di indirizzamento.

Dopo dieci anni che programmo in C++, quando scrivo in C# che ho imparato solo negli ultimi mesi sono come minimo il doppio piu' produttivo. Per quanto uso tutte le "practice" possibili e immaginabili, il memory scribbler e la doppia deallocazione sono sempre li', in agguato, che mi attendono :)

Inoltre in Java (con Eclipse) ha comodissimi tool di testing automatici che farebbe cosa ottima a imparare ad usare fin da subito.

Come per le prestazioni velocistiche, io non mi preoccupere dell'occupazione di memoria fino a che non c'e' un requisito chiaro che gli imponga un quantitativo massimo da impiegare. Non dovrebbe mai ottimizzare prematuramente.

Secondo me dovrebbe fare questo ragionamento: Impieghero' due mesi a scrivere il progetto in C++ ed un mese a scriverlo in Java, la maggiore velocita' e la minore occupazione di memoria giustificano il mese in piu' di lavoro?

Sostituisca ai miei numeri, i valori che si adattano meglio sl tuo problema e alla sua situazione; se la risposta alla domanda e' si', scriva in C++, altrimenti in Java.
In genere si deve cercare di usare sempre lo strumento piu' adatto a risolvere il problema. Trovare lo strumento non e' comunque banale :)

cionci
25-05-2005, 10:17
Al limite c'è questa: http://xmlsoft.org/
Certo non è OO, ma potrebbe essere un inizio...

fek
25-05-2005, 10:20
[snip]
A te la scelta.


alesnoce, mjoardan ti ha gia' dato la parola definitiva sull'argomento, impara il suo post a memoria perche' ci sono delle perle :)

cionci
25-05-2005, 10:22
alesnoce, mjoardan ti ha gia' dato la parola definitiva sull'argomento, impara il suo post a memoria perche' ci sono delle perle :)
E' vero...mi è piaciuto molto... :flower: :ciapet:

fek
25-05-2005, 10:30
Nonostante le vostre indicazioni, per le quali vi sono veramente grato, mi suggeriscano il java, ho la testa dura, e voglio testarla contro il c++ :muro: :) .

Voi giovani siete cosi' irruenti.
"Il C++ ha caratteristiche che molti considerano... innaturali"

Lord Darth Fran

:p

mjordan
25-05-2005, 11:48
Grazie grazie :winner: :winner:

A proposito, dopo tutto il discorso, preferisco C++ :sofico:

mjordan
25-05-2005, 12:00
Sorry. Doppio post.

mjordan
25-05-2005, 12:01
Quello di prima era un consiglio obiettivo. Ora ti do un consiglio personale, ma dimenticalo subito :fiufiu:

[Mad mode = on]
Imparati C++, rompitici la testa. E' bello, criptico, innaturale, i puntatori pendenti svolazzano da tutte le parti, ci vogliono 4 mesi per scovare qualche bug critico, ti fa prendere fuoco al debugger, ti fa contorcere le meningi che si staccheranno e diventeranno piano piano emorroidi. Ma alla fine dirai:

"L'ho fatto in C++ - Bjarne Stroustrup RuleZ - Gosling in pensione :sofico:"

Poi hai i seguenti vantaggi:
1) Se il programma non e' pronto lo puoi rinviare alla sessione dopo
2) Se fa schifo nessuno ti licenzia
3) E' uno dei pochi momenti della vita per fare davvero quello che ti pare
4) Alla fine, un giorno, dovrai sempre dire "Conosco almeno C - C++ - Java" per essere considerato credibile.
[/Mad mode]

Cionci, ora puoi passare al ban, mi sono tolto il rospo :sofico:

fek
25-05-2005, 12:06
Quello di prima era un consiglio obiettivo. Ora ti do un consiglio personale, ma dimenticalo subito :fiufiu:

[Mad mode = on]
Imparati C++, rompitici la testa. E' bello, criptico, innaturale, i puntatori pendenti svolazzano da tutte le parti, ci vogliono 4 mesi per scovare qualche bug critico, ti fa prendere fuoco al debugger, ti fa contorcere le meningi che si staccheranno e diventeranno piano piano emorroidi. Ma alla fine dirai:

"L'ho fatto in C++ - Bjarne Stroustrup RuleZ - Gosling in pensione :sofico:"

Poi hai i seguenti vantaggi:
1) Se il programma non e' pronto lo puoi rinviare alla sessione dopo
2) Se fa schifo nessuno ti licenzia
3) E' uno dei pochi momenti della vita per fare davvero quello che ti pare
4) Alla fine, un giorno, dovrai sempre dire "Conosco almeno C - C++ - Java" per essere considerato credibile.


5) E dopo 10 anni che programmi in C++ ti domandi perche' nel 2005 devi stare ancora a perdere tempo a distruggere gli oggetti, lavoro da spazzini :D

fek
25-05-2005, 12:16
Torno serio anch'io.

Impara il C++, ti servira', serve imparare piu' linguaggi possibile.
Ma impara le giuste metodologie di costruzione del software, quelle non variano al variare del linguaggio di programmazione ti permettono di adattarti facilmente a qualunque idioma.

Impara a scrivere prima i test e poi il codice che li soddisfa, impara a scrivere la cosa piu' semplice che risolve un problema e impara a scriverla e riscriverla in maniera sempre piu' chiara. Impara ad aggiustare il codice che scrive\i per renderlo sempre piu' semplice e rimuovere tutte le duplicazioni logiche e fisiche che trovi. Impara a scrivere il codice in maniera chiara e autoesplicativa: il codice non ha bisogno di commenti, si deve commentare da solo mentre lo leggi; la necessita' di aggiungere un commento e' il modo che il codice ha di dirti: "Riscrivimi".

A quel punto in linguaggio in cui scrivi e' solo una questione di praticita'.

alesnoce
25-05-2005, 15:28
Ooooooooooooohhhhhhhhhhhhhh!

Questo era quello che volevo sentirmi scrivere! :)


tra poco vado a farmi fare l'account in laboratorio e se ho tempo mi scarico il compilatore intel postato prima


Passando a quella che mi azzardo a chiamare metaprogrammazione ditemi se vado su una retta via:

- quanto alla metodologia di costruzione credo di affidarmi per quanto possibile a un simil UML e ai design patterns (eventuali e possibili parti non OO del programma le tratterò quindi in corso d'opera);

- quanto ai test, questi (per me) sconosciuti, cosa devo fare in pratica? Domandarmi cosa deve fare il blocco di codice in risposta a un messaggio, ovvero a un input o a una function call ecc. ecc. e scrivere avendo questo in mente?


Quanto dice fek sulla massima semplicità possibile, per il pochissimo che ne so, mi fa venire in mente l'extreme programming, un approccio diverso.

Ciao

fek
25-05-2005, 16:28
Ooooooooooooohhhhhhhhhhhhhh!

Questo era quello che volevo sentirmi scrivere! :)

Bene. Bello sapere che serviamo a qualcosa :D


Passando a quella che mi azzardo a chiamare metaprogrammazione ditemi se vado su una retta via:

- quanto alla metodologia di costruzione credo di affidarmi per quanto possibile a un simil UML e ai design patterns (eventuali e possibili parti non OO del programma le tratterò quindi in corso d'opera);

Attento, mio giovane Padawan, ti stai dirigendo verso il lato oscuro della Programmazione.
Non devi partire con i Design Pattern in mente, rischi di complicarti inutilmente la vita, e gia' scegliendo il C++ te la stai complicando. Se puoi evitare altre complicazioni, fallo.
Il bello dei Design Pattern e' sapere che cosa sono e quando usarli (ti consiglio di recitarli la sera prima di andare a dormire :)), ma e' ancora piu' importante sapere quando non usare un Design Pattern. Se parti con l'idea "qui ci devo mettere uno Strategy, prima o poi mi tornera' utile", sei gia' sulla buona strada che porta dritto ad un disastro. Rischi di diventare "Pattern happy" e complicarti la vita.
Guarda qui:


<?php
/********************************************************************
Model-View-Controller implementation according to POSA
(Pattern-Oriented Software Architecture
http://www.hillside.net/patterns/books/Siemens/book.html)
********************************************************************/

class HelloWorldController {
private $model;
function __construct($model) {
$this->model = $model;
}

function handleEvent($args) {
$this->model->setStrategy($args[2]);
$this->model->addText($args[1]);
}
}


class HelloWorldModel {
private $text;
private $observers = array();
private $strategy;

function attach($observer) {
$this->observers[] = $observer;
}

function getData() {
$facade = new HelloWorldFacade($this->strategy);
return $facade->getHelloWorld().$this->text."\n";
}

function addText($text='') {
$this->text = $text;
$this->notify();
}

function setStrategy($strategy) {
$this->strategy = $strategy;
}

function notify() {
foreach ($this->observers as $observer) {
$observer->update();
}
}
}

class HelloWorldView {
private $model;

function initialize($model) {
$this->model = $model;
$model->attach($this);
return $this->makeController();
}

function makeController() {
return new HelloWorldController($this->model);
}

function update() {
$this->display();
}

function display() {
echo $this->model->getData();
}
}


/*********************************************************************
"Business logic"
********************************************************************/

class HelloWorld {
function execute() {
return "Hello world";
}
}

class HelloWorldDecorator {
private $helloworld;
function __construct($helloworld) {
$this->helloworld = $helloworld;
}

function execute() {
return $this->helloworld->execute();
}
}

abstract class HelloWorldEmphasisStrategy {
abstract function emphasize($string);
}

class HelloWorldBangEmphasisStrategy extends HelloWorldEmphasisStrategy {
function emphasize($string) {
return $string."!";
}
}

class HelloWorldRepetitionEmphasisStrategy extends HelloWorldEmphasisStrategy {
function emphasize($string) {
return $string." and ".$string." again";
}
}

class HelloWorldEmphasizer extends HelloWorldDecorator {
private $strategy;
function HelloWorldEmphasizer($helloworld,$strategy) {
$this->strategy = $strategy;
parent::__construct($helloworld);
}

function execute() {
$string = parent::execute();
return $this->strategy->emphasize($string);
}
}

class HelloWorldStrategyFactory {
static function make($type) {
if ($type == 'repetition') return self::makeRepetitionStrategy();
return self::makeBangStrategy();
}

static function makeBangStrategy() {
return new HelloWorldBangEmphasisStrategy;
}
static function makeRepetitionStrategy() {
return new HelloWorldRepetitionEmphasisStrategy;
}
}

class HelloWorldFormatter extends HelloWorldDecorator {
function execute() {
$string = parent::execute();
return $string."\n";
}
}

class HelloWorldFacade {
private $strategy;
function __construct($strategyType) {
$this->strategy = HelloWorldStrategyFactory::make($strategyType);
}

function getHelloWorld() {
$formatter = new HelloWorldFormatter(
new HelloWorldEmphasizer(
new HelloWorld,$this->strategy));
return $formatter->execute();
}
}

$model = new HelloWorldModel;
$view = new HelloWorldView;
$controller = $view->initialize($model);
$controller->handleEvent($_SERVER['argv']);

?>

Sono certo che c'e' un modo piu' semplice di scrivere un HelloWorld in php :D


- quanto ai test, questi (per me) sconosciuti, cosa devo fare in pratica? Domandarmi cosa deve fare il blocco di codice in risposta a un messaggio, ovvero a un input o a una function call ecc. ecc. e scrivere avendo questo in mente?

Si', l'idea a grandi linee e' quella che hai descritto. Scrivere del codice che verifichi che un metodo si comporti come intendi tu in presenza di un determinato input. E' piu' facile a dirsi che a farsi.
Il discorso si fa interessante quando scrivi i test prima di scrivere il codice, quindi ti domandi se un metodo che non hai ancora scritto si comporta come lo intendi in presenza di un determinato input. Poi scrivi il metodo nella maniera piu' semplice possibile affinche' il test che hai scritto passi. Cosi' via per tutto il codice che scrivi. E' un approccio interessantissimo alla programmazione.


Quanto dice fek sulla massima semplicità possibile, per il pochissimo che ne so, mi fa venire in mente l'extreme programming, un approccio diverso.


Credo ti sara' venuto il sospetto da quello che scrivo che seguo con un certo interesse le metodologie di sviluppo agili :D

Il concetto di semplicita' pero' va al di la' dell'Extreme Programming, e' un concetto generale che si applica a qualunque campo secondo me e nella programmazione e' fondamentale, perche' e' un'attivita' piuttosto complessa di per se'.

Einstein diceva: "Make it as simple as possible, but not simpler".
Qualcun altro: "Make it simple, but it's not easy"

Sto scadendo un po' nel filosofico ora, spero di aver reso l'idea.

mjordan
26-05-2005, 11:08
A questo punto mi sento rincuorato nel sentire qualcuno che bene o male ha lo stesso mio pensiero sui metodi di sviluppo del software ... :D

Sarebbe interessante discutere quando sia veramente utili applicarli... Mi danno l'impressione che nel 90% dei casi complichino soltanto la vita ...

Quanti sul pianeta per esempio usano davvero UML?

fek
26-05-2005, 11:23
A questo punto mi sento rincuorato nel sentire qualcuno che bene o male ha lo stesso mio pensiero sui metodi di sviluppo del software ... :D

Sarebbe interessante discutere quando sia veramente utili applicarli... Mi danno l'impressione che nel 90% dei casi complichino soltanto la vita ...

Parli delle metodologie agili?


Quanti sul pianeta per esempio usano davvero UML?

Parecchi. Io lo trovo utilissimo per documentare il codice che ho scritto in maniera sintetica, fermo restando che la forma autoritativa (esiste in italiano?) di documentazione resta il codice stesso.
Il nuovo VS2005 produce automaticamente diagrammi simil UML a partire dal codice, che e' possibile passare facilmente ad un collega per una veloce visione di insieme della struttura del codice. Poi i test forniscono una documentazione piu' a basso livello e dettagliata. Infine il codice di produzione fornisce il resto delle informazioni necessarie alla sua comprensione (se e' chiaro). In genere io, non commento mai, o meglio, commento solo le assunzioni e le invarianze che un pezzo codice prevede e che non riesco a documentare con il codice stesso. E' piuttosto raro ma a volte accade. In Eiffel, ad esempio, queste assunzioni possono essere documentate direttamente in codice e verificate a runtime automaticamente! (Design by Contract).

PS. Splendido topic da parte di tutti (e non e' il primo qui) :)

cionci
26-05-2005, 11:27
Il nuovo VS2005 produce automaticamente diagrammi simil UML a partire dal codice
Spettacolare, ma solitamente non si fa il contrario...o almeno mi è sempre stato detto di fare così :)

fek
26-05-2005, 11:30
Spettacolare, ma solitamente non si fa il contrario...o almeno mi è sempre stato detto di fare così :)

Dimenticalo :p

Lo apriamo un topic sul ruolo dell'attivita' di design prima di scrivere il codice?
Mi raccontate le vostre esperienze?

cionci
26-05-2005, 11:38
Vai pure...ci sto...

alesnoce
26-05-2005, 11:57
Bene. Bello sapere che serviamo a qualcosa :D

Attento, mio giovane Padawan, ti stai dirigendo verso il lato oscuro della Programmazione.

Ma certo che mi siete d'aiuto, Maestri Jedi come voi dove altro li potrei trovare?

Hello World in php secondo i design pattern è stato molto convincente :D ,
credo che lascerò i d.p. da parte per il momento, a meno che sul libro della gang of four non trovi qualcosa che sembra scritto per me.

Per ciò che riguarda UML, per me è un modo di visualizzare la struttura del programma che nessun codice, per quanto chiaro e autoesplicativo, può eguagliare. Riesco meglio a vedere la struttura d'insieme.

alesnoce
26-05-2005, 12:00
Lo apriamo un topic sul ruolo dell'attivita' di design prima di scrivere il codice?


Postatemene il nome per favore, appena uno di voi l'avrà creato, così vi faccio le domande anche da lì :)

Ci possiamo buttare dentro anche i test?

Ciao

cionci
26-05-2005, 12:03
Hello World in php secondo i design pattern è stato molto convincente :D ,
credo che lascerò i d.p. da parte per il momento, a meno che sul libro della gang of four non trovi qualcosa che sembra scritto per me
No...non li accantonare completamente sono sempre un esempio di quello che si può fare in certe situazioni programmando OO...fek voleva soltanto dire di usare un certo design pattern solo quando è necessario e di non abusarne...

fek
26-05-2005, 12:14
Hello World in php secondo i design pattern è stato molto convincente :D ,
credo che lascerò i d.p. da parte per il momento, a meno che sul libro della gang of four non trovi qualcosa che sembra scritto per me.

Aspetta, come ti ha detto cionci i DP sono fondamentali. Devi saperli recitare a memoria, i DP devono essere un obiettivo per il tuo refactoring. Devi sapere che un certo problema che hai e che hai risolto in un certo modo, puo' essere risolto in maniera piu' semplice se applichi un DP. Oppure il codice che hai e' piu' semplice che applicare un DP piu' generico. Non ci sono regole base per questo, si tratta di esperienza. Ti consiglio il libro Refactoring To Patterns (a me ha insegnato moltissimo).


Per ciò che riguarda UML, per me è un modo di visualizzare la struttura del programma che nessun codice, per quanto chiaro e autoesplicativo, può eguagliare. Riesco meglio a vedere la struttura d'insieme.

Uso anch'io UML allo stesso modo. L'importante, secondo me, e' non usarlo come fonte perenne del design. A mio avviso dev'essere un documento permanente che ti chiarisca le idee, da abbandonare subito dopo e non cercare di mantenere costantemente in sincrono con il codice (tanto non avrai mai ne' il tempo ne' la voglia di farlo, a meno che non sia un processo automatico).

71104
26-05-2005, 14:21
Quello di prima era un consiglio obiettivo. Ora ti do un consiglio personale, ma dimenticalo subito :fiufiu:

[Mad mode = on]
Imparati C++, rompitici la testa. E' bello, criptico, innaturale, i puntatori pendenti svolazzano da tutte le parti, ci vogliono 4 mesi per scovare qualche bug critico, ti fa prendere fuoco al debugger, ti fa contorcere le meningi che si staccheranno e diventeranno piano piano emorroidi.[/Mad mode]
amico, per questo sappi solo una cosa: hai la mia ammirazione. ;)

AGGIUNTA: quello che mi piace di più di tutta la frase, quello che in teoria avrebbe meno senso di tutto, che in teoria sarebbe una cosa completamente fasulla, ma che in pratica mi piace troppo, è troppo giusto, troppo vero, è la definizione di "criptico", "innaturale"... sei un grande! :p

alesnoce
26-05-2005, 16:36
Lo apriamo un topic sul ruolo dell'attivita' di design prima di scrivere il codice?

L'ho fatto, l'ho chiamato "metaprogrammazione". Per argomenti non c++ vi posto lì :)

Ciao

mjordan
26-05-2005, 18:09
amico, per questo sappi solo una cosa: hai la mia ammirazione. ;)

AGGIUNTA: quello che mi piace di più di tutta la frase, quello che in teoria avrebbe meno senso di tutto, che in teoria sarebbe una cosa completamente fasulla, ma che in pratica mi piace troppo, è troppo giusto, troppo vero, è la definizione di "criptico", "innaturale"... sei un grande! :p

Mi sono basato sulla frase di Fek "Mi domando dopo 10 anni che programmo in C++ perche' debba ancora perdere tempo a distruggere gli oggetti"
:sofico:

Grazie grazie :ave:

fabriziolivorno40
05-06-2005, 14:48
sito manuale C++ italiano

http://www.risorsehitech.it/informatica/guide/cplusplus_panoramica/



sito per scaricare compilatore dev C++ 4.9.8.0

http://www.diiga.univpm.it/zingaretti/teaching/Fondamenti_di_Informatica/DEVCPP/devcpp.html


se non vi viene in italaino [email protected]

vi spediro il file di traduzione per l'italiano


sito delle librerie allegro grafica ita

http://ftp.dk.xemacs.org/pub/projects/allegro/wip.it.html



sito manuale utente dev C++ 4.9.8.0 ita

http://www-db.deis.unibo.it/~csartori/didattica/informatica/DevC++_ManualeUtente.pdf

71104
05-06-2005, 21:05
sito manuale C++ italiano

http://www.risorsehitech.it/informatica/guide/cplusplus_panoramica/



sito per scaricare compilatore dev C++ 4.9.8.0

http://www.diiga.univpm.it/zingaretti/teaching/Fondamenti_di_Informatica/DEVCPP/devcpp.html


se non vi viene in italaino [email protected]

vi spediro il file di traduzione per l'italiano


sito delle librerie allegro grafica ita

http://ftp.dk.xemacs.org/pub/projects/allegro/wip.it.html



sito manuale utente dev C++ 4.9.8.0 ita

http://www-db.deis.unibo.it/~csartori/didattica/informatica/DevC++_ManualeUtente.pdf
eccerto, anche qui: mi pare ovvio, no?
bene, ora sappiamo che a Livorno c'è un tale Fabrizio che o non sa usare un forum oppure vabbè, non lo dico solo per rispettare una volta tanto (almeno nominalmente) la netiquette del regolamento di hwu :)

mjordan
06-06-2005, 04:24
Ormai e' diventata una moda :sofico:
Basta tenere 5 link in un file txt da cui fare copia & incolla e rispondere sistematicamente a 20 thread al giorno :sofico:

aryx82
02-11-2005, 11:25
In compenso ho scoperto che per l'XML ci sono delle interfacce definite dal progetto Xerces (anche qui mi dovrò guardare un po' di roba prima di avere un'idea chiara :confused: ) e che per queste interfacce esistono implementazioni in java, c++ e perl (o forse php).




Ciao! hai scoperto qualcosa su queste interfacce? L'mplementazione a cui sono interessata è in c++! Grazie :muro:

Raffaele_Megabyte
03-11-2005, 13:54
Come non c'è per amiga??? :D :D :D

Grazie del link lo provo subito!!

Giusto per stare allo scherzo, divertitevi:


http://sourceforge.net/projects/amigaide/
http://sourceforge.net/projects/adtools/
http://www.amiga.com/news/?art=9


Info C++ su Amiga

http://www.amigau.com/c-programming/Cplusplus/cpluspluslinks.htm


Cross Compiling

http://www.zerohero.se/cross/index.html


Morphos Amiga

http://developer.morphosppc.com/


IDE per Amiga fatte da terzi

http://www.ecommercelogic.com/amiga/index_en.php


Cubic IDE

http://www.dietmar-eilert.net


E un'immagine di come si programma Amiga oggi:

http://www.nukleon.pl/pic/newspic4142.png

alesnoce
14-11-2005, 14:39
Ciao! hai scoperto qualcosa su queste interfacce? L'mplementazione a cui sono interessata è in c++! Grazie :muro:

Ciao, scusa se rispondo solo ora ma era da mesi che non tornavo a guardare le discussioni sul forum.

Intanto ti devo dire che ho usato il termine interfaccia in senso lato: intendevo dire una libreria che offre funzioni per trattare i file xml, e quindi permettere al mio programma di interfacciarsi con essi.

Purtroppo ho dedicato questi mesi a creare la struttura del simulatore (ne parlo nei miei precedenti post in questo stesso thread), e quindi la parte di interfaccia con i file xml che mi permette di creare il modello del sistema automaticamente la devo ancora implementare.

L'unica cosa che ho fatto finora è cercare con google "xerces download" e trovare la libreria per il c++ e istruzioni su non ricordo cosa, forse sul path nel quale inserirla. Quando inizierò a usarla magari ti faccio sapere cosa faccio per elaborare i file xml che servono al mio scopo. Quello che non sono riuscito a trovare è quello che in sostanza credo serva anche a te, ovvero una guida all'uso di questa libreria.

Supponendo che tu parta prima di me a lavorare con l'xml, ti chiedo a mia volta di informarmi su cosa apprendi di volta in volta sul trattamento in c++ dei file xml.

Mi dispiace averti scritto tanto per non dirti praticamente niente :-)
Ciao