Privacy Policy Cookie Policy Terms and Conditions FORTRAN - Βικιπαίδεια

FORTRAN

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια

Η γλώσσα FORTRAN (από τα αρχικά FORmulae TRANslator - μεταφραστής τύπων) είναι μία από τις πρώτες γλώσσες υψηλού επιπέδου, η οποία χρησιμοποιήθηκε κυρίως σε επιστημονικές αλλά και σε εμπορικές εφαρμογές. Δημιουργήθηκε τη δεκαετία του 1950 από την ΙΒΜ και χρησιμοποιείται μέχρι και σήμερα. Αρχικά η FORTRAN ήταν προσανατολισμένη στην επίλυση μαθηματικών προβλημάτων.

Πίνακας περιεχομένων

[Επεξεργασία] Εκδόσεις

Υπάρχουν οι εξής 5 τυποποιημένες εκδόσεις της FORTRAN:

  • FORTRAN-66
  • FORTRAN-77
  • FORTRAN-90
  • FORTRAN-95
  • FORTRAN 2003

Βάση για την περιγραφή της FORTRAN παρακάτω θα είναι η έκδοση FORTRAN-77.

[Επεξεργασία] Αλφάβητο

Ένα πρόγραμμα γραμμένο σε έκδοση της FORTRAN μέχρι και την FORTRAN-77 μπορεί να χρησιμοποιήσει οποιουσδήποτε από τους εξής χαρακτήρες:

  • Τα 26 κεφαλαία γράμματα του αγγλικού αλφαβήτου: A, B, ..., Z
  • Τους 10 αραβικούς αριθμούς: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  • Τους 12 ειδικούς χαρακτήρες: + - * / = ( ) ' . , $ :
  • Το κενό διάστημα.

Από την έκδοση FORTRAN-90 και μετά, προστέθηκαν επιπλέον ειδικοί χαρακτήρες:

  • ! " & ; < > ?
  • Τα 26 μικρά γράμματα του αγγλικού αλφαβήτου: a, b, ..., z

[Επεξεργασία] Τύποι εντολών

Οι εντολές της FORTRAN-77 είναι δηλωτικές ή εκτελέσιμες:

[Επεξεργασία] Δηλωτικές εντολές

PROGRAM, FUNCTION, SUBROUTINE, BLOCKDATA
IMPLICIT
PARAMETER
INTEGER, REAL, DOUBLEPRECISION, COMPLEX, LOGICAL, CHARACTER
DIMENSION
COMMON, EQUIVALENCE
EXTERNAL, INTRINSIC, ENTRY
Ορισμός συνάρτησης – πρότασης
SAVE
DATA
FORMAT

[Επεξεργασία] Δηλωτική εντολή τέλους κειμένου προγράμματος

END

[Επεξεργασία] Εκτελέσιμες εντολές

OPEN, CLOSE, INQUIRE, READ, WRITE, PRINT, PUNCH
REWIND, BACKSPACE, ENDFILE
(προσάρτηση τιμής) =
ASSIGN .. TO
προσαρτημένο GOTO, χωρίς συνθήκη GOTO, υπολογιζόμενο GOTO
αριθμητικό IF, λογικό IF, IF .. THEN .. ELSEIF .. ELSE .. ENDIF
DO .. CONTINUE
CALL, RETURN
PAUSE, STOP

Σε επόμενη έκδοση της γλώσσας προστέθηκαν :END DO, WHILE.

[Επεξεργασία] Κατηγορίες εντολών

Οι εντολές της FORTRAN-77 κατατάσσονται σε 4 κατηγορίες:

  • Εντολές εκχώρησης ή αντικατάστασης (assignment statements)
  • Εντολές εισόδου/εξόδου (input/output statements)
  • Εντολές ελέγχου και λογικής (control statements)
  • Πληροφοριακές εντολές και εντολές οργάνωσης (specification statements)

[Επεξεργασία] Δομή προγραμμάτων

[Επεξεργασία] Κατά στήλες

Ένα αρχείο που περιέχει ένα πρόγραμμα FORTRAN χωρίζεται νοητά σε τρεις ομάδες στηλών:

  • Η πρώτη ομάδα, που περιέχει τις στήλες 1-6, χρησιμοποιείται για την εισαγωγή των συμβόλων σχολίων (* και c), των αριθμών εντολών και χαρακτήρων συνέχισης γραμμής. Ειδικότερα:
  1. Τα σύμβολα * ή c είναι προαιρετικά και εισάγονται στην πρώτη στήλη. Ο μεταγλωττιστής αναγωρίζει έτσι την αντίστοιχη γραμμή ως σχόλιο, και την προσπερνάει. Τα σχόλια δεν έχουν επίδραση στον εκτελέσιμο κώδικα, αλλά βοηθάνε τον προγραμματιστή στην κατανόηση και εκσφαλμάτωση του προγράμματος.
  2. Οι αριθμοί εντολών είναι προαιρετικοί 5-ψήφιοι αριθμοί, που εισάγονται στις στήλες 1 ως 5. Είναι χρήσιμοι για εντολές ανακατεύθυνσης της ροής του προγράμματος, αν και σπάνια πια χρησιμοποιούνται μετά την εισαγωγή της έννοιας του δομημένου προγραμματισμού.
  3. Ένας οποιοσδήποτε χαρακτήρας, εκτός του κενού διαστήματος και του μηδέν, υποδεικνύει στον μεταγλωττιστή ότι η αντίστοιχη γραμμή είναι συνέχεια της προηγούμενης. Καθίσταται έτσι δυνατή η συνέχιση μιας πολύ μεγάλης εντολής σε περισσότερες της μίας γραμμής. Ο μέγιστος αριθμός γραμμών για μια εντολή είναι 40.
  • Στην δεύτερη, κύρια ομάδα στηλών 7-72, εισάγονται οι εντολές της FORTRAN.
  • Τέλος η τρίτη ομάδα, στήλες 73-80, περιέχει κείμενο που αγνοείται από τον μεταγγλωτιστή, εκτός αν πρόκειται για δεδομένα του προγράμματος.

Σημείωση: Στην FORTRAN-90, δεν υπάρχουν οι περιορισμοί των ομάδων στηλών 7-72 και 73-80. Κάθε γραμμή έχει 132 χαρακτήρες. Η συνέχιση γραμμής γίνεται με τον χαρακτήρα &. Επίσης τα σχόλια γίνονται με την τοποθέτηση του συμβόλου ! σε οποιαδήποτε στήλη, ακολουθούμενο από το σχόλιο.

[Επεξεργασία] Κατά γραμμές

Ένα πρόγραμμα FORTRAN μπορεί επίσης να χωριστεί κατά 4 τμήματα ως εξής:

[Επεξεργασία] Επικεφαλίδα (heading)

H επικεφαλίδα σε ένα πρόγραμμα είναι προαιρετική και εισάγεται στην πρώτη γραμμή. Προσδιορίζει την αρχή του προγράμματος και το όνομά του. Έχει την εξής συγκεκριμένη μορφή:

PROGRAM [όνομα προγράμματος]

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

[Επεξεργασία] Τεκμηρίωση (documentation)

Ακολουθεί η τεκμηρίωση. Είναι επίσης προαιρετικό τμήμα, το οποίο περιέχει σχόλια σχετικά με το πρόγραμμα, όπως:

  • Σκοπό του προγράμματος,
  • Σημασία των διαφόρων μεταβλητών,
  • Πληροφορίες για την είσοδο/έξοδο του προγράμματος,
  • Περιγραφή τυχόν τυποποιημένων αλγορίθμων,
  • Όνομα/ονόματα προγραμματιστή/προγραμματιστών,
  • Ημερομηνία σύνταξης, τροποποίησης, κ.τ.λ.

Σχόλια τεκμηρίωσης μπορεί να βρίσκονται και ανάμεσα από τις εκτελέσιμες εντολές.

[Επεξεργασία] Τμήμα προδιαγραφών/Τμήμα δηλώσεων (specification part)

Στο τμήμα προδιαγραφών/δηλώσεων δηλώνονται τα ονόματα και οι τύποι των μεταβλητών ή των σταθερών που θα χρησιμοποιηθούν, οι πίνακες, κ.τ.λ.. Οι δηλωτικές εντολές γράφονται όλες πριν από τις εκτελέσιμες εντολές. (Εξαίρεση είναι η εντολή ENTRY).

[Επεξεργασία] Εκτελέσιμο τμήμα (execution part)

Τέλος, το σημαντικότερο τμήμα είναι το εκτελέσιμο. Περιέχει τις εκτελέσιμες εντολές, με τις οποίες τα δεδομένα της εισόδου μετατρέπονται σε αποτελέσματα.

[Επεξεργασία] Τέλος του προγράμματος

Το τέλος του προγράμματος δηλώνεται με την εντολή END.

[Επεξεργασία] Βιβλιογραφία

  • "Εισαγωγή στους Υπολογιστές ΙΙ, Πανεπιστημιακές Παραδόσεις", 5η έκδοση, Μιχαήλ Κουκιάς & Ευάγγελος Δερματάς, Πάτρα 2005

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu