ฉันควรเรียนรู้ Fortran เวอร์ชันใด


17

ฉันเป็นนักเรียนวิศวกรรมเครื่องกลที่สนใจในสาขาวิศวกรรมการบินและอวกาศที่ฉันบอกว่า Fortran ยังคงใช้กันทั่วไป

Fortran รุ่นใดที่ฉันควรใช้เวลาในการเรียนรู้


ไม่คุ้มค่ากับคำตอบเต็มรูปแบบ แต่ก็คุ้มค่าที่จะต้องทราบว่าคอมไพเลอร์สนับสนุนฟีเจอร์ Fortran ล่าสุดที่ ขาดหายไปอย่างรุนแรง ดูfortranwiki.org/fortran/show/Fortran+2003+statusและfortranwiki.org/fortran/show/Fortran+2008+statusฉันเริ่มต้นด้วย 90/95 และทำงานไปข้างหน้าตามที่ต้องการ
Doug Lipinski

การเขียนความคิดบางอย่างเกี่ยวกับเรื่องนี้โปรดดูstackoverflow.com/questions/953869/... stackoverflow.com/questions/3549702/...ถ้ามันสามารถใช้บางส่วน นอกเหนือจากข้างต้นฉันขอแนะนำ F90 แล้วเรียนรู้คุณสมบัติตามที่คุณต้องการ
โกง

1
โปรดทราบว่า Matlab มาจาก Fortran จากความคิดเห็นของคุณฉันขอแนะนำให้คุณประเมินตัวเลือกนี้
Dennis Jaheruddin

2
คุณควรเรียนรู้การหยุดFortranเต็มรูปแบบหรือไม่? นี่อาจเป็นไปตามปริมาณของรหัสดั้งเดิมที่คุณต้องใช้ - ซึ่งจะกำหนดเวอร์ชันของ Fortran ที่คุณควรเรียนรู้ด้วย
ดาเมียน

คำตอบ:


27

เป็นชื่อเรียกผิดที่นิยมว่ามี "รุ่น" ของ Fortran ที่ต้องรู้ ด้วยข้อยกเว้นที่หาได้ยากมาตรฐาน Fortran ล่าสุด (และคอมไพเลอร์) จะรักษาความเข้ากันได้ย้อนหลังได้อย่างยอดเยี่ยมกับมาตรฐานเก่า นี่คือเหตุผลที่ดี: มีไม่กี่คนที่จะใช้ Fortran ในวันนี้ถ้าไม่ใช่เพราะรหัสดั้งเดิมขนาดใหญ่ที่ยังใช้งานอยู่ กล่าวคือรหัส Fortran77 ที่เป็นไปตามมาตรฐานเกือบจะยังคงใช้งานได้กับคอมไพเลอร์ล่าสุด

คุณควรเรียนรู้การใช้ภาษาที่ทันสมัยที่สุดที่มีให้ F2008 อาจไม่ได้เพิ่มสิ่งที่น่ากลัวสำหรับผู้เริ่มต้น แต่การแนะนำแนวคิดเชิงวัตถุของ F2003 เป็นเรื่องใหญ่แน่นอน "Modern Fortran Explained" เป็นจุดเริ่มต้นที่ดีและ "การออกแบบซอฟต์แวร์ทางวิทยาศาสตร์: The Object Oriented Way" ก็ค่อนข้างดีสำหรับการเรียนรู้ที่จะนำมันไปใช้จริง

ในทางปฏิบัติหากคุณกำลังจะใช้รหัสดั้งเดิม (พูดว่า F77 หรือก่อนหน้านี้) ในบางจุดคุณจะต้องเรียนรู้บางสิ่งที่พวกเขาทำเพราะขาดคุณสมบัติ F90 + ตัวอย่างเช่นหากคุณกำลังเขียนโค้ด Fortran สำหรับบางสิ่งคุณไม่ควรใช้สิ่งที่เรียกว่า "บล็อกทั่วไป" แต่คุณจะเห็นรหัสเหล่านี้ปรากฏเป็นรหัส F77 อย่างสม่ำเสมอซึ่งคุณอาจต้องใช้

ฉันจะไม่แนะนำให้ใครบางคนเริ่มทำงานใน Fortran โดยที่ฟีเจอร์ชุด F90 / 95 เป็นอย่างน้อย

ที่กล่าวว่าหากคุณไม่มีความเชี่ยวชาญในการเขียนโปรแกรมในภาษาอื่น ๆ คุณอาจพบว่าฉันทามติที่ Fortran ไม่ใช่ภาษาที่ดีที่สุดในการเรียนรู้เป็นคนแรกของคุณแม้ว่าคุณจะไปตามอวกาศ (และฉันบอกว่าเป็นคนในวงการอากาศยานที่ใช้ Fortran เป็นประจำและใช้เป็นภาษาแรกของฉัน)


2
+1 "ฉันจะไม่แนะนำให้ใครบางคนเริ่มทำงานใน Fortran โดยที่ฟีเจอร์ชุด F90 / 95 เป็นอย่างน้อย" . ฉันสองที่ เริ่มต้นด้วย F90 เรียนรู้คุณสมบัติพื้นฐานฝึกสองสามโปรแกรมแล้วเลื่อนไปยังรุ่นที่ใหม่กว่า
Tymric

หากไม่ใช่ฟอร์แทรนภาษาใดที่ควรค่าแก่การเรียนรู้และจะนำไปใช้ในทางวิศวกรรมได้จริง? Matlab เป็นอย่างไร ฉันต้องการมันสำหรับหลักสูตรที่กำลังเรียนเทอมหน้า
user26358

@ user26358 Python สำหรับการเขียนโปรแกรมวัตถุประสงค์ทั่วไปมันมีแรงฉุดมากมายในแวดวงวิทยาศาสตร์ R สำหรับการวิเคราะห์ทางสถิติ MATLAB, Mathematica หรือ Maple (ไม่ว่าคุณจะใช้คลาสใด) สำหรับการคำนวณเชิงตัวเลข SQL สำหรับฐานข้อมูลเชิงสัมพันธ์ Javascript สำหรับเว็บต่างๆและเพราะมันกลายเป็นภาษากลาง ฉันจะไม่รบกวน Fortran จนกว่าหนึ่งในนั้นจะไม่สามารถทำงานได้สำเร็จมันไม่ใช่ภาษาที่น่าพอใจที่จะเรียนรู้ในฐานะคนแรกของคุณ
Schwern

@Aurelius ฉันเห็นด้วยกับย่อหน้าสุดท้ายของคุณ ฉันเชื่อว่าวิธีที่ถูกต้องในการเรียนรู้การเขียนโปรแกรมทางวิทยาศาสตร์เป็นสิ่งที่ตรงกันข้ามกับที่ฉันได้รับ: python-> C ++ และในกรณีที่คุณต้องการ Fortran
Nicola Cavallini

@ user26358 Matlab เป็นสิ่งที่ดีและคุณอาจจะใช้มันในโรงเรียนมาก Python เป็นสถานที่ที่ดีในการเริ่มต้นด้วยการเขียนโปรแกรมวัตถุประสงค์ทั่วไปและโมดูล numpy / scipy สามารถทำสิ่งต่าง ๆ ส่วนใหญ่ที่คุณอาจกำลังทำใน Matlab และเป็นสถานที่ที่ดีในการเรียนรู้พื้นฐานการเขียนซอฟต์แวร์ คุณควรมีภาษาที่รวบรวมอย่างน้อยหนึ่งภาษาภายใต้เข็มขัดของคุณด้วย C ++ จะเป็นตัวเลือกยอดนิยม
Aurelius

1

ฉันไม่เห็นด้วยกับคุณทั้งคู่ C ++ และ Python ยังไม่ได้รับการปรับให้เหมาะกับ FORTRAN ฉันเห็นด้วยอย่างแน่นอนว่า FORTRAN 90/95 นั้นน้อยที่สุด อย่างไรก็ตามมันจะมีประโยชน์เสมอในการใช้เวอร์ชั่นที่ทันสมัยกว่านี้ ความท้าทายของ FORTRAN คือถ้าคุณเรียนรู้มาก่อนที่คุณจะเรียนรู้ภาษาเชิงวัตถุมันง่ายที่จะเข้าใจ มันยากมากที่จะเรียนรู้ถ้าคุณคุ้นเคยกับการคิดสิ่งของ ฉันสอนชั้นเรียนการคำนวณความเร็วสูงที่นี่และฉันบังคับให้นักเรียนใช้ FORTRAN มันบังคับให้พวกเขาใช้ตรรกะประเภทต่าง ๆ ในการเขียนโปรแกรม พวกเขาไม่ชอบเพราะไม่ได้ "คิด" เหมือน Python หรือ C ++ ทุกอย่างลงมากับสิ่งที่คุณตั้งใจจะทำและความสำคัญและประสิทธิภาพที่สำคัญ


ยินดีต้อนรับสู่ SciComp.SE นี่เป็นความคิดเห็นมากกว่าคำถามสำหรับเว็บไซต์ หากคุณพิจารณาว่า Fortran "[... ] บังคับให้พวกเขาใช้ตรรกะประเภทต่าง ๆ ในการเขียนโปรแกรม" คุณควรอธิบายให้ละเอียดและบอกเหตุผลว่าทำไมถึงเป็นเช่นนั้น และสิ่งนี้คือ "ตรรกะประเภท" ที่คุณพูดถึง
nicoguaro

2
@tmwitten: คำตอบนี้ควรจะเป็นความคิดเห็นหรือไม่ อาจนานเกินไปที่จะแสดงความคิดเห็นและนอกบริบทดูเหมือนว่าไม่ใช่ sequitur (เช่น C ++ และ Python ไม่ได้กล่าวถึงในคำถาม "คุณทั้งคู่" ดูเหมือนจะอ้างถึง Nicola และ Aurelius)
Geoff Oxberry
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.