Fortran ซึ่งย่อมาจาก "Formula Translation" เป็นภาษาการเขียนโปรแกรมระดับสูงที่เหมาะสมอย่างยิ่งสำหรับการใช้งานทางวิทยาศาสตร์และวิศวกรรม มันเป็นหนึ่งในภาษาการเขียนโปรแกรมแรกที่พัฒนาขึ้นสำหรับคอมพิวเตอร์อิเล็กทรอนิกส์และได้พัฒนาขึ้นอย่างมากตั้งแต่เริ่มต้น Fortran อนุญาตให้มีการจัดการข้อมูลอาร์เรย์อย่างมีประสิทธิภาพและสนับสนุนการคำนวณทางคณิตศาสตร์ที่ซับซ้อน ทำให้มันเป็นภาษาที่เลือกใช้สำหรับการพยากรณ์อากาศเชิงตัวเลข ฟิสิกส์เชิงคอมพิวเตอร์ และชีวสารสนเทศ เป็นต้น
Fortran ถูกพัฒนาในปี 1950 โดย IBM เป็นภาษาที่ออกแบบมาสำหรับการคำนวณเชิงตัวเลขและการคำนวณทางวิทยาศาสตร์ เวอร์ชันแรกคือ Fortran I ซึ่งเปิดตัวในปี 1957 แนวคิดหลักคือการสร้างภาษาที่จะอนุญาตให้นักวิทยาศาสตร์และวิศวกรเขียนโปรแกรมโดยไม่ต้องรู้รายละเอียดของฮาร์ดแวร์ที่อยู่เบื้องหลัง
มีการแนะนำเวอร์ชันถัดไปของ Fortran ซึ่งแต่ละเวอร์ชันได้เพิ่มฟีเจอร์ใหม่และปรับปรุงการใช้งาน Fortran II ตามมาในไม่ช้า โดยเพิ่มฟีเจอร์การเขียนโปรแกรมเชิงโครงสร้าง ในปี 1966 Fortran IV ถูกแนะนำ ซึ่งกลายเป็นมาตรฐานในอุตสาหกรรม Fortran 77 (เปิดตัวในปี 1978) ได้เพิ่มฟีเจอร์เช่นประเภทข้อมูลตัวอักษรและปรับปรุงความสามารถในการป้อนข้อมูล/ส่งออก
ตั้งแต่ปี 1991 เป็นต้นมา Fortran 90 ได้แนะนำการเขียนโปรแกรมอาร์เรย์ การเขียนโปรแกรมโมดูล การเรียกซ้ำ และการจัดสรรหน่วยความจำแบบไดนามิก Fortran 2003 และ Fortran 2008 ได้ปรับปรุงภาษาด้วยฟีเจอร์เช่นการเขียนโปรแกรมเชิงวัตถุและการปรับปรุงการทำงานร่วมกับภาษาการเขียนโปรแกรม C มาตรฐานล่าสุด Fortran 2018 ได้เพิ่มการปรับปรุงเพิ่มเติม รวมถึงความเข้ากันได้และฟังก์ชันการทำงานที่ดีขึ้นสำหรับการประมวลผลแบบขนาน
Fortran ยังคงถูกใช้อย่างกว้างขวางในหลายสาขาวิทยาศาสตร์และวิศวกรรม โดยมีการสนับสนุนจากคอมไพเลอร์สมัยใหม่ เช่น GNU Fortran (gfortran) และ Intel Fortran Compiler มันมีฐานรหัสที่สืบทอดมาอย่างมาก และห้องสมุดทางวิทยาศาสตร์หลายแห่งเขียนด้วย Fortran ทำให้มันเป็นภาษาที่สำคัญในบางโดเมน
Fortran เป็นภาษาที่มีประเภทที่เข้มงวดซึ่งต้องการการประกาศประเภทตัวแปรอย่างชัดเจน ตัวอย่างเช่น:
INTEGER :: i
REAL :: x
CHARACTER(len=10) :: name
Fortran มีความสามารถในการจัดการอาร์เรย์ได้ดี โดยอนุญาตให้ทำงานกับอาร์เรย์ทั้งหมดด้วยไวยากรณ์ที่เรียบง่าย
REAL, DIMENSION(10) :: A
A = 2.0 * A ! คูณแต่ละองค์ประกอบของอาร์เรย์ A ด้วย 2
Fortran มีโครงสร้างควบคุมแบบดั้งเดิม เช่น ลูปและคำสั่งเงื่อนไข
DO i = 1, 10
IF (A(i) > 0) THEN
PRINT *, 'Positive'
END IF
END DO
Fortran อนุญาตให้กำหนดฟังก์ชันและซับรูทีนสำหรับการเขียนโปรแกรมแบบโมดูล
FUNCTION square(x)
REAL :: square
REAL, INTENT(IN) :: x
square = x * x
END FUNCTION square
โดยค่าเริ่มต้น Fortran มีหลักการที่ตัวแปรที่มีชื่อเริ่มต้นด้วย "I", "J", "K", "L", "M" หรือ "N" จะถูกกำหนดเป็น INTEGER โดยปริยาย ซึ่งสามารถยกเลิกได้เพื่อความชัดเจน
IMPLICIT NONE ! ปิดการกำหนดประเภทโดยปริยาย
INTEGER :: I
REAL :: R
Fortran รองรับลูป do-while สำหรับการทำงานซ้ำตามเงื่อนไข
i = 1
DO WHILE (i <= 10)
PRINT *, i
i = i + 1
END DO
Fortran มีประเภทที่กำหนดเองที่ทรงพลังซึ่งเรียกว่าประเภทที่ได้มา ซึ่งอนุญาตให้มีการกำหนดข้อมูลในลักษณะโครงสร้าง
TYPE :: Person
CHARACTER(len=20) :: name
INTEGER :: age
END TYPE Person
TYPE(Person) :: p1
Fortran สนับสนุนโมดูลสำหรับการห่อหุ้มข้อมูลและกระบวนการ ส่งเสริมการนำกลับมาใช้ใหม่ของโค้ดและการจัดระเบียบ
MODULE myModule
CONTAINS
SUBROUTINE mySubroutine()
! การดำเนินการ
END SUBROUTINE
END MODULE
Fortran สนับสนุนพอยน์เตอร์ซึ่งช่วยในการจัดการหน่วยความจำแบบไดนามิก คล้ายกับภาษาต่างๆ เช่น C
REAL, POINTER :: pA
ALLOCATE(pA(10)) ! จัดสรรอาร์เรย์แบบไดนามิก
Fortran มีฟีเจอร์ที่สร้างการทำงานร่วมกับ C ซึ่งอนุญาตให้มีการเขียนโปรแกรมแบบผสมภาษา
INTERFACE
FUNCTION c_function(x) BIND(C, NAME="c_function")
INTEGER(C_INT) :: c_function(INTEGER)
END FUNCTION c_function
END INTERFACE
คอมไพเลอร์ Fortran ที่ได้รับความนิยมมากที่สุด ได้แก่:
แม้ว่า Fortran จะไม่เป็นที่รู้จักในสภาพแวดล้อมการพัฒนาสมัยใหม่เท่าภาษาอื่นๆ แต่ก็มี IDE หลายตัวที่สนับสนุน:
การสร้างโปรเจกต์ Fortran มักเกี่ยวข้องกับการสร้างไฟล์ต้นฉบับที่มีนามสกุล .f, .f90 หรือ .f95 และคอมไพล์โดยใช้คอมไพเลอร์ Fortran คำสั่งทั่วไปอาจมีลักษณะดังนี้:
gfortran -o my_program my_source.f90
Fortran ถูกใช้กันอย่างแพร่หลายในด้านการคำนวณทางวิทยาศาสตร์ การพยากรณ์อากาศเชิงตัวเลข การจำลองสภาพภูมิอากาศ ฟิสิกส์เชิงคอมพิวเตอร์ เคมีเชิงคอมพิวเตอร์ และชีวสารสนเทศ มันเป็นที่รู้จักโดยเฉพาะในด้านประสิทธิภาพในการคำนวณเชิงตัวเลขที่หนักหน่วงและการจำลอง
คู่แข่งหลักของ Fortran ในด้านการเขียนโปรแกรมทางวิทยาศาสตร์และวิศวกรรม ได้แก่:
Fortran มีเครื่องมือการแปลจากซอร์สเป็นซอร์สหลายตัวที่สามารถช่วยนักพัฒนาในการแปลงโค้ดเก่าไปยังภาษาที่ทันสมัยมากขึ้นหรือเพื่อปรับปรุงโค้ดที่มีอยู่ เครื่องมือบางตัวรวมถึง:
เครื่องมือเหล่านี้ช่วยให้การเปลี่ยนแปลงจากเวอร์ชัน Fortran เก่าหรือพาราไดม์การเขียนโปรแกรมที่แตกต่างกันง่ายขึ้น ในขณะที่ช่วยรักษาประสิทธิภาพและฟังก์ชันการทำงาน