מבוא לתכנות של קבוצת בטא/המדריך המהיר של עופר לשפת פורטרן/המדריך המהיר של עופר לFORTRAN77
למה FORTRAN באותיות גדולות?
[עריכה]כי היסטורית כותבים תוכנות FORTRAN באותיות גדולות. אולי פעם לא היו אותיות קטנות. לא שלפורטרן אכפת, היא לא case sensitive, אז אנשים למעשה כותבים איך שבא להם, אבל אנחנו נשמור על המסורת.
תצורה מקובעת ותצורה חופשית
[עריכה]פורטרן במקור נכתבה כך שדברים קבועים מגיעים בעמודות קבועות, ואם משהו זז מהעמודה שלו אז המחשב כועס. רק בפורטרן 90 שינו את ההגדרה והיה אפשר לכתוב בכל עמודה, כמו בכל שפת תכנות מודרנית. אז את פורטרן 77 נכתוב בתצורה הקבועה.
אבל קודם נבין איך מקמפלים פורטרן.
hello world וקומפילציה
[עריכה]-- להשלים --
סיומת קובץ
[עריכה]gfortran מזהה סיומת קובץ f. כקובץ פורטרן בתצורה מקובעת (fixed form) וסיומת f90. כקובץ פורטרן בתצורה חופשית, פשוט כי התצורה החופשית הוגדרה בפורטרן 90. אלו שתי הסיומות האפשריות, אין להם קשר לסטנדרט שלפיו כתוב הקוד, אלא רק לשאלת המבנה החופשי/קבוע.
לומדים FORTRAN77
[עריכה]דוגמה ראשונה, תוכנה לחישוב היקף מעגל:
PROGRAM CIRCLE
REAL R, AREA
C THIS IS FORTRAN77 CODE
WRITE (*,*) 'RADIUS PLEASE:'
READ (*,*) R
AREA = 2*3.14159*R
WRITE (*,*) 'PERIMETER= ', PERIMETER
STOP
END
כן, זה לא נראה כמו שום דבר שאתם מכירים, אם כי Haskell יותר חייזרית.
בואו נתחיל.
חוקים בסיסיים ומוזרים
[עריכה]המבנה המקובע - אתם לא כותבים איך שבא לכם
[עריכה]שורות קוד בFORTRAN77 מתחילות בעמודה 7. זה החוק, לא שואלים שאלות.
עוד כמה דברים מתחילים במקומות מוגדרים מראש, כי FORTRAN77 נכתבה במקור בעזרת כרטיסים מחוררים. לא כיף, אל תנסו בבית.
התרגלתם? יופי. עוד קצת חוקים:
- 5 העמודות הראשונות הן בשביל מספרי שורות, או תויות אחרות. (בעמודה 1, אפשר לשים גם C אם רוצים שהשורה תהיה הערה.)
- העמודה ה-6 משמשת לסימון של המשך משורה קודמת.
- עמודות 7-72 הן בשביל הקוד שלכם.
- עמודות 73-80 הן לא בשביל הקוד שלכם. הן בשביל מספר סידורי שאף אחד לא משתמש בו.
- אין עמודות מעבר ל80. המסך הירוק המהבהב שלכם ב1977 נגמר בעמודה 80.
הערות
[עריכה]מתחילות עם c, בעמודה הראשונה.
PROGRAM HELLO
c THIS IS A COMMENT
STOP
END
רוצים הערות בהמשך הקוד ולא רק בשורה משל עצמן?
אז תרצו. אין.
טוב, יש, אבל אל תגלו לסטנדרט של FORTRAN77. מסתבר שאם שמים סימן קריאה במקום כלשהו בשורה כל שאר השורה תיחשב הערה, אבל זה לא בסטנדרט! זה רק משהו שמימשו בכמה קומפיילרי פורטרן. זה כן יהפוך לסטנדרט בFortran90.
המשך משורה קודמת
[עריכה]אם צריך לפרק שורה לכמה שורות, כי הגענו לעמודה 62 השם ירחם וזה הרי קצה העולם, אז בשורה הבאה שמים משהו בעמודה 6, והופ זה נחשב המשך השורה. כן, קראתם נכון, אפשר לשים שם מה שבא לנו. אבל מקובל לשים סימן +, או &, או מספר שמראה איזה חלק זה. הנה הדגמה של שיטות המשך השורה:
PROGRAM HELLO
REAL FOO, BAR
FOO = 2
+ *3
& +2
BAR = 5
2 *2
3 +4
STOP
END
עצירה
[עריכה]כותבים stop בסוף.
אמנם התוכנה אמורה גם ככה לעצור כשהיא מסתיימת, אבל אמור זה שם של דג, אז אל תתעסקו עם FORTRAN77, שימו שם stop.
משתנים
[עריכה]- שמות משתנים יהיו מקסימום 6 אותיות. בהצלחה עם זה.
- שם משתנה לא יכול להיות עם אותו שם של התוכנה.
structs
[עריכה]אין. תחזרו ב1990.
רווחים
[עריכה]פורטרן 77 מתעלמת מרווחים. מבחינתה כל הרווחים היו יכולים להיעלם מהתוכנה, והיה לה סבבה עם זה. כמובן שאם בן אדם יצטרך לקרוא את זה הוא יברח בצרחות, אבל ממתי אכפת לפורטרן 77 מבני אדם.
אגב, אפשר גם להוסיף רווחים וזה לא יזיז לפורטרן.
הקצאה דינמית
[עריכה]הקצאה דינמית זה לחלשים. בFORTRAN77 יש רק הקצאה סטטית.
רוצים עוד זיכרון? ב1977 זיכרון עלה כמו הבית שלכם. שבו בשקט ותסתדרו עם הזיכרון שהקציתם כבר.