ภาษาการเขียนโปรแกรม Fortran

ภาพรวม

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

ลูป Do-While

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 ที่ได้รับความนิยมมากที่สุด ได้แก่:

สภาพแวดล้อมการพัฒนาแบบรวม (IDEs)

แม้ว่า Fortran จะไม่เป็นที่รู้จักในสภาพแวดล้อมการพัฒนาสมัยใหม่เท่าภาษาอื่นๆ แต่ก็มี IDE หลายตัวที่สนับสนุน:

การสร้างโปรเจกต์

การสร้างโปรเจกต์ Fortran มักเกี่ยวข้องกับการสร้างไฟล์ต้นฉบับที่มีนามสกุล .f, .f90 หรือ .f95 และคอมไพล์โดยใช้คอมไพเลอร์ Fortran คำสั่งทั่วไปอาจมีลักษณะดังนี้:

gfortran -o my_program my_source.f90

การใช้งานของ Fortran

Fortran ถูกใช้กันอย่างแพร่หลายในด้านการคำนวณทางวิทยาศาสตร์ การพยากรณ์อากาศเชิงตัวเลข การจำลองสภาพภูมิอากาศ ฟิสิกส์เชิงคอมพิวเตอร์ เคมีเชิงคอมพิวเตอร์ และชีวสารสนเทศ มันเป็นที่รู้จักโดยเฉพาะในด้านประสิทธิภาพในการคำนวณเชิงตัวเลขที่หนักหน่วงและการจำลอง

การเปรียบเทียบกับภาษาที่คล้ายกัน

คู่แข่งหลักของ Fortran ในด้านการเขียนโปรแกรมทางวิทยาศาสตร์และวิศวกรรม ได้แก่:

เคล็ดลับการแปลจากซอร์สเป็นซอร์ส

Fortran มีเครื่องมือการแปลจากซอร์สเป็นซอร์สหลายตัวที่สามารถช่วยนักพัฒนาในการแปลงโค้ดเก่าไปยังภาษาที่ทันสมัยมากขึ้นหรือเพื่อปรับปรุงโค้ดที่มีอยู่ เครื่องมือบางตัวรวมถึง:

เครื่องมือเหล่านี้ช่วยให้การเปลี่ยนแปลงจากเวอร์ชัน Fortran เก่าหรือพาราไดม์การเขียนโปรแกรมที่แตกต่างกันง่ายขึ้น ในขณะที่ช่วยรักษาประสิทธิภาพและฟังก์ชันการทำงาน