FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

Σχετικά έγγραφα
FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB

Κεφάλαιο 7: Υπορουτίνες

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

ΒΙΒΛΙΑ ΒΙΒΛΙΑ

1 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. 4o Εργαστήριο Σ.Α.Ε

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB)

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

Τυπικές χρήσεις της Matlab

Λειτουργικά Συστήματα (Λ/Σ)

Matlab functions. Κολοβού Αθανασία, ΕΔΙΠ, Τμήμα Πληροφορικής και Τηλεπικοινωνιών, ΕΚΠΑ

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

Εγκατάσταση του Lazarus

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

Υπο-προγράμματα στη Fortran

Συναρτήσεις. Υποπρόγραμμα

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

Οντοκεντρικός Προγραμματισμός

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς

Εισαγωγή στην Αριθμητική Ανάλυση

Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13

διανύσματα - Πίνακες - Struct Στατικό διάνυσμα Είσοδος Έξοδος δεδομένων Συναρτήσεις Χειρισμός σφαλμάτων ΤΕΤΑΡΤΗ ΔΙΑΛΕΞΗ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink. Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος

Α. Ερωτήσεις Ανάπτυξης

Θέματα Προγραμματισμού Η/Υ

6. Εισαγωγή στον προγραµµατισµό

Ανάπτυξη και Σχεδίαση Λογισμικού

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Εισαγωγή στη Matlab Βασικές Συναρτήσεις

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Χαρίδημος Κονδυλάκης Εισαγωγή

Ηλεκτρονικοί Υπολογιστές

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Δρ. Ιωάννης Λυχναρόπουλος Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

ΧΡΗΣΙΜΕΣ ΠΛΗΡΟΦΟΡΙΕΣ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ

Εισαγωγή στον Προγραμματισμό Μάθημα 4: Αλγόριθμοι και Γλώσσες Προγραμματισμού Δεκέμβριος 2015 Χ. Αλεξανδράκη

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ

Εργαστήριο Γραμμικής Άλγεβρας. H Matlab ως γλώσσα προγραμματισμού

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ) 2008

Λογισµικό (Software SW) Γλώσσες

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

Διαδικασιακός Προγραμματισμός

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

5ο Συνέδριο ΕΛΛΑΚ Εργαστήριο Octave

Ανάλυση, Στατιστική Επεξεργασία και Παρουσίαση Δεδομένων με χρήση Ανοικτών Λογισμικών Δρ. Φίλιππος Σοφός

Συστήματα Αναμονής (Queuing Systems)

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Παράλληλη Επεξεργασία

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

Μαλούτα Θεανώ Σελίδα 1

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

4.1 Πράξεις με Πολυωνυμικές Εκφράσεις... 66

Πληροφορική 2. Γλώσσες Προγραμματισμού

Έναρξη Τερματισμός του MatLab

ΤΕΙ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Τμήμα Πολιτικών Μηχανικών ΤΕ Λάρισας Θέματα Πτυχιακών Εργασιών

Κλάσεις και Αντικείµενα

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Εργαστήριο Μαθηματικής Ανάλυσης Ι. Εισαγωγή στη Matlab Βασικές Συναρτήσεις-Γραφικές παραστάσεις. Πανεπιστήμιο Θεσσαλίας. Σχολή Θετικών Επιστημών

Transcript:

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 M9 Διασύνδεση FORTRAN με άλλες γλώσσες Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr ΕΜΠ/ΣΝΜΜ Εργαστήριο Ναυτικής Μηχανολογίας 1

Ενότητες Μαθήματος 1. Εισαγωγή στην γλώσσα προγραμματισμού FORTRAN. 2. Απλοί τύποι δεδομένων, σταθερές και μεταβλητές, εκφράσεις, απλές εντολές. 3. Δομές ελέγχου. 4. Διαδικασίες {=Συναρτήσεις (functions), υπορουτίνες (subroutines)}, Ενότητες/Mονάδες (modules). 5. Μεταφορά δεδομένων, είσοδος-έξοδος, εξωτερικά αρχεία δεδομένων 6. Φάσεις ανάπτυξης λογισμικού: προδιαγραφές, σχεδίαση, υλοποίηση, επαλήθευση, τεκμηρίωση, συντήρηση προγραμμάτων. 7. Σύνθετες δομές δεδομένων: πίνακες, εγγραφές, συνδεδεμένες λίστες. Δυναμική παραχώρηση μνήμης. 8. Βασικές έννοιες αντικειμενοστραφούς προγραμματισμού: αφηρημένοι τύποι δεδομένων, κλάσεις, αντικείμενα, μεταβλητές, μέθοδοι, ενθυλάκωση, κληρονομικότητα, πολυμορφισμός. 9. Διασύνδεση της FORTRAN με άλλες γλώσσες προγραμματισμού. 10. Επίλυση προβλημάτων με τη γλώσσα προγραμματισμού FORTRAN, Ανασκόπηση, Παλαιά θέματα εξετάσεων (Παρασκευή 2/6/2017)

Περιπτώσεις διασύνδεσης FRTRΝ με άλλες γλώσσες Διακρίνουμε τις εξής περιπτώσεις διασύνδεσης (1/2): 1. Διασύνδεση με την γλώσσα C (interoperability with C) H έκδοση Fortran 2003 διαθέτει τυποποιημένο (standard) μηχανισμό διασύνδεσης, δηλ. επικοινωνίας δεδομένων προγράμματος. Προυπόθεση είναι η χρήση κατάλληλων τύπων δεδομένων, μεταβλητών, pointers κλπ στο πρόγραμμα Fortran. Μπορεί να γίνει κλήση συνάρτησης C από την Fortran και το ανάποδο. Για περισσότερα στοιχεία βλέπε βιβλίο Metcalf et al., κεφ. 12. 3

Περιπτώσεις διασύνδεσης FRTRΝ με άλλες γλώσσες Διακρίνουμε τις εξής περιπτώσεις διασύνδεσης (1/2): 1. Διασύνδεση με την γλώσσα C (interoperability with C) 4

Περιπτώσεις διασύνδεσης FRTRΝ με άλλες γλώσσες Διακρίνουμε τις εξής περιπτώσεις διασύνδεσης (1/2): 1. Διασύνδεση με την γλώσσα C (interoperability with C) Από το βιβλίο Metcalf et al., κεφ. 12. 5

Διακρίνουμε τις εξής περιπτώσεις διασύνδεσης (2/2): 2. Διασύνδεση με το MATLAB, Mέσω δύο τρόπων A) διασύνδεση κώδικα Fortran που έχει ήδη γίνει compiled B) με κατάλληλη δομή προγράμματος Fortran για διασύνδεση με το MATLAB μέσω αρχείων τύπου MEX. Παρακάτω παρουσιάζονται και οι δύο τρόποι, όμως προτείνεται λόγω απλότητας η χρήση του τρόπου A2. 6

Διασύνδεση FRTRN με MATLAB Διασύνδεση FRTRΝ με το MATLAB, Τρόπος Α1. 1. Εκτέλεση στο περιβάλλον MATLAB (Command line) του εκτελέσιμου κώδικα (executable, *.exe) ενός αρχείου που ήδη τρέχει αυτόνομα στην FRTRN. Δεδομένα δίνονται από command line MATLAB. Βήματα: 1. Μεταφέρεται το αρχείο του εκτελέσιμου κώδικα σε Fortran (*.exe) σε directory με πρόσβαση από το MATLAB. 2. Καλείται το αρχείο exe με θαυμαστικό (!) (Χρήση θαυμαστικού επιτρέπει κλήση εντολών του λειτουργικού συστήματος (εδώ Windows). Έτσι πχ >>! Reverse) 3. Η είσοδος/έξοδος του προγράμματος γίνεται στο command line του MATLAB. 4. Μειονέκτημα: δεν αποθηκεύεται το αποτέλσμα σε μεταβλητή στο Workspace Τα αρχεία Reverse2.f95, Reverse2.exe υπάρχουν στην ιστοσελίδα του μαθήματος, /M9_codes 7

Διασύνδεση FRTRN με MATLAB Διασύνδεση FRTRΝ με το MATLAB, Τρόπος A2. 1. Εκτέλεση στο περιβάλλον MATLAB (Command line) του εκτελέσιμου κώδικα (executable) ενός αρχείου που ήδη τρέχει αυτόνομα στην FRTRN. Δεδομένα δίνονται από αρχείο. Βήματα: 1. Δημιουργείται αρχείο δεδομένων εισόδου (αρχείο input.txt) 2. Μεταφέρεται το αρχείο του εκτελέσιμου κώδικα σε Fortran (*.exe) σε directory με πρόσβαση από το MATLAB. 3. Στο MATLAB script run_fortran.m, με την εντολή system, καλείται το αρχείο Reverse2.exe 4. Η έξοδος του προγράμματος γίνεται στο command line του MATLAB. 5. Πλεονέκτημα: αποθηκεύεται το αποτέλεσμα σε μεταβλητή στο Workspace: results, status 6. H status γίνεται 0 για okay, ενώ γίνεται 1 για περίπτωση error Τα αρχεία Reverse2.f95, Reverse2.exe, input.txt, run_fortran.m υπάρχουν στην ιστοσελίδα του μαθήματος, /M9_codes 8

Διασύνδεση FRTRN με MATLAB αρχείο δεδομένων εισόδου (αρχείο input.txt) MATLAB script run_fortran.m, με την εντολή system, καλείται το αρχείο Reverse2.exe Αποθηκεύεται το αποτέλεσμα σε μεταβλητή στο Workspace 9

Διασύνδεση FRTRN με MATLAB Διασύνδεση FRTRΝ με το MATLAB, τρόπος Β 1. Μέσω αρχείων MATLAB τύπου MEX. (Πολύπλοκος τρόπος αλλά ισχυρός). 2. Ένα αρχείο MEX είναι ένα function γραμμένο στο MATLAB που καλεί ρουτίνες C, C++, Fortran. Με την εντολή ΜΕΧ γίνεται compiled μέσω MATLAB και compiler Fortran. 3. Απαιτεί εγκατεστημενο συμβατό compiler Fortran στο MATLAB (πχ INTEL). To περιβάλλον Plato δεν υποστηρίζεται από το MATLAB. Σχετικό documentation MATLAB: External interfaces 10

Διασύνδεση FRTRN με MATLAB Διασύνδεση FRTRΝ με το MATLAB, τρόπος Β 1. Μέσω αρχείων MATLAB τύπου MEΧ 11

Διασύνδεση FRTRN με MATLAB Β. Τρόποι διασύνδεσης FRTRΝ με το MATLAB 1. Μέσω αρχείων MATLAB τύπου MEX Βήματα: 12

Διασύνδεση FRTRN με MATLAB 13

Διασύνδεση MATLAB με Fortran: Παράδειγμα sincall.f Γίνεται χρήση subroutine mexfunction (Gateway function) Δεν είναι μία ρουτίνα που καλείται αλλά σηματοδοτεί το σημείο επικοινωνίας της γλώσσας με το Matlab. Παρατίθεται ο κώδικας. Έχει παραληφθεί η δήλωση μεταβλητών Για να κάνουμε build τον κώδικά γράφουμε τα ακόλουθα στο command window: Mex sincall.f fill.f To build γίνεται μέσω του εγκατεστημένου compiler FORTRAN. Για να το τρέξουμε γράφουμε στo command window : >> sincall Το παραπάνω πρόγραμμα βρίσκεται στο χώρο εγκατάστασης του Matlab: matlabroot '/extern/examples/refbook/sincall.f'