8-bit και 64-bit FORTRAN 66 σε w10p64

Ηλεκτρονικά εξαρτήματα και ηλεκτρολογικό υλικό, θεωρία, πως λειτουργεί, που το βρίσκουμε, τεκμηρίωση (datasheets), βιβλιογραφία.
pez
Δημοσιεύσεις: 519
Εγγραφή: 03 Ιούλ 2016, 01:51
Ονομα: pez
Τοποθεσία: eu
Επικοινωνία:

37 - Εκτός Προγράμματος Συμπλήρωμα

Δημοσίευση από pez »

.
Δεν μου κάνει καρδιά να εγκαταλείψω το θέμα αυτό... Αλλά πριν
αναπόφευκτα το κάνω, ας πούμε και τα εξής:

- To ακριβές link προς τις νέες οδηγίες είναι:

http://www.cs.yorku.ca/~roumani/fortran/ftnOld.htm

- Θυμήθηκα γιατί παράτησα τον GNU compiler, εδώ μαζί και με τον ΕΜΧ:
λόγω των τεραστίων ΕΧΕ για το DOS -με τα floppies των 360 KB- που
παράγει, γεγονός που παραπέμπει στις σημερινές θηριώδεις αντιπαθητικές
παντόφλες που εκβράζουν οι "σύγχρονοι" Compilers.

- Έτσι με 37 bytes source, μόνον για την εκτύπωση του αριθμού 10,
συμπεριλαμβανομένου και του comment ένδειξης στηλών, τα EXE
που παράγονται, με το ΕΜΧ παρόν και με το EMX ενσωματωμένο,
είναι 114,282 και 131,076 bytes, αντιστοίχως...

- Τα ίδια, αν θυμάμαι καλά, συμβαίνουν και με τον OpenWatcom, αλλά
αυτό είναι άλλο ζήτημα που είναι όμως μέσα στο πρόγραμμα για να το
δούμε κάποια στιγμή.

- Τέλος, με το HTTRack, κατέβασα από το ως άνω, συμπαθητικά
συμμαζεμένο, εντυπωσιακά λιτό, μέρος του πανεπιστημιακού website,
όλα τα μαθήματα-εργαστήρια για την FORTRAN. Έτσι. Για να βρίσκονται.

: )
.

pez
Δημοσιεύσεις: 519
Εγγραφή: 03 Ιούλ 2016, 01:51
Ονομα: pez
Τοποθεσία: eu
Επικοινωνία:

38 - OPENWATCOM FORTRAN

Δημοσίευση από pez »

.
Κι έτσι ξαναφθάσαμε σχεδόν εκεί από όπου ξεκινήσαμε, δηλαδή στο:

http://openwatcom.org/

Αλλά έχει ftp server κι οι "μοντέρνοι" browsers απαξιούν να απασχοληθούν
κι έτσι εμείς ακούσαμε αυτά που σωστά εξακολουθούν να λένε στο USENET
group [alt.comp.freeware] και χρησιμοποιούμε τον WinSCP:

https://winscp.net/eng/download.php

οπότε αυτό που μας ενδιαφέρει εδώ είναι το "open-watcom-f77-dos-1.9.exe"
που βρίσκεται στο folder: install, από όπου το κατεβάσαμε και το
εγκαταστήσαμε. Όπως πάντα υπό το VirtualBox.

Εντάξει. Ακούγεται απλό. Αλλά την προπόνησή του την θέλει... : )

Μετά, ξανά τα ίδια test προγράμματα, κ.λπ. με αποτέλεσμα, για το περί ου
ο λόγος EXE, Bytes 81,056. Δηλαδή όπως το θυμόμασταν. Πολύ.
.

pez
Δημοσιεύσεις: 519
Εγγραφή: 03 Ιούλ 2016, 01:51
Ονομα: pez
Τοποθεσία: eu
Επικοινωνία:

39 - Επιχείρηση Intel oneAPI, με MS Visual Studio, για FORTRAN 66

Δημοσίευση από pez »

.
Ακολουθώντας μια υπόδειξη ξημερωθήκαμε στήνοντας έναν HD με W10P64
για να δούμε αν θα παίξει ο μακρύς συνδυασμός Free MS Visual Studio
Community Version με Free Intel OneAPI Fortran, η οποία όπως λέει:

"As of compiler version 16.0 (Intel® Parallel Studio XE 2016), the Intel®
Fortran Compiler Classic is fully compliant with the ISO/IEC 1539-1:2004
Fortran language standard (Fortran 2003 Language). Intel Fortran also
fully supports programs that conform to the earlier standards Fortran 95,
Fortran 90, FORTRAN 77 and FORTRAN IV (FORTRAN 66). In some cases,
compiler options may need to be specified to enable support of behavior
that was different in earlier versions of the Fortran standard."

Intel® Fortran Compiler Classic Support for Fortran language standards

: Ο

Θα 'χει γούστο...
.
Υστερόγραφον

= Γιατί άραγε να ασχολούνται τόσο πολύ σήμερα οι "μοντέρνοι" με τους
"αρχαίους";


- Απαντήσεις οσονούπω

: D
.
UPDATE - 6.7.2021 - Πραγματική Επιχείρηση. Μετά από 9 ώρες χθες,
το MS Visual Studio, που αποτελεί προϋπόθεση για το oneAPI, δεν
είχε καταφέρει να εγκατασταθεί, και η απόπειρα διεκόπη - αφήστε
που όπως όλα δείχνουν πρόκειται για τριανταδυάμπιτη ανάπτυξη...
Πέραν των αρνητικών αυτών της ms, αν κρίνουμε μόνον από ό,τι
λέει η Intel για την option f66 του compiler υποψιάζεται κανείς πως
αυτός o compiler Μπορεί να μην έχει ενσωματωμένες όλες τις εντολές
της FORTRAN 66... Οπότε αρχίζει και αναρωτιέται αν αξίζει καθόλου
όλος αυτός o κόπος - εφόσον βέβαια τα καταφέρει τελικά αυτό το
δικέφαλο θηρίο να παίξει...
.
UPDATE 2 - Λίγο αργότερα - Για το πολύ ενδιαφέρον -σε σχέση με τον
πυρήνα της αναζήτησής μας εδώ, δηλαδή την FORTRAN 66- αλλά
τεράστιο -2,683 σελίδες στην τρέχουσα έκδοσή του- manual -οι δύο
εκδόσεις του που κατεβάσαμε είναι σε SECURED PDF, ενώ αν και εκεί
μέσα επιβεβαιώνεται ότι πράγματι είναι 32-bit εφαρμογή (απλώς-και-
-μόνον από το γεγονός ότι από την πολλή αρχή λέει πως το manual θα
πρέπει να τοποθετηθεί σε sub-folder του folder \ Program Files (x86) \ ),
εν τούτοις η εφαρμογή αυτή παράγει πράγματι 64-bit κώδικα, ξεκινάμε
από εδώ:

Download Documentation: Intel® Compiler (Current and Previous)

.
UPDATE 3 - Μεσημέρι Προς Απόγευμα - Το Δίδυμο Εγκαταστάθηκε -
Επιτέλους ! = Καμιά Συμβουλή; - Ναι. Για να μην περιμένετε εναγωνίως
-κατεβεί-δεν-κατεβεί-και-θα-παίξει-δεν-θα-παίξει- με τις ώρες:

ΑΠΟΕΠΙΛΕΞΑΤΕ ΟΛΕΣ ΤΙΣ ΠΡΟΕΠΙΛΟΓΕΣ ΤΟΥ MS VISUAL STUDIO
.
UPDATE 4 - Μετά από αυτά φτιάξαμε το test project μας, ζητήσαμε
την option f66, μάς είπε πως δεν υπάρχει, ζητήσαμε να κάνει τέλος πάντων όποιο
compilation ξέρει να κάνει by default, μάς είπε πως δεν βρίσκει κάποιο rc.exe
μέσα στο path, ψάξαμε μέσα στον HD, σιγά να μην έψαχνε με αυτό το πάν-κακο
search που έχει το w10, αυτό κόλλησε, δεν ανταποκρινόταν, το κλείσαμε με τον
task manager, ανοίξαμε τις "συστημικές μεταβλητές", υπήρχαν κανονικά, βγήκαμε
στο διαδίκτυο, ψάξαμε και βρήκαμε το ασυναγώνιστο everything, και το
εγκαταστήσαμε, βρήκε στο πιτς φιτίλι όλα-όσα είχε από rc.exe, αλλά όλα αυτά
τελείωναν σε rc.exe ενώ μπροστά τους είχαν όλα κι άλλα, rc.exe δεν υπήρχε,
ρωτήσαμε στον google, είχε ένα link με κάποιον φουκαρά που έψαχνε από το 2015
αλλά είχε βρει άκρη, solved, πατήσαμε επάνω, μας πήγε στα fora της Intel
Community, μάς ζήτησαν εγγραφή, γραφτήκαμε, τέλος πάντων κάποια στιγμή μάς
είπαν πως χρειάζεται το Windows 10 SDK, γυρίσαμε στο MS Visual Studio Installer,
το ζητήσαμε, έβγαλε μερικές versions, διαλέξαμε την τελευταία, την κατέβασε,
~650 ΜΒ, ξανατρέξαμε το test, τώρα μας λέει πως δεν βρίσκει στο path το 'link',
σωστά, διότι -"αν είναι δυνατόν!"- link.exe δεν υπάρχει! Μάλλον όμως θα πρόκειται
για κάποια συντομογραφία αναλόγως περιπτώσεως περιβάλλοντος του exe που ΘΑ
δημιουργηθεί - καθότι files με κατάληξη 'link' βρίσκει το everything...

: D

Συνεχίζουμε να ψάχνουμε, με όλους αυτούς τους φουκαράδες, κι εμείς μαζί...
.
Προσθήκη - Μέσα σε όλη αυτή την αναμπουμπούλα ξέχασα να πω το καλύτερο,
πως δηλαδή όταν, μετά την -όποια, τέλος πάντων- εγκατάσταση του MS Visual
Studio, άρχισε κάποια στιγμή η εγκατάσταση του oneAPI, που θυμίζω αυτό ήταν
που ζήτησε το studio ως απαραίτητη προϋπόθεση, αυτό μάς δήλωσε ξεδιάντροπα,
αν και εντός παρενθέσεων, ότι το visual studio του είναι... optional!

: D)
.
UPDATE 5 - Ωπ! Ξέχασα να πω κι ότι κατά την πρώτη-πρώτη (μη) "εγκατάσταση"
του oneAPI με FORTRAN, αυτό μάς είπε πως δεν βρίσκει GPU "αλλά δεν πειράζει" θα
παίξει -μάλλον ο (beta) iFX 64-bit only compiler- με την CPU, οπότε κάπου είχαμε
παραπεταμένη μια κάρτα -περίπου 10 γιούρα, ευκαιρία, από το ebay- που έλεγε,
όπως έτσι θυμόμασταν, πως είχε CUDA GPU, την βρήκαμε και την βάλαμε, έγινε
λίγο μπάχαλο με τα W10, αλλά τέλος πάντων κάποια στιγμή -ευτυχώς- φάνηκαν,
εγκαταστήσαμε και πάλι το oneAPI FORTRAN, αυτή την φορά δεν παρατήρησε πως
δεν έχουμε GPU, παίξαμε για λίγο αλλά μετά, κι ενώ το είχαμε προσέξει πως αυτή
η κάρτα είχε γίνει "1" ξεχάσαμε να αλλάξουμε την προτεραιότητα στο BIOS, όπου,
"για κάποιον λόγο", μάλλον αυτόματα με την σύνδεση της κάρτας, ο Internal
Controller είχε γίνει Disabled, κι όπως απεδείχθη αργότερα, που ξανάκλεισε και πάλι
αλλά δεν άνοιγε με τίποτα, είχε -σωστά- εμφανισθεί στο BIOS και μια νέα επιλογή
αναφορικά με την προτεραιότητα των -τώρα δύο- controllers: "Internal" και "External",
κι έπρεπε να διαλέξουμε, και διαλέξαμε, φυσικά, ως Primary τον Internal, κι έτσι
όταν άνοιξε-restart-κλείσε, έπεσε τελικά μαύρο στην οθόνη και δεν έδειχνε με τίποτα,
θυμηθήκαμε κι ένα καλώδιο μετατροπής DisplayPort2VGA, που κάποια στιγμή για
να δούμε αν παίζει η εν λόγω κάρτα το αγοράσαμε και μάς στοίχισε τα υπέρδιπλα
από την ίδια την κάρτα, ενώσαμε την οθόνη, το μηχάνημα άνοιξε επιτέλους, αλλά
λόγω μουλωχτών εν τω μεταξύ αναβαθμίσεων, κατά την μακρόσυρτη εγκατάσταση
κάναμε, είχαμε πει να τα σταματήσουμε -για 7 μέρες- αλλά το ξεχάσαμε, δεν άνοιγε
τα multiple displays αν δεν συνδέαμε πραγματικά ακόμα ένα display, το όλον δύο,
οπότε κάποια στιγμή βρήκαμε άλλο ένα που μισοπαίζει και το συνδέσαμε, τα w10
δεν τους νοιάζει -ακόμα- αν δεν παίζει αρκεί να βρίσκεται εκεί, κι έτσι μόλις προ
ολίγου καταφέραμε και ορίσαμε στα settings του w10 σαν [v] Main Display το δικό
του "Internal" κι ας το βρίσκει με το Identity -πάντα και σταθερά καθ' όλη την διάρκεια
αυτής της απρόβλεπτης ταλαιπωρίας, ως έχον τον αριθμό "2" - και πού να πλακώσουν
όπου να ΄ναι (άρχισαν τις συστηματικές "διαρροές") και τα w11... [ 7.2021~16:00 cet:
Λάθος μας, η εκτίμηση για την αιτία του "2". Μόλις τώρα βρέθηκε λανθασμένη η
επιλογή μας στο BIOS για την προτεραιότητα των display controllers - πάνω στην
βιασύνη μας είχαμε ορίσει ως "Non-Boot" τον "Internal". Το διορθώσαμε -που πήγε να
μας τρελάνει- και τώρα λέει επιτέλους ολόσωστα: "1". ]


: D
.
Προσθήκη - Χμ... Κακό πράγμα η σύγχυση... Από το Χαώδες website της Intel,
ε λ π ί ζ ο υ μ ε πως αντί να ξανακατεβάσουμε το "Intel® oneAPI Base Toolkit",
κατεβάσαμε το "oneAPI High-Performance Computing", μόνον του, το οποίο
"complements the Intel® oneAPI Base Toolkit". Μακάρι. Σε λίγο θα ξέρουμε...

: )
.
UPDATE 6 - 7.7.2021 - 01:00
Λάθος κάναμε. Εντάξει. Κατεβάσαμε τώρα την Base. Την εγκαταστήσαμε.
Μάς έκανε εντύπωση ότι την περισσότερη ώρα την έκανε στην Python
-
[ μια γλώσσα για την οποία επίσης παρακολουθήσαμε ανελλιπώς τις
[ [παραδόσεις του μαθήματος "Προχωρημένα Θέματα Προγραμματισμού Η/Υ"
[ αλλά τα θέματα των εξετάσεων, που θα μπορούσαν να αποτελέσουν μια
[ καλή ευκαιρία για Άλλη Μια Μικρή Επίδειξη, ίσως δεν είναι δημοσίως
[ διαθέσιμα.Σε κάθε περίπτωση όμως αυτό είναι ένα ζήτημα που για μας
[ είναι ανοικτό και θα θέλαμε να επανέλθουμε.
-
αλλά όταν μετά από ώρα η εγκατάσταση ολοκληρώθηκε και προχωρήσαμε
στο TEST μας, διαπιστώσαμε ότι τίποτα ως προς τη λύση του προβλήματός
μας δεν είχε αλλάξει.

Δυστυχώς.

: (

.
UPDATE 7 - 7.7.2021 Μεσημέρι - Ξημερωθήκαμε - (1) Βεβαιότητες, την στιγμή
αυτή. Η community base είναι ισχνή, χειρότερη από εμάς τους νεοφώτιστους,
παραπλανά, παρά βοηθά. Οι οδηγίες κατά τις φάσεις εγκατάστασης εκπλήσσουν
με τις ασυνέπειες που παράγουν - π.χ. πέραν του κατόπιν εορτής αναφερθέντος
"optional" ms vs έχουμε και την απαίτηση για 4th+ generation Intel CPU προς
εγκατάσταση driver GPU οθόνης. (2) Πιθανολογίες. Φταίει ο Συνήθης Φταίχτης:
"το space της διαστροφής" μέσα στο όνομα "Program Files". = Και τώρα τι γίνεται;
- Ό,τι και πάντα. Απεγκατάσταση του δικεφάλου και, αντί της -λέμε τώρα-
"ανώνυμης" community, επώνυμη εγκατάσταση και της έκδοσης Enterprise του
MS Visual Studio - του Intel oneAPI ήταν ήδη επώνυμη. Πάμε για ώρες, "λόγω
κτηθείσης εμπειρίας", ολιγότερες. Κι όπως πάντα όταν την πατάμε: Σεβόμαστε
-τα εδώ ογκώδη και πολλά- manuals και δεν βαριόμαστε να τα συμβουλευόμαστε.
.
: )
.

pez
Δημοσιεύσεις: 519
Εγγραφή: 03 Ιούλ 2016, 01:51
Ονομα: pez
Τοποθεσία: eu
Επικοινωνία:

40 - Hello World! Από MS Visual Studio Enterprise C++

Δημοσίευση από pez »

.
Απεγκαταστήσαμε ΤΑ ΠΑΝΤΑ. Πήρε Ώρα.

Πήγαμε εδώ:

https://visualstudio.microsoft.com/

Διαλέξαμε

Download Visual Studio

και μετά

Enterprise 2019

-
Προσοχή! Μέχρις ΕΔΩ ΔΕΝ ΕΙΔΑΜΕ ΠΟΥΘΕΝΑ ΚΑΝΕΝΑ "Free Trial" - Αλλά
αλλού, μέσα στο site λέει - Έτσι, δεν θα ξαφνιαστούμε αν κάποια στιγμή
ξεπεταχτεί κανένα ξωτικό και μας τρομάξει: "Μέχρις Εδώ Ήταν!" - Θα
πρέπει να διαβάσουμε την άδεια - Αλλά όχι ακόμα - Αν γίνει, ΤΟΤΕ θα
πάμε στο Community - Άλλα μας απασχολούν εδώ : Η FORTRAN 66
-


Άρχισε το downloading και Installation και κάποια στιγμή διαλέξαμε και την
συνιστώσα του (που ξέραμε πως ύστερα θα την αποζητήσει το oneAPI):

[v] Desktop Development with C++

Ενώ αποεπιλέξαμε -λανθασμένα- όλες τις λοιπές προεπιλογές του κι ας
μας έλεγε να μην το κάνουμε... Εντάξει. Δεν ήταν ακριβώς Βλακεία μας
διότι θέλαμε να δούμε αν θα το έκανε αυτό που στα σοβαρά διατυμπάνιζε.
Πως δηλαδή ανά πάσα στιγμή μπορούμε να βάλουμε -και να βγάλουμε-
ό,τι άλλο θέλουμε -ή δεν θέλουμε- από όλα αυτά τα πολλά, τα πάρα πολλά,
που διαθέτει. Και όπως απεδείχθη, τουλάχιστον για εμάς, αυτό έκανε.

Έτσι, όταν ολοκληρώθηκε η εγκατάσταση, επιλέξαμε το εισαγωγικό project:

ConsoleApplication1.cpp

για Hello World! από Command Prompt των w10p64 της MS C++.

Το οποίο βεβαίως δεν χαιρέτησε με την πρώτη αφού, όπως είπαμε, εμείς
διαλέξαμε να μην βάλει όλα εκείνα που ο installer επέμενε να βάλει.

Οπότε, πήγαμε στον MS VS Installer, επιλέξαμε Modify, και αυτό ανοίξαμε
στα δεξιά όλα όσα είχε το MS VS μέχρι τότε εγκατεστημένα, κι έτσι είδαμε
ότι αυτά ήταν τα εξής:

Visual Studio Core Editor

Desktop Development with C++
Included
C++ core desktop=features

επιλέξαμε τα εξής -την στιγμή αυτή- Optional (συμβουλευόμενοι, βεβαίως,
και τα tips που άνοιγαν):

[v] MSVC v.142-VS2019 C++ χ64/χ86 build
[v] Windows 10 SDK (10.0.19041.0) (αν θυμόμαστε καλά, "θα ζητηθεί")
[v] Just-in-Time Debugger
[v] C++ CMake tools for Windows

Έκανε κάποια ώρα να τα κατεβάσει. Αλλά μετά -με 49,152 bytes exe- έπαιξε!

Hello World!

: D
.

pez
Δημοσιεύσεις: 519
Εγγραφή: 03 Ιούλ 2016, 01:51
Ονομα: pez
Τοποθεσία: eu
Επικοινωνία:

41 - Intel FORTRAN Compilers oneAPI

Δημοσίευση από pez »

.
Ακολουθήσαμε τα βήματα που έχουμε ΉΔΗ περιγράψει, εγκαταστήσαμε
τις Intel FORTRANs, φτιάξαμε ένα .FOR με "HELLO WORLD!" για console,
που ΕΠΙΤΕΛΟΥΣ έπαιξε τελικά και έβγαλε EXE με μέγεθος 43,520 bytes.

Οι λεπτομέρειες όμως είναι πάρα πολλές, κι εμείς πάρα πολύ κουρασμένοι
πια, για τις επαναλάβουμε τώρα εδώ.

= Συμπέρασμα;

- Το ίδιο. Περίπου. Ο ένας compiler, ο παλαιός, ο classic, βγάζει ΜΟΝΟΝ
32-bit εφαρμογές σε 2 παραλλαγές, για "παλαιές" μηχανές 32-bit και για
"νέες" μηχανές 64-bit με 32-bit emulation, κι άρα γενικώς εμάς μάς είναι
άχρηστος, αφού έχουμε τον free openwatcom, κι ο άλλος, ο νέος, βγάζει
MONON 64-bit εφαρμογές αλλά ως δηλωμένος beta εμάς μάς είναι άχρηστος
οπωσδήποτε, ως αμφιβόλου αξιοπιστίας.

: (

Απομένει το θέμα FORTRAN 66.

Πάμε να δούμε στα manuals ποιος από τους δύο έχει την option f66.
Αν την έχει ο νέος -όπως ελπίζουμε- τότε ούτε που θα ξανασχοληθούμε.
.

pez
Δημοσιεύσεις: 519
Εγγραφή: 03 Ιούλ 2016, 01:51
Ονομα: pez
Τοποθεσία: eu
Επικοινωνία:

42 - ΕΞΕ Πορταμπίλιτι και Βηματάκι-Βηματάκι προς την f66

Δημοσίευση από pez »

.
Όλη αυτή η εκτός ελέγχου σήμερα φασαρία ξεκίνησε το 1966 με τον Ευγενή
-όπως πάντα- Σκοπό "Interchangeability", που μάλλον γρήγορα έγινε "Portability".

"Με δυο λόγια" -λέμε τώρα- γράφεις εσύ, στο μηχάνημα που εσύ "έχεις"
(όπου "έχεις" = επέλεξες να χρησιμοποιείς), μέσα στο λειτουργικό σύστημα
που εσύ "έχεις", με το πρόγραμμα συγγραφής που εσύ "έχεις", ένα πρόγραμμα
SOURCE σε μια γλώσσα που εσύ "έχεις", με τα προγράμματα παραγωγής
εκτελέσιμου φακέλου που εσύ έχεις, εσύ παράγεις το ΕΧΕ του προγράμματός
σου, και αν εσύ το θέλεις τότε το προϊόν ΕΧΕ, του όλου αυτού συστήματός σου,
το μοιράζεσαι και με άλλους ενδιαφερόμενους, μεταξύ των οποίων, ας πούμε,
είμαι κι εγώ.

Βέβαια o Σκοπός της Πορταμπίλιτι αφορούσε το SOURCE παρά το EXE, αλλά
μέσα στην σύγχρονη Θεά Ευκολία αυτός ο Σκοπός έχει απωθηθεί στο
ασυνείδητο -ή όπου αλλού τέλος πάντων τον θέλουν να έχει πάει κι αυτός,
οι Περί την Ψυχήν τυρβάζοντες- ως ακόμα μία ενοχλητική φασαρία, η οποία
το μόνο αποτέλεσμα που μπορεί να επιφέρει είναι μια αφόρητη καθυστέρηση.

Παίρνω λοιπόν κι εγώ το προϊόν EXE της Εργασίας σου, με το μηχάνημα που
εγώ "έχω" (όπου "έχω" = επέλεξα να χρησιμοποιώ), μέσα στο λειτουργικό
σύστημα που εγώ "έχω" αλλά υπόσχεται πως είναι "συμβατό" με το δικό σου,
περιμένοντας πως θα τρέξει σαν να έτρεχε στο δικό σου μηχάνημα. Αν τρέξει,
τότε αποφαίνομαι πως το ΕΧΕ αυτό έχει την Ιερά Ιδιότητα της Πορταμπίλιτι
(στην πραγματικότητα μόνον από το σύστημα μεταξύ των δύο μηχανημάτων
και είμαι πανευτυχής που εγώ Κέρδισα τον Χρόνο που εσύ Έχασες. Μπορεί
μάλιστα να αισθανθώ ακόμα και Ευγνώμων! - Εξαρτάται.

Μέσα από αυτό το πρίσμα λοιπόν και πάντα μέσα στο θέμα μας ας δούμε αν
και πως μπορούμε να φθάσουμε στην πολυπόθητη FORTRAN 66 με το δίδυμο
(Microsoft Visual Studio) VS + FI (Fortran Intel).

- Όχι Βήμα-Βήμα αλλά Βηματάκι-Βηματάκι = Είναι δυνατόν; - Θα δούμε...

: )

Προετοιμασία

Στα παρακάτω:

> , <

σημαίνουν, γενικώς και αντιστοίχως:

"εγώ βάζω" , "η μηχανή βγάζει".

[ Σημείωση
[ Γνωρίζουμε πως υπάρχουν πιο σύντομες διαδικασίες,
[ αλλά ίσως λιγότερο κατανοητές, από αυτές που επιλέξαμε
[ ως κατωτέρω να περιγράψουμε

1
cmd64 : Ορίζω desktop shortcut προς την 64-bit Command Prompt

>|Start|Run...| explorer |Local Disk (C:)|
>|LeftClickClick|Windows|LeftClickClick|SysWOW64|cmd.exe|
>|RightClick|Create Shortcut|
<[Windows can't ... desktop instead?]
>[Yes]

>[desktop]
>|cmd.exe - Shortcut|RightClick|Rename| cmd64

2
VS : Ορίζω -δεν έβαλε!- desktop shortcut προς το Visual Studio 2109

>|Start|Programs|Visual Studio 2019|RightClick| 
>|Create Shortcut| 
<[Windows can't...desktop instead?] 
>[Yes]

>[desktop]
>|Visual Studio 2019|RightClick|Rename| VS

3
FORTRANI : Ορίζω folder εργασίας και desktop shortcut προς αυτό : FI

>|Start|Run...| explorer |Local Disk (C:)|
>|LeftClickClick|Right Click|New|Folder| FORTRANI

>|RightClick|Create Shortcut|
<[Windows can't ... desktop instead?]
>[Yes]

>[desktop]
>|FORTRANI - Shortcut|RightClick|Rename| FI

.
Τελευταία επεξεργασία από το μέλος pez την 08 Ιούλ 2021, 20:22, έχει επεξεργασθεί 1 φορά συνολικά.

pez
Δημοσιεύσεις: 519
Εγγραφή: 03 Ιούλ 2016, 01:51
Ονομα: pez
Τοποθεσία: eu
Επικοινωνία:

43 - Βήμα-Βήμα προς την f66

Δημοσίευση από pez »

.
Εν συνεχεία πάμε βήμα-βήμα:

4
> desktop 
> VS
< ανοίγει το παράθυρό του
> Continue without code - κάτω δεξιά 
> menu |File|New|Project...|
> |Fortran|Windows|Console|Empty Project|Next|
< [Project name] Console-κάτι - θέλει
> PRFOR1ST - αλλά εμείς ορίζουμε αυτό
< [Location] C:\Users\κάποιος\source\repos - θέλει
> C:\FORTRANI - αλλά εμείς ορίζουμε αυτό
< [Solution name] PRFOR1ST - έγραψε μόνο του πια
> [v] [Solution and...in same directory]
> [Create] - και στήνει το PRFOR1ST

5
> menu 
> |File|New|File|Inter (R) Fortran|Fortran Fixed-Form|Open

6
< Source1.for - θέλει 
> γράφουμε 
> C234567
>       PROGRAM FOR1ST
>       COMPLEX Z
>       Z=(1.0,2.0)
>       WRITE(*,*)Z,Z+Z
>       END

7
> menu 
> |File|Save Source1.for as...|
> C:\FORTRANI\PRFOR1ST\FOR1ST.for 
- αλλά εμείς ορίζουμε άλλο όνομα -
> |Save|

8
> menu 
> |View|Solution Explorer|Source Files|
> |RightClick|Add|Existing Item|FOR1ST.for[Add]

9
> στο παράθυρο: 
> [Debug] και από [x86] σε [x64]

10
> menu 
> |Project|PRFOR1ST|Properties|
>|Fortran|Language|
> Enable Fortran 66 Semantics|
> Από [No] σε [Yes(/f66)][OK]
> [ΟΚ]

11
> menu 
> |Build PRFOR1ST|

12
> [explorer]
> C:\FORTRANI\PRFOR1ST\x64\Debug
> Copy [desktop][cmd64] paste εκεί μέσα
> [cmd64]
> PRFOR1ST.EXE
< (1.000000,2.000000) (2.000000,4.000000)

13
> [explorer]
> C:\FORTRANI\PRFOR1ST\x64\Debug\BuildLog.htm


που επιστρέφει πληροφορίες για την διαδικασία μεταξύ των οποίων φαίνεται
καθαρά και η option της φασαρίας /f66

EXE size = 44,544 bytes

Και πάμε για τον έλεγχο της ΕΞΕ Πορταμπίλιτι...
.
Τελευταία επεξεργασία από το μέλος pez την 09 Ιούλ 2021, 15:31, έχει επεξεργασθεί 4 φορές συνολικά.

pez
Δημοσιεύσεις: 519
Εγγραφή: 03 Ιούλ 2016, 01:51
Ονομα: pez
Τοποθεσία: eu
Επικοινωνία:

44 - Χωρίς Σχόλια

Δημοσίευση από pez »

.
Η ανάπτυξη γίνεται σε pc δεύτερο χέρι δεκαετίας με cpu i7-3rdGen.
Αντιγράφουμε το ΕΧΕ μας στο root από στικάκι αλλάζοντας του και
το όνομα σε FORTRAN1ST.EXE, μεταφέρουμε το στικάκι σε AMD, όπου
και τρέχουμε το ΕΧΕ μας μέσα, βεβαίως, από command prompt:

Εικόνα

και παίρνουμε:

Εικόνα

πατάμε [OK] και παίρνουμε:

Εικόνα

ξαναπατάμε [OK], παίρνουμε:

Εικόνα

και το EXE σταματά.

Κουβαλάμε με το στικάκι τα 3 dlls στο root του, ξανατρέχουμε το ΕΧΕ και
παίρνουμε:

Εικόνα

πατάμε [ΟΚ] και σταματά.

Κουβαλάμε με το στικάκι το 4ο dll στο root, τρέχουμε και πάλι to ΕΧΕ και
επιτέλους τερματίζει ορθά γράφοντας το αντίστοιχο των 1+2j , 2+4j.

Μέγεθος folder, για να παίξει: 8,442,456 bytes.
.
Μετά από όλα αυτά ξέρουμε πια καλά τι μπορούμε να περιμένουμε και
πάμε να προετοιμάσουμε ένα πρόγραμμα για τον έλεγχο των όποιων
δυνατοτήτων FORTRAN 66 έχει το ζεύγος αυτό των compiler της Intel.
.
Τελευταία επεξεργασία από το μέλος pez την 09 Ιούλ 2021, 15:37, έχει επεξεργασθεί 1 φορά συνολικά.

pez
Δημοσιεύσεις: 519
Εγγραφή: 03 Ιούλ 2016, 01:51
Ονομα: pez
Τοποθεσία: eu
Επικοινωνία:

45 - FORTRAN 66; - Να πως!

Δημοσίευση από pez »

.
UPDATE - Το μεσημέρι - Αναδιατυπώσεις, Διορθώσεις, Προσθήκες

Έχουμε ήδη σκεφθεί -από την Πολλή Αρχή- πως αν η Full Standard
FORTRAN 77 (στα επόμενα, εμείς θα λέμε FullSet ενώ για την FORTRAN 77
θα λέμε εν συντομία: 77), που είναι και αυτή που μάς ενδιαφέρει, ΔΕΝ
κατάργησε καμία εντολή της FullSet Standard FORTRAN 66 (στα επόμενα:
66), και εμείς περιοριστούμε στην χρήση ΜΌΝΟΝ εκείνων των εντολών της
77 που υπάρχουν στην 66, τότε συντάσσοντας ένα πρόγραμμα σε έναν-
όποιον 77 compiler, θα είναι ωσάν να συντάσσουμε πρόγραμμα σε 66
compiler.

Έτσι, καθίσαμε και καταγράψαμε μία-μία, δεν είναι πολλές, τις εντολές
της 66 οι οποίες υπάρχουν "ονομαστικά" ΚΑΙ στην 77. Λοιπόν. Η 77
περιλαμβάνει -προσοχή! "ονομαστικά"- ΌΛΕΣ τις εντολές της 66. Οπότε,
θα πρέπει να δούμε αν τις συμπεριλαμβάνει και "η δική μας" OPENWATCOM
-αν και μπορούμε από τώρα να προεξοφλήσουμε πως ναι, τις
συμπεριλαμβάνει, εν τούτοις την οριστική διαπίστωση την "αναβάλουμε
για αργότερα".

Ωραία!

= Και τότε γιατί θα πρέπει να προσέξουμε;

Διότι η FORTRAN περιέχει και εντολές που δεν χαρακτηρίζονται με ένα και
μόνον όνομα αλλά εντολές που περιμένουν να δώσουμε και άλλα στοιχεία,
π.χ. αριθμούς, για να είναι πλήρεις, δηλαδή ορθές, οπότε, όλα αυτά: όνομα
εντολής ΚΑΙ άλλα στοιχεία θα πρέπει να μπουν σε μια καθορισμένη σειρά,
πάνω στην νοητή γραμμή της δυτικής γραφής από αριστερά προς τα δεξιά,
να "συνταχθούν" δηλαδή πάνω σε μια σειρά, τι θα βάζουμε πρώτα και τι
μετά από αυτό κ.λπ., εντελώς προκαθορισμένα, κι έτσι ναι μεν πολύ εντάξει
είμαστε που όλα τα ονόματα της 66 είναι και ονόματα της 77 αλλά αυτό δεν
μας αρκεί, διότι εκείνες οι εντολές που έχουν ανάγκη σύνταξης θα πρέπει
να συμπίπτουν και "συντακτικά". Κι αυτό είναι ακόμα ένα ζήτημα για την
"δική μας" OPENWATCOM, που επίσης το "αναβάλλουμε για αργότερα".

Όμως, δεν τελειώσαμε. Διότι ακόμα κι αν ονομαστικά, κι αν πρέπει και
συντακτικά, μια 77 εντολή ταυτίζεται με μια 66 εντολή, θα πρέπει να
αναρωτηθούμε αν παίζουν και οι δύο το ίδιο, αν η λειτουργία τους είναι
ταυτόσημη, αν δηλαδή έχουν ακριβώς την ίδια σημασία, αν σημαίνουν
το ίδιο, αν είναι όπως λένε και "σημαντικά" (κακή μετάφραση του
semantics) ίδιες. Κι εδώ είναι που "τα πράγματα", δυστυχώς, "χαλνάνε"
Διότι υπάρχουν μερικές εντολές με το ίδιο όνομα, και την ίδια σύνταξη,
που όμως είναι διαφορετικές στην λειτουργία, διαφέρουν σημασιολογικά,
"σημαντικά".

= Και τώρα τι γίνεται;

- Τώρα θυμόμαστε την ύπαρξη της option f66 !

Που η χρήση της έχει σαν συνέπεια να αναπροσαρμόσει την συμπεριφορά
μιας τέτοιας εντολή της 77 και να την κάνει ΙΔΙΑ με εκείνη που έχει
η ονομαστικά, και σημαντικά, ίδια της 66.

= Ώστε λοιπόν γι αυτό αναζητούσαμε έναν compiler με δυνατότητα "f66";

- Μάλιστα. Και βρήκαμε έναν. Άρα τώρα μπορούμε να προχωρήσουμε
πρακτικά "επί πραγματικής βάσεως" παύοντας να έχουμε την αίσθηση
πως θεωρητικολογούμε χωρίς κανένα πρακτικό νόημα "για ένα οριστικά
χαμένο παρελθόν".

: )

Βέβαια, αν δεν προσέξουμε και συμπεριλάβουμε στο πρόγραμμά μας και
εντολές της 77 που δεν υπάρχουν στην 66, και ο compiler δεν διαθέτει μία,
"ισχυρή" θα την λέγαμε, επιλογή f66 που να μας προειδοποιεί με σχετικά
μηνύματα, warnings, για την παρουσία στο πρόγραμμά μας, εντολών που
ΔΕΝ είναι 66, τότε θα προκύψουν "κάποιες δυσκολίες", δεδομένου ότι η
ευθύνη της σύνταξης προγράμματος σε 66 θα είναι ολόκληρη δική μας,
αποκλειστικά, δηλαδή, του προγραμματιστή. Οπότε, απαιτείται σχετικός
έλεγχος για την "ισχύ" αυτού του f66, ο οποίος επίσης "αναβάλλεται για
αργότερα".

Ας αναφέρουμε λοιπόν τώρα ποιες είναι οι ονομαστικές εντολές της FullSet
66. Λοιπόν. Αλφαβητικά είναι οι ακόλουθες - και με την ευκαιρία να δούμε
και ποιες από αυτές ΔΕΝ περιλαμβάνονται στην Subset 66 (που εμείς το
γράφουμε, για να το τονίσουμε, SubSet 66) έτσι ώστε να εκτιμήσουμε τι
"εκφραστικές δυνατότητες", όπως τις λένε, ΚΕΡΔΙΖΟΥΜΕ αν προσέξουμε
και διαλέξουμε compiler FullSet 77, άρα κατά τα ανωτέρω και FullSet 66,
χρωματίζοντας και υπογραμμίζοντάς τες - δηλαδή, οι "λοιπές" εντολές είναι
οι ονομαστικά κοινές εντολές και σε FullSet 77-66 και σε SubSet 77-66:

ASSIGN - BACKSPACE - BLOCKDATA - CALL - COMMON - COMPLEX - CONTINUE
DATA - DIMENSION - DO - DOUBLE PRECISION - END - ENDFILE - EQUIVALENCE
EXTERNAL - FORMAT - FUNCTION - GOTO - GOTO assigned - GOTO computed
IF arithmetic - IF logical - LOGICAL - INTEGER - PAUSE - READ - REAL - RETURN
REWIND - STOP - SUBROUTINE - WRITE - Assignment Statements - Statement
Functions

Αυτά.
.

pez
Δημοσιεύσεις: 519
Εγγραφή: 03 Ιούλ 2016, 01:51
Ονομα: pez
Τοποθεσία: eu
Επικοινωνία:

46 - Τρεις Παρατηρήσεις για τα Προηγούμενα

Δημοσίευση από pez »

.
1
Πρώτ-απ-όλα, οφείλουμε να αναφέρουμε εδώ ότι οι δύο τελευταίες
κατηγορίες εντολών -μάλλον, παρά συγκεκριμένες εντολές- της λίστας
εντολών της 66 του προηγουμένου μηνύματος, ήτοι οι: "Assignment
Statements" και "Statement Functions", προέρχονται από σχετική υπόδειξη
του κλειστού paper:

A.M. Gorelik, Statements, data types and intrinsic procedures in the Fortran
standards (1966-2008)", ACM Fortran Forum, December 2014, 33, 3

2
Και τώρα, που μόλις το γράψαμε κι αυτό, θυμηθήκαμε να πούμε, και είναι
κατάλληλο το σημείο αυτό για να πούμε, ότι μετά από ένα πρώτο έλεγχο
που είχε γίνει πέρυσι, προέκυψε ότι οι "intrinsic procedures" -λέγε "internal
functions"- της 66 μπορεί να ΜΗΝ συμπίπτουν -μάλλον περισσότερο από
αρκετά- με εκείνες της 77, αλλά κρίνουμε ότι το γεγονός αυτό οπωσδήποτε
ΔΕΝ αποτελεί εμπόδιο στην μελέτη της "καθαρής" γλώσσας, αφού ΚΑΘΕ
γλώσσα θα έχει κάποιες τέτοιες, συγκεκριμένες, περισσότερες ή ολιγότερες,
internal functions για να διευκολύνει και τον γρήγορο προγραμματισμό, και
την γρήγορη εκτέλεση των προγραμμάτων.

3
Εν τω μεταξύ όμως, διαβάσαμε σχετικώς στο manual και εφαρμόσαμε στο
δοκιμαστικό μας πρόγραμμα την υπόδειξη της ενσωμάτωσης στο EXE των
απαραιτήτων static libraries, αντί της παράθεσης των 4 dlls, του
προ-προηγουμένου μηνύματος 44 - αντιστοίχως δηλαδή με τον DOS Extender
EMX στην δοκιμή μας της g77 για DOS. Αποτέλεσμα για το w10p64 console ΕΧΕ:

1,878,016 bytes τώρα, αντί των προηγουμένως bytes 8,442,456.

Πολλά. Ό,τι κι αν πεις. Πάρα πολλά. Αλλά, εν πάση περιπτώσει, δεν είναι εδώ
αυτό το θέμα μας.
.

Απάντηση

Επιστροφή στο “Υλικό, εξαρτήματα, βιβλιογραφία”