cross-platform εφαρμογή: αναζητείται frontend, backend σε fortran
Giorgos Keramidas
keramida at ceid.upatras.gr
Sat Oct 18 20:31:27 EEST 2008
On Sat, 18 Oct 2008 19:40:40 +0300, Thanos <pampo at freemail.gr> wrote:
> Γεια σας!
>
> Ζητώ συγνώμη για το πιθανώς off-topic ερώτημά μου αλλά νομίζω πως
> είναι το καταλληλότερο μέρος για να αρχίσω να συλλέγω συγκεκριμένες
> πληροφορίες μιας και οι γνώσεις μου δεν με βοηθούν να αξιολογήσω αυτά
> που βρίσκω στο διαδίκτυο.
>
> θέλω να φτιάξω μια cross-platform εφαρμογή της οποίας το backend θα
> είναι γραμμένο σε fortran 90/95. Μηχανικός βλέπετε και είναι η γλώσσα
> με την οποία έχω ασχοληθεί μέχρι τώρα, αλλά τα προγράμματα που έχω
> φτιάξει πάντα τρέχαν σε περιβάλλον τερματικού. Τίποτα με GUI δηλαδή.
>
> Το ερώτημά μου είναι το εξής· υπάρχει κάτι που μπορώ να χρησιμοποιήσω
> για να φτιάξω το frontend το οποίο θα συνεργάζεται καλά με την fortran
> και θα έχω ένα αποτέλεσμα που θα δουλεύει; Ή είναι άδικος κόπος η
> fortran και θα ήταν προτιμότερο να «μάθω» άλλη γλώσσα;
Ναι υπάρχει τρόπος. Το GNU Octave[1] είναι ένα εργαλείο που έχει μέρη
γραμμένα σε Fortran. Μπορείς να δεις πως είναι γραμμένος ο κώδικας του
Octave που χειρίζεται το interfacing μεταξύ διαφόρων γλωσσών (και της
Fortran μεταξύ άλλων), διαβάζοντας το source του Octave. Το Subversion
repository του Octave είναι ελεύθερα διαθέσιμο:
http://octave.svn.sourceforge.net/viewvc/octave/
Για παράδειγμα, το FAQ του Octave λέει το εξής υπέροχο [2]:
,-----------------------------------------------------------------------
| 1.4 On what platforms does Octave run?
|
| Octave runs on various Unices-at least Linux and Solaris, Mac
| OS X, Windows and anything you can compile it on. Binary
| distributions exist at least for Debian, Suse, Fedora and
| RedHat Linuxes (Intel and AMD CPUs, at least), for Mac Os X and
| Windows' 98, 2000 and XP.
|
| Two and three dimensional plotting is fully supported using
| gnuplot.
|
| The underlying numerical solvers are currently standard Fortran
| ones like Lapack, Linpack, Odepack, the Blas, etc., packaged in
| a library of C++ classes. If possible, the Fortran subroutines
| are compiled with the system's Fortran compiler, and called
| directly from the C++ functions. If that's not possible, you
| can still compile Octave if you have the free Fortran to C
| translator f2c.
|
| Octave is also free software; you can redistribute it and/or
| modify it under the terms of the GNU General Public License as
| published by the Free Software Foundation.
`-----------------------------------------------------------------------
Το `packaging σε C++ classes' μπορεί να σου φανεί ΠΟΛΥ χρήσιμο αν
πρόκειται, ας πούμε, να γράψεις το GUI ενός προγράμματος σε C++ με την
QT library και θέλεις ένα `core' από το πρόγραμμα να είναι γραμμένο σε
Fortran (για οποιοδήποτε λόγο).
Αναφορές
--------
[1] http://www.gnu.org/software/octave/index.html
[2] http://www.gnu.org/software/octave/FAQ.html#On-what-platforms-does-Octave-run_003f
> Άντε και το βρίσκουμε αυτό το κάτι που συνεργάζεται με την fortran,
> πως στο καλό κάποιος φτιάχνει μια τέτοια εφαρμογή; Πως δηλαδή φτιάχνω
> το πρόγραμμά μου ώστε να λαμβάνει εντολές και τιμές από το frontend;
> Είπαμε μηδαμινή εμπειρία σε «γραφικό» προγραμματισμό... Δεν ζητώ
> φυσικά οδηγίες αλλά links σε tutorials, howtos, κτλ.
Είναι δύο διαφορετικά πράγματα:
(α) Το GUI / interface από τη μία, για το οποίο μπορείς να βρεις
πληροφορίες στο manual των toolkits GTK+ και QT:
http://library.gnome.org/devel/gtk-tutorial/stable/
http://library.gnome.org/devel/
http://doc.trolltech.com/4.3/tutorial.html
http://www.apress.com/book/view/1590598318
(β) Το `interfacing' της Fortran με C++. Γι αυτό θα χρειαστεί να
διαβάσεις τον πηγαίο κώδικα του Octave, ή κάτι σαν τα κείμενα:
http://arnholm.org/software/cppf77/cppf77.htm
http://hfi-l2.in2p3.fr/fortranOO_EA.pdf
More information about the Linux-greek-users
mailing list