View Full Version : [Vari] Strumento per seguire il flusso di un programma
vendettaaaaa
25-02-2013, 09:53
Ciao a tutti,
vorrei sapere da chi ha più esperienza e lavora nel settore da molto tempo, e ha quindi una buona conoscenza di vari tool da affiancare all'IDE, se esiste un programma che aiuti a costruire una mappa del codice su cui lavoro, seguendo le chiamate.
In particolare, sto lavorando ad un progetto un po' vetusto, scritto in FORTRAN77 (risparmiatemi i commenti a riguardo per favore, è già una tortura doverlo scrivere pubblicamente :muro: ) e servirebbe qualcosa che crei una specie di diagramma di flusso, che segua l'ordine delle chiamate alle varie subroutine e funzioni, per aiutare nella stesura di un manuale dello sviluppatore.
Spero di esser stato chiaro :D
vendettaaaaa
25-02-2013, 10:33
per il C ci sono tanti tool (di cui adesso non mi sovviene il nome... :D ), eclipse lo fa in modo automatico ma non so se supporti anche il fortran...
Di certo non lo sopporta, e neanche io! :cool:
Thx, continua a spremere le meningi, mi raccomando :D
vendettaaaaa
25-02-2013, 12:12
http://www.eclipse.org/photran/
prova questo, e' un ide fortran basato su eclipse... se 2+2 fa 4, dovrebbe fare al caso tuo...
Yeah, lo provo, thx!
Intanto ho trovato qualcosa che dovrebbe fare al caso mio: http://drn.digitalriver.com/product/view/id/2995 però ho qualche problema ad installarlo...parla ancora di Windows 3.1 :eek:
Vincenzo1968
25-02-2013, 13:28
Ciao a tutti,
vorrei sapere da chi ha più esperienza e lavora nel settore da molto tempo, e ha quindi una buona conoscenza di vari tool da affiancare all'IDE, se esiste un programma che aiuti a costruire una mappa del codice su cui lavoro, seguendo le chiamate.
In particolare, sto lavorando ad un progetto un po' vetusto, scritto in FORTRAN77 (risparmiatemi i commenti a riguardo per favore, è già una tortura doverlo scrivere pubblicamente :muro: ) e servirebbe qualcosa che crei una specie di diagramma di flusso, che segua l'ordine delle chiamate alle varie subroutine e funzioni, per aiutare nella stesura di un manuale dello sviluppatore.
Spero di esser stato chiaro :D
Si potrebbe scrivere un parserino che esegua il lavoro. Una sottospecie di compilatore che invece di generare il codice crei il diagramma di flusso.
vendettaaaaa
25-02-2013, 13:47
Si potrebbe scrivere un parserino che esegua il lavoro. Una sottospecie di compilatore che invece di generare il codice crei il diagramma di flusso.
Vi stavo giusto pensando perché finora ho trovato tool incompleti (tipo che non interpretano keyword del linguaggio) o che mi fanno passare la voglia di installarli :D però persevererò ancora un po' prima di mettermi all'opera.
Cmq già abbiamo nel programma una funzione che viene chiamata all'inizio,e alla fine di ogni altra, quindi ci sarebbe da fare solo il parsing del file generato da questa funzione tracciante.
Vincenzo1968
25-02-2013, 14:09
Se trovi un software già bell'e pronto è naturalmente la cosa migliore.
Se non lo trovi dobbiamo procurarci la grammatica di FORTRAN(sicuramente si troverà in rete).
Io intanto do un spolveratina al Dragon Book. Dare anche un'occhiata qui:
http://flex.sourceforge.net/
http://www.gnu.org/software/bison/
http://img853.imageshack.us/img853/8148/flexbison.jpg
Con doxygen e graphviz ottieni il call graph che ti serve.
Vincenzo1968
25-02-2013, 14:25
Se esiste un compilatore FORTRAN open source, non abbiamo nemmeno bisogno di scrivere il parser. Modifichiamo la parte che legge l'AST e gli facciamo produrre il diagramma di flusso.
EDIT: qualcosina c'è:
http://gcc.gnu.org/fortran/
http://www.openwatcom.org/index.php/Main_Page
http://www.g95.org/
http://www.netlib.org/f2c/
vendettaaaaa
25-02-2013, 14:28
Con doxygen e graphviz ottieni il call graph che ti serve.
Pensavo doxygen non funzionasse con FORTRAN! E Graphviz non lo conosco, ora guardo :D
@Vince': la grammatica di FORTRAN77 è piuttosto semplice, specie se l'unico obiettivo è trovare l'albero delle chiamate. Per ora cmq non voglio pensare troppo a scrivere il parser :cool:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.