ภาษาฟอร์ทราน คนเดินตาย ฟอร์ทราน

  • กฟอร์ทราน
    • gfortran 4.5.0
  • ภาษาโปรแกรม

    Fortran - ภาษาการเขียนโปรแกรมแรกที่จะนำไปใช้ ระดับสูง(หลัง) อย่างไรก็ตาม มีข้อแม้เล็กๆ น้อยๆ ประการหนึ่ง - สำหรับรถยนต์ที่สร้างขึ้นตาม โครงการคลาสสิกวอน นอยมันน์. สร้างขึ้นระหว่างปี 1954 ถึง 1957 โดยกลุ่มโปรแกรมเมอร์ที่นำโดย John Backus ที่ IBM สองสามปีต่อมา การส่งมอบเชิงพาณิชย์ก็เริ่มขึ้น ก่อนหน้านี้ การเขียนโปรแกรมทำได้โดยตรงในรหัสเครื่องหรือในแอสเซมเบลอร์เชิงสัญลักษณ์ ชื่อ Fortran เป็นตัวย่อของ FORmula TRANslator ซึ่งก็คือเครื่องมือแปลสูตร

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

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

    "บัตรโทรศัพท์" ชนิดหนึ่งของ Fortran แบบเก่าคือป้ายกำกับจำนวนมากที่ใช้ทั้งในตัวดำเนินการข้ามแบบไม่มีเงื่อนไข GOTO และตัวดำเนินการในลูป และในตัวดำเนินการคำอธิบายอินพุต/เอาต์พุตรูปแบบ FORMAT ป้ายกำกับจำนวนมากและคำสั่ง GOTO มักทำให้โปรแกรม Fortran เข้าใจยาก

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

    อย่างไรก็ตาม Fortran สมัยใหม่จะกำจัดป้ายกำกับที่มากเกินไปโดยการแนะนำตัวดำเนินการ เช่น DO ... END DO, DO WHILE, SELECT CASE นอกจากนี้ คุณสมบัติเชิงบวกของ Fortran สมัยใหม่ยังรวมถึงการดำเนินการในตัวจำนวนมากพร้อมอาร์เรย์และ การสนับสนุนที่ยืดหยุ่นอาร์เรย์ที่มีการจัดทำดัชนีที่ผิดปกติ

    การโต้ตอบกับภาษาอื่น

    ระบบการเขียนโปรแกรมจำนวนมากอนุญาตให้คุณเชื่อมโยงไฟล์อ็อบเจ็กต์ที่เกิดจากการแปลโปรแกรม Fortran กับไฟล์อ็อบเจ็กต์ที่ได้รับจากคอมไพเลอร์ในภาษาอื่น ซึ่งช่วยให้คุณสามารถสร้างแอปพลิเคชันที่มีความยืดหยุ่นและมีคุณสมบัติหลากหลายมากขึ้น มีไลบรารีจำนวนมากสำหรับภาษา Fortran ซึ่งมีทั้งรูทีนสำหรับการแก้ปัญหาการประมวลผลแบบคลาสสิก (LAPACK, IMSL, BLAS) งานสำหรับการจัดระเบียบการคำนวณแบบกระจาย (MPI, pvm) และงานสำหรับการสร้างอินเทอร์เฟซแบบกราฟิก (Quickwin, FORTRAN /TK) หรือการเข้าถึง DBMS (Oracle)

    มรดกฟอร์ทราน

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

    การพกพา

    ในตอนแรก ความสะดวกในการพกพาสำหรับ Fortran เป็นปัญหาเร่งด่วนมากเนื่องจากไม่มี มาตรฐานสม่ำเสมอและแม้กระทั่ง ข้อมูลอ้างอิงจากไอบีเอ็ม และบริษัทคอมพิวเตอร์ก็แข่งขันกันเองเพื่อให้แน่ใจว่าคอมไพเลอร์ต่างๆ จะเข้ากันไม่ได้ การปรากฏตัวของมาตรฐานได้แก้ไขเรื่องนี้ มาตรฐานปี 1966 ได้สร้างไวยากรณ์และความหมาย แต่ผู้ขายยังคงแนะนำส่วนขยายที่เข้ากันไม่ได้ โปรแกรมเมอร์ที่ระมัดระวังตระหนักว่าการใช้ส่วนขยายที่เข้ากันไม่ได้อาจทำให้เกิดปัญหาในการพกพา และมักใช้โปรแกรมเช่น The PFORT Verifier เพื่อระบุส่วนขยายที่เข้ากันไม่ได้

    ส่วนขยายที่เข้ากันไม่ได้ไม่ใช่ปัญหาเดียวเท่านั้น มีปัญหาหลายประการในการคำนวณเชิงตัวเลข ต่อมามีการพัฒนาและนำเสนอแนวคิดที่เกือบจะเป็นสากล เลขคณิตไบนารีจุดลอยตัว

    การเข้าถึง สภาพแวดล้อมรันไทม์(เช่น ถึง บรรทัดคำสั่ง, ตัวแปรสภาพแวดล้อม) ค่อนข้างยากจนกระทั่งได้รับความสนใจในมาตรฐานปี 2546

    ตอนนี้การใช้โปรแกรมพกพาเต็มรูปแบบใน Fortran เป็นเรื่องง่าย

    องค์ประกอบไวยากรณ์:

    แสดงความคิดเห็นต่อท้ายบรรทัด - หรือ * ในอักขระตัวแรกของบรรทัด
    กรณีที่สำคัญ เลขที่
    นิพจน์ทั่วไปของ ID ตัวแปร [_a-zA-Z0-9](0-n)
    การกำหนดค่าให้กับตัวแปร =
    การประกาศตัวแปร ประเภท::ตัวแปร
    การประกาศตัวแปรด้วยการกำหนดมูลค่า ประเภท::ตัวแปร = ค่า
    การจัดกลุ่มนิพจน์ ()
    ปิดกั้น ทำ...จบทำ
    ความเท่าเทียมกัน = หรือ.EQ.
    ความไม่เท่าเทียมกัน /= หรือ.NE.
    การเปรียบเทียบ == < > <= >= <>หรือ.LT. .จีที .LE. .GE.
    การเรียกใช้ฟังก์ชัน โทร ฉ(ก,ข...)
    การเรียกใช้ฟังก์ชันโดยไม่มีพารามิเตอร์ โทร ฉ
    ลำดับต่อมา สิ้นสุดบรรทัด
    ถ้า-แล้ว ถ้าเงื่อนไขก็ ... จบถ้า
    ถ้า-แล้ว-เป็นอย่างอื่น ถ้าเงื่อนไขก็ ... else ... endif
    วนซ้ำกับเงื่อนไขภายหลัง DO ... WHILE (เงื่อนไข)
    For - วนรอบถัดไปสำหรับช่วงจำนวนเต็มที่เพิ่มขึ้น 1 ทำป้ายกำกับ i = 1, 10
    For - วนรอบถัดไปสำหรับช่วงของจำนวนเต็มลดลง 1 ทำป้ายกำกับ i = 10, 1, -1

    ตัวอย่าง:

    สวัสดีชาวโลก!:

    ตัวอย่างสำหรับเวอร์ชัน Intel Visual Fortran 11.1, g95 0.93, gfortran 4.5.0

    ตัวอย่างนี้เขียนในรูปแบบฟรีที่รองรับโดย Fortran 90 และมาตรฐานที่ตามมา รวมถึง .

    โปรแกรมแสดงความคิดเห็นสไตล์ Fortran 90 พิมพ์ HelloWorld * , "Hello, World!" จบโปรแกรม HelloWorld

    แฟกทอเรียล:

    ตัวอย่างสำหรับเวอร์ชัน Intel Visual Fortran 11.1, g95 0.93, gfortran 4.5.0

    ใช้การคำนวณซ้ำของแฟกทอเรียลและรูปแบบโปรแกรมอิสระ ข้อกำหนดเฉพาะของรูปแบบ I และ A ใช้เพื่อส่งออกตัวเลขทศนิยมและสตริงตามลำดับ เมื่อคำนวณแฟกทอเรียล 13-16 จะเกิดโอเวอร์โฟลว์ทางคณิตศาสตร์เกิดขึ้น ทำให้เกิดข้อผิดพลาดดังนั้นจึงส่งออกค่าที่ไม่ถูกต้อง:

    13! = 1932053504
    14! = 1278945280
    15! = 2004310016
    16! = 2004189184

    โปรแกรม Factorial integer :: f , n f = 1 n = 0 พิมพ์ "(I2, A, I10)" , n , "! = " , f n = n + 1 f = f * n if (n == 17 ) แล้ว ออกจากจุดสิ้นสุดหากสิ้นสุดให้สิ้นสุดโปรแกรมแฟกทอเรียล

    หมายเลขฟีโบนัชชี:

    ตัวอย่างสำหรับเวอร์ชัน Intel Visual Fortran 11.1, g95 0.93, gfortran 4.5.0

    ใช้การคำนวณซ้ำของตัวเลขฟีโบนัชชี สิ่งที่ยากที่สุดในตัวอย่างนี้คือการส่งออกค่าที่คำนวณได้ ในรูปแบบที่ต้องการในบรรทัดเดียวและไม่มี ช่องว่างเพิ่มเติม- ข้อมูลจำเพาะของรูปแบบ (I3, A, $) หมายความว่าในขั้นแรกจะพิมพ์จำนวนเต็มในรูปแบบทศนิยม โดยมีความกว้างสามอักขระพอดี จากนั้นจึงพิมพ์สตริง และสุดท้าย $ จะระงับการป้อนบรรทัดที่ใช้โดยคำสั่ง print ตามค่าเริ่มต้น ดังนั้นทุกอย่างจึงถูกพิมพ์ ในหนึ่งบรรทัด โปรดทราบว่าตัวระบุรูปแบบ $ ไม่ใช่มาตรฐานในภาษาถิ่น โปรแกรมใช้งานได้ แต่ในระหว่างการคอมไพล์มันจะแสดงคำเตือนเกี่ยวกับเรื่องนี้

    โปรแกรมจำนวนเต็มฟีโบนัชชี :: f1 , f2 , f3 , i i = 1 f1 = 0 f2 = 1 do f3 = f2 + f1 f1 = f2 f2 = f3 i = i + 1 if (f1< 10 ) then print "(I1, A, $)" , f1 , ", " elseif (f1 < 100 ) then print "(I2, A, $)" , f1 , ", " else print "(I3, A, $)" , f1 , ", " end if if (i == 17 ) then exit end if end do print * , "..." end program Fibonacci

    สมการกำลังสอง:

    ตัวอย่างสำหรับเวอร์ชัน g95 0.93, gfortran 4.5.0

    ตัวอย่างนี้ใช้ชนิดข้อมูลที่ซับซ้อนในตัว // — ตัวดำเนินการเชื่อมสตริง ตัวเลขหน้าวงเล็บในคำอธิบายรูปแบบระบุจำนวนครั้งที่รูปแบบในวงเล็บถูกทำซ้ำ (ใน ในกรณีนี้สองครั้ง - สำหรับรูทตัวแรกและตัวที่สอง)

    โปรแกรม Quadratic integer :: a , b , c real :: d , p1 , p2 complex :: cp2 อ่าน (* , * ), a if (a == 0 ) แล้วเขียน (* , * ) "ไม่ใช่สมการกำลังสอง" หยุดสิ้นสุดถ้าอ่าน (* , * ) b อ่าน (* , * ) c d = b * b - 4 * a * c p1 = - b / 2.0 / a if (abs (d )< 1.0e-9 ) then write (* , "(A, F8.3)" ) "x = " , p1 elseif (d >0 ) จากนั้น p2 = sqrt (d ) / 2.0 / a เขียน (* , "(2(A, F8.3))" ) "x1 = " , p1 + p2 , ถ่าน (13 ) // ถ่าน (10 ) / / "x2 = " , p1 - p2 อย่างอื่น cp2 = sqrt (cmplx (d )) / 2.0 / a เขียน (* , "(2(A, F8.3, F8.3), A)" ) "x1 = ( " , p1 + cp2 , ")" // char (13 ) // char (10 ) // "x2 = (" , p1 - cp2 , ")" สิ้นสุดถ้าสิ้นสุด

    สวัสดีชาวโลก!:

    ตัวอย่างสำหรับเวอร์ชัน f2c 20090411, g95 0.93, gfortran 4.5.0

    ฟอร์ทราน 77); อักขระหกตัวแรกของแต่ละบรรทัดสงวนไว้สำหรับข้อมูลการบริการ - ทำเครื่องหมายว่าบรรทัดนั้นเป็นความคิดเห็นหรือต่อจากบรรทัดก่อนหน้า ป้ายกำกับและหมายเลขบรรทัด ชุดมาตรฐานสัญลักษณ์ Fortran ไม่มีสัญลักษณ์ ตัวพิมพ์เล็กดังนั้นโปรแกรมทั้งหมดจึงเขียนด้วยตัวพิมพ์ใหญ่ ข้อยกเว้นสำหรับกฎนี้คือ ค่าคงที่อักขระ- สามารถมีอักขระใดก็ได้ที่ระบบรองรับ

    บรรทัดแรกให้โค้ดส่วนนี้ชื่อ HELLO และระบุว่าเป็นโปรแกรมหลัก ชื่อโปรแกรมอยู่ภายใต้กฎเดียวกันกับชื่อตัวระบุใด ๆ เช่น ต้องขึ้นต้นด้วยตัวอักษรและมีอักขระไม่เกิน 6 ตัว

    คำสั่ง WRITE ดำเนินการพิมพ์ รายการพารามิเตอร์ควบคุมที่กำหนดค่าเอาต์พุตจะถูกส่งผ่านในวงเล็บ: UNIT เลือกไฟล์เอาต์พุต (คอนโซลโดยค่าเริ่มต้น) FMT เลือกรูปแบบเอาต์พุต เครื่องหมายดอกจันบ่งบอกถึงการตั้งค่าเริ่มต้น ไม่จำเป็นต้องส่งชื่อพารามิเตอร์ กล่าวโดยย่อ คำสั่งเดียวกันจะมีลักษณะดังนี้ WRITE (*, *) ....

    ในการใช้งานส่วนใหญ่ ค่าคงที่สตริงสามารถปิดล้อมเป็น in ได้ คำพูดเดียวและสองเท่า

    สวัสดีชาวโลก! โปรแกรมโปรแกรม HELLO WRITE (UNIT =* , FMT =* ) "Hello, World!" จบ

    แฟกทอเรียล:

    ตัวอย่างสำหรับเวอร์ชัน f2c 20090411, g95 0.93, gfortran 4.5.0

    ตัวอย่างนี้เขียนในรูปแบบคงที่ (รูปแบบ FOTRAN 77) และใช้การคำนวณแฟคทอเรียลซ้ำ

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

    วงจร DO ในกรณีนี้สอดคล้องกับ สำหรับห่วงในภาษารุ่นหลัง ตัวนับลูป N จะรันตามลำดับผ่านค่าทั้งหมดตั้งแต่ 0 ถึง 16 เนื้อความของลูปสิ้นสุดที่บรรทัดที่มีป้ายกำกับ 1 ซึ่งระบุไว้ในส่วนหัวของลูป

    คำสั่ง PRINT ใช้รูปแบบเอาต์พุตเริ่มต้น ซึ่งจะแตกต่างกันไปขึ้นอยู่กับคอมไพเลอร์ที่ใช้

    โปรแกรม) ค . ด้วยเหตุนี้ หลังจากกรอกบรรทัด CC ที่มีอักขระผลลัพธ์ทีละอักขระแล้ว ส่วนที่เหลือของบรรทัดจะต้องเติมช่องว่างด้วยตนเอง

    การตรวจสอบว่าอักขระถัดไปในสตริงต้นทางเป็นตัวอักษรที่ยาวเกินกว่าจะบรรจุลงในหนึ่งบรรทัดได้ (อักขระทั้งหมดในบรรทัดโปรแกรมที่เริ่มต้นจากตำแหน่งที่ 73 จะถูกละเว้น) ดังนั้นจึงต้องแบ่งออกเป็นสองบรรทัดและทำเครื่องหมายที่สองไว้ เป็นความต่อเนื่องของอันแรก (ด้วยสัญลักษณ์ใด ๆ ในตำแหน่งที่ 6)

    ตัวดำเนินการเปรียบเทียบใน FORTRAN 77 เขียนเป็น .LE ,.จีอี. ฯลฯ เนื่องจากสัญลักษณ์ > และ< не входят в набор символов языка; они были добавлены только в Fortran 90.

    โปรแกรม CAMELC CHARACTER TEXT * 30 , CC * 30 LOGICAL LSPACE READ (* , "(A)" TEXT NCC = 0 LSPACE = .TRUE ทำ 1 , I = 1 , LEN (ข้อความ ) NC = ICHAR (ข้อความ (I : I )) IF (NC .GE. 65 .AND. NC .LE. 90 .OR. > NC .GE. 97 .AND. NC .LE. 122 ) แล้ว IF (LSPACE ) แล้ว IF (NC .GE. 97 .AND. NC .LE. 122 ) แล้ว NC = NC - 32 สิ้นสุด IF อื่น IF (NC .GE. 65 .และ. NC .LE. 90 ) จากนั้น NC = NC + 32 END ถ้าสิ้นสุด IF NCC = NCC + 1 CC (NCC : NCC ) = CHAR (NC ) LSPACE = .FALSE มิฉะนั้น LSPACE = .TRUE สิ้นสุดหาก 1 ดำเนินการต่อทำ 2, I = NCC + 1, LEN (CC) 2 CC (I: I) = "" เขียน (*, *) CC END



    ตัวอย่างเช่น ในบรรดานักวิทยาศาสตร์ มีคำพูดว่าปัญหาทางคณิตศาสตร์ใดๆ ก็มีทางแก้ใน Fortran อยู่แล้ว และจริงๆ แล้ว ในบรรดาแพ็คเกจ Fortran หลายพันชุด คุณสามารถค้นหาแพ็คเกจสำหรับการคูณเมทริกซ์ แพ็คเกจสำหรับการแก้สมการอินทิกรัลที่ซับซ้อน และอื่นๆ อีกมากมาย อื่น ๆ อีกมากมาย ในช่วงหลายทศวรรษที่ผ่านมามีการสร้างแพ็คเกจดังกล่าวจำนวนหนึ่งและยังคงได้รับความนิยมในชุมชนวิทยาศาสตร์จนถึงทุกวันนี้เช่น - IMSL ( ภาษาอังกฤษ).

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

    Modern Fortran (Fortran 95 และ Fortran 2003) ได้รับคุณสมบัติที่จำเป็นสำหรับ การเขียนโปรแกรมที่มีประสิทธิภาพสำหรับสถาปัตยกรรมคอมพิวเตอร์ใหม่ ช่วยให้สามารถใช้เทคโนโลยีการเขียนโปรแกรมสมัยใหม่ได้ โดยเฉพาะ OOP

    วิวัฒนาการของมาตรฐานภาษา

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

    FORTRAN 66 (1972) อิงตามมาตรฐาน IBM ฟอร์ทรานที่ 4 FORTRAN 77 (1980) มีการปรับปรุงหลายอย่าง: Fortran 90 (1991) มาตรฐานภาษาได้รับการแก้ไขอย่างมีนัยสำคัญ Fortran 95 (1997) การแก้ไขมาตรฐานก่อนหน้า มีการนำตัวดำเนินการและโครงสร้าง FORALL มาใช้ ซึ่งให้ความยืดหยุ่นมากกว่าตัวดำเนินการ WHERE และโครงสร้างเพื่อกำหนดอาร์เรย์และแทนที่ลูปที่ยุ่งยาก FORALL ช่วยให้คุณสามารถแทนที่การกำหนดส่วนใดๆ หรือโดยเฉพาะอย่างยิ่งส่วนคำสั่ง WHERE ซึ่งให้การเข้าถึงเส้นทแยงมุมของเมทริกซ์ โอเปอเรเตอร์นี้ถือว่ามีแนวโน้มดีในการประมวลผลแบบขนาน ซึ่งอำนวยความสะดวกในการประมวลผลแบบขนานได้อย่างมีประสิทธิภาพมากกว่าลูป Fortran 2003 (2004) การพัฒนาเพิ่มเติมของการสนับสนุน OOP ในภาษา ปฏิสัมพันธ์ ระบบปฏิบัติการ- มีการเพิ่มคุณสมบัติต่อไปนี้ด้วย: Fortran 2008 (2010) มาตรฐานรองรับโดยใช้ภาษาคอมพิวเตอร์แบบขนาน (Co-Arrays Fortran) นอกจากนี้ยังมีการวางแผนเพื่อเพิ่มขนาดสูงสุดของอาร์เรย์เป็น 15 เพิ่มฟังก์ชันทางคณิตศาสตร์พิเศษในตัว ฯลฯ

    คอมไพเลอร์

    นับตั้งแต่การพัฒนาภาษาเริ่มแรก IBM ได้สร้างคอมไพเลอร์ Fortran ปัจจุบัน IBM เป็นผู้จัดหาคอมไพเลอร์ปรับให้เหมาะสม VS Fortran สำหรับเมนเฟรม IBM System z ประวัติการพัฒนา รุ่นที่แตกต่างกันซึ่งมีอายุย้อนกลับไปในปี 1964 เช่นเดียวกับคอมไพเลอร์ XL Fortran สำหรับแพลตฟอร์มที่ใช้สถาปัตยกรรม PowerPC - AIX, Linux และซูเปอร์คอมพิวเตอร์ Blue Gene (เวอร์ชันหนึ่งเปิดตัวสำหรับ Mac OS X เมื่อคอมพิวเตอร์ Macintosh ใช้โปรเซสเซอร์ PowerPC) คอมไพเลอร์ทั้งสองนี้มีเครื่องมือเพิ่มประสิทธิภาพที่ซับซ้อนมาก ซึ่งเป็นผลงานทางวิทยาศาสตร์อย่างต่อเนื่องโดยผู้เชี่ยวชาญของ IBM มานานกว่าครึ่งศตวรรษ จากคอมไพเลอร์ IBM Fortran XL นั้น Absoft ซึ่งเป็นพันธมิตรทางธุรกิจของ IBM ได้สร้างและจัดหาคอมไพเลอร์ Absoft Pro Fortran สำหรับระบบที่ใช้โปรเซสเซอร์ PowerPC (Linux, Mac OS X) และ Intel (Linux, Mac OS X, Windows)

    GNU Free Software Foundation ได้สร้างคอมไพเลอร์ Fortran-77 แบบโอเพ่นซอร์ส g77 ซึ่งพร้อมใช้งานสำหรับแทบทุกแพลตฟอร์มและเข้ากันได้กับ GCC อย่างสมบูรณ์ ตอนนี้ถูกแทนที่ด้วยคอมไพเลอร์ GFortran ซึ่งใช้โครงสร้างเกือบทั้งหมดของมาตรฐาน Fortran 95 และโครงสร้างจำนวนมากของมาตรฐาน Fortran 2003 และ Fortran 2008 นอกจากนี้ยังสามารถใช้งานร่วมกับ Fortran 77 แบบย้อนหลังได้อย่างสมบูรณ์ นอกจากนี้ยังมีโปรเจ็กต์อิสระที่เรียกว่า g95 เพื่อสร้างคอมไพเลอร์ Fortran-95 ที่ใช้ GCC

    คุณสมบัติและโครงสร้างของโปรแกรม

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

    บัตรเจาะพร้อมเครื่องหมายคอลัมน์สำหรับ Fortran

    โครงสร้างของโปรแกรมเริ่มแรกเน้นไปที่อินพุตจากบัตรเจาะ และมีคุณสมบัติหลายประการที่สะดวกสำหรับกรณีนี้โดยเฉพาะ ดังนั้นคอลัมน์ที่ 1 ใช้เพื่อทำเครื่องหมายข้อความเป็นความคิดเห็น (โดยมีสัญลักษณ์ ) ตั้งแต่วันที่ 1 ถึง 5 จะพบพื้นที่ป้ายกำกับ และตั้งแต่วันที่ 7 ถึง 72 จะพบข้อความจริงของผู้ปฏิบัติงานหรือความคิดเห็น คอลัมน์ 73 ถึง 80 สามารถใช้กับไพ่หมายเลข (เพื่อเรียกคืนสำรับไพ่ที่กระจัดกระจายแบบสุ่ม) หรือสำหรับความคิดเห็นสั้น ๆ ไพ่เหล่านั้นถูกละเลยโดยนักแปล หากข้อความของผู้ดำเนินการไม่พอดีกับพื้นที่ที่กำหนด (ตั้งแต่คอลัมน์ที่ 7 ถึง 72) เครื่องหมายต่อเนื่องจะถูกวางไว้ในคอลัมน์ที่ 6 ของการ์ดถัดไป จากนั้นผู้ดำเนินการจะดำเนินการต่อ เป็นไปไม่ได้ที่จะวางข้อความตั้งแต่สองข้อความขึ้นไปในหนึ่งบรรทัด (แผนที่) เนื่องจากบัตรเจาะกลายเป็นเรื่องของประวัติศาสตร์ ข้อดีเหล่านี้จึงกลายเป็นความไม่สะดวกร้ายแรง

    นั่นคือเหตุผลที่มาตรฐาน Fortran เริ่มต้นด้วย Fortran 90 นอกเหนือจากรูปแบบคงที่ ข้อความต้นฉบับปรากฏรูปแบบฟรีซึ่งไม่ได้ควบคุมตำแหน่งของบรรทัดและยังช่วยให้คุณเขียนตัวดำเนินการได้มากกว่าหนึ่งตัวต่อบรรทัด การเปิดตัวรูปแบบฟรีทำให้สามารถสร้างโค้ดที่มีความสามารถในการอ่านและความชัดเจนไม่ด้อยไปกว่าโค้ดที่สร้างขึ้นโดยใช้ภาษาโปรแกรมสมัยใหม่อื่นๆ เช่น Java

    “บัตรโทรศัพท์” ชนิดหนึ่งของ Fortran เก่าคือป้ายกำกับจำนวนมากที่ใช้ทั้งในตัวดำเนินการข้ามแบบไม่มีเงื่อนไข GOTO และตัวดำเนินการในลูป และในตัวดำเนินการคำอธิบายอินพุต/เอาท์พุตรูปแบบ FORMAT ป้ายกำกับจำนวนมากและคำสั่ง GOTO มักทำให้โปรแกรม Fortran เข้าใจยาก

    ประสบการณ์เชิงลบนี้เองที่กลายเป็นเหตุผลว่าทำไมป้ายชื่อภาษาการเขียนโปรแกรมสมัยใหม่จำนวนหนึ่ง (เช่น Java) และตัวดำเนินการกระโดดแบบไม่มีเงื่อนไขที่เกี่ยวข้องจึงได้รับการแก้ไขอย่างมาก

    อย่างไรก็ตาม Fortran สมัยใหม่จะกำจัดป้ายกำกับส่วนเกินออกไปเนื่องจากมีการแนะนำตัวดำเนินการ เช่น DO ... END DO, DO WHILE, SELECT CASE นอกจากนี้มาตรฐานภาษาสมัยใหม่ยังคงรักษาเฉพาะตัวดำเนินการ GOTO แบบคลาสสิกซึ่งยังคงใช้ในหลายภาษาในปัจจุบัน คำสั่ง GOTO ที่คำนวณแล้ว เช่นเดียวกับโครงสร้าง ENTRY - การเข้าสู่โพรซีเดอร์หลายรายการได้ถูกกำจัดออกไปแล้ว

    นอกจากนี้ คุณสมบัติเชิงบวกของ Fortran สมัยใหม่ยังรวมถึงการดำเนินการในตัวจำนวนมากพร้อมอาร์เรย์และการสนับสนุนที่ยืดหยุ่นสำหรับอาร์เรย์ที่มีการจัดทำดัชนีที่ผิดปกติ ตัวอย่าง:

    จริง มิติ (: ,: ) :: V ... จัดสรร (V(- 2 : 2 ,0 : 10 ) ) - จัดสรรหน่วยความจำสำหรับอาร์เรย์ที่สามารถจัดทำดัชนีได้ - แปรผันจาก -2 ถึง 2 (ดัชนีแรก) - และจาก 0 ถึง 10 - วินาที... โวลต์ (2 .2 : 3 ) = โวลต์ (- 1 : 0 .1 ) - หมุนชิ้นส่วนของอาร์เรย์เขียน(* ,* ) V(1 ,: ) - พิมพ์องค์ประกอบทั้งหมดของอาร์เรย์ V ที่มีดัชนีแรกคือ 1จัดสรรคืน(V)

    สวัสดีชาวโลก!

    รูปแบบคงที่ (ช่องว่างในตำแหน่งบรรทัด 1 ถึง 6 มีเครื่องหมาย “␣” กำกับไว้):

    ␣␣␣␣␣␣PROGRAM สวัสดี ␣␣␣␣␣␣PRINT* , "สวัสดีชาวโลก!" ␣␣␣␣␣␣END

    รูปแบบฟรี:

    โปรแกรม สวัสดี พิมพ์ * , "Hello, World!" จบ

    หมายเหตุ

    • คำสั่ง PROGRAM เป็นทางเลือก พูดอย่างเคร่งครัด คำสั่งที่จำเป็นเพียงอย่างเดียวในโปรแกรม Fortran คือคำสั่ง END
    • การเลือกอักษรตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กสำหรับการเขียนคำสั่งโปรแกรมนั้นขึ้นอยู่กับอำเภอใจ จากมุมมอง มาตรฐานที่ทันสมัยภาษาฟอร์ทราน มากมาย ตัวพิมพ์ใหญ่และอักษรตัวพิมพ์เล็กจำนวนมากเกิดขึ้นพร้อมกันเมื่อเขียนตัวดำเนินการภาษา

    การโต้ตอบกับภาษาอื่น

    ระบบการเขียนโปรแกรมจำนวนมากอนุญาตให้คุณรวมไฟล์อ็อบเจ็กต์ที่ได้รับจากการแปลโปรแกรม Fortran กับไฟล์อ็อบเจ็กต์ที่ได้รับจากคอมไพเลอร์จากภาษาอื่น ซึ่งช่วยให้คุณสามารถสร้างแอปพลิเคชันที่มีความยืดหยุ่นและมีคุณสมบัติหลากหลายมากขึ้น ไลบรารีจำนวนมากยังพร้อมใช้งานสำหรับภาษา Fortran ซึ่งมีทั้งรูทีนสำหรับการแก้ปัญหาการประมวลผลแบบคลาสสิก (LAPACK, IMSL, BLAS), ปัญหาในการจัดการการประมวลผลแบบกระจาย (MPI, pvm) และงานสำหรับการสร้างอินเทอร์เฟซแบบกราฟิก (Quickwin, FORTRAN/ TK) หรือการเข้าถึง DBMS (Oracle)

    Fortran ในสหภาพโซเวียต

    หมายเหตุ

    1. ดูตัวอย่าง: Netlib Repository ที่ UTK และ ORNL
    2. อ. เอ็ม. โกเรลิก วิวัฒนาการของภาษาการเขียนโปรแกรม Fortran (พ.ศ. 2500-2550) และโอกาสในการพัฒนา // วิธีการคำนวณและการเขียนโปรแกรม, 2008, เล่ม 9, p. 53-71
    3. Bartenev O.V.ฟอร์ทรานสมัยใหม่ - อ.: บทสนทนา MEPhI, 2548 - ISBN 5-86404-113-0
    4. อ. เอ็ม. โกเรลิก การเขียนโปรแกรมเชิงวัตถุใน Fortran สมัยใหม่
    5. S.D. Algazin, V.V. Kondratiev.การเขียนโปรแกรมใน Visual Fortran - อ.: “บทสนทนา MEPhI”, 2551. - 448 หน้า - ไอ 5-8243-0759-8
    6. Gorelik A.M. ข่าว
    7. ปะทะ ฟอร์แทรน
    8. XL Fortran สำหรับ Linux
    9. ภาพรวมทั่วไปของ Absoft Pro Fortran Compiler Suites
    10. ซันสตูดิโอ - เกณฑ์มาตรฐาน
    11. เรียงความโดย Alexander Rastorguev เกี่ยวกับการปรากฏตัวของ Fortran ใน Dubna
    12. ประวัติศาสตร์คอมพิวเตอร์กราฟิกในรัสเซีย

    วรรณกรรม

    • ฟอร์ทราน. คู่มืออ้างอิงของโปรแกรมเมอร์ ระบบการเข้ารหัสอัตโนมัติของ Fortran สำหรับ IBM 704 EDPM - IBM Corp., 1956. - 51 น.
    • ISO/IEC 1539-2:2000 เทคโนโลยีสารสนเทศ - ภาษาการเขียนโปรแกรม - Fortran - ส่วนที่ 2: สตริงอักขระที่มีความยาวต่างกัน
    • โรเบิร์ต ดับเบิลยู. เซเบสตา. 2.3. คอมพิวเตอร์ไอบีเอ็ม 704 และภาษา Fortran // แนวคิดพื้นฐานของภาษาโปรแกรม = แนวคิดของภาษาโปรแกรม / การแปล จากอังกฤษ - ฉบับที่ 5 - อ.: วิลเลียมส์, 2544. - หน้า 63-69. - 672 วิ - 5,000 เล่ม - ISBN 5-8459-0192-8 (รัสเซีย), ISBN 0-201-75295-6 (อังกฤษ)

    ลิงค์

    • gfortran - คอมไพเลอร์ Fortran 95/2003/2008 ซึ่งเป็นส่วนหนึ่งของ GNU Compiler Collection
    • ใน Progopedia - สารานุกรมภาษาการเขียนโปรแกรม (รัสเซีย)

    ฉันได้รับแจ้งให้ลองเขียนโพสต์แรกของฉันที่นี่ ซึ่งแนะนำให้ใช้ C++ เพื่อการเรียนรู้ ใช่แล้ว หัวข้อนี้สำเนาหลายฉบับเสียหาย

    ฉันเหมือนกับเด็กนักเรียนส่วนใหญ่ในดินแดนมาตุภูมิอันกว้างใหญ่ของเราที่เริ่มเข้าใจพื้นฐานผ่าน หน้าจอสีน้ำเงินแต่ไม่ใช่ความตายแต่ เทอร์โบปาสคาล 7.0. แน่นอนว่ามี Basic ซึ่งฉันพบครั้งแรกในโรงเรียนอนุบาลบนคอมพิวเตอร์โซเวียต Elektronika ดูเหมือนโปรแกรมแก้ไขข้อความแปลก ๆ เพราะคอมพิวเตอร์ผ่านสายตาของเด็กถูกสร้างขึ้นสำหรับเกม อย่างไรก็ตาม ที่สถาบันนี้ ฉันเริ่มคุ้นเคยกับภาษา Fortran แล้ว เมื่อเรียนรู้เกี่ยวกับมัน ฉันยังคงสงสัยว่าทำไมจึงไม่ใช้สำหรับการสอน

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

    ฉันเชื่อว่าพื้นฐานสำหรับการเขียนโปรแกรมเบื้องต้นควรวางไว้ในช่วงปีการศึกษา อย่างน้อยก็ในโรงเรียนมัธยมปลาย แม้ว่าในชีวิตจริงคอมพิวเตอร์จะใช้เพียงเพื่อพิมพ์ข้อความใน Word หรือเพื่อการสื่อสารเท่านั้น ในเครือข่ายโซเชียลความรู้เพียงเล็กน้อยว่าอัลกอริทึมคืออะไร และจะจัดโครงสร้างลำดับของการดำเนินการอย่างไรเพื่อให้ได้มา ผลลัพธ์ที่ต้องการ, โดย อย่างน้อยจะไม่ทำร้ายเด็กหนุ่มในวัยผู้ใหญ่ แต่ส่วนใหญ่จะช่วยสร้างกรอบความคิดพิเศษได้

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

    มีอะไรพิเศษเกี่ยวกับ Fortran?

    ให้เรามาดูประวัติความเป็นมาของการสร้างภาษานี้กัน ปรากฏในยุค 50 อันห่างไกลของศตวรรษที่ผ่านมา เมื่อคอมพิวเตอร์ยังคงมีขนาดใหญ่ มีโปรแกรมเมอร์เพียงไม่กี่คน และวิทยาการคอมพิวเตอร์ไม่ได้สอนที่โรงเรียน และโดยทั่วไปถือว่าเป็นวิทยาศาสตร์เทียม สิ่งที่จำเป็นคือภาษาง่ายๆ ที่จะช่วยให้วิศวกรและนักวิทยาศาสตร์ "ป้อน" สูตรที่เขียนบนกระดาษไปยังคอมพิวเตอร์ แม้จะผ่านบัตรเจาะก็ตาม

    ดังนั้นชื่อของภาษานั้นเอง: สำหรับมูลา ทราน slator หรือ "นักแปลสูตร" เหล่านั้น. ในตอนแรก ภาษานี้มุ่งเป้าไปที่ผู้ที่ไม่มีการฝึกอบรมพิเศษ ซึ่งหมายความว่าภาษาจะต้องเรียบง่ายที่สุดเท่าที่จะเป็นไปได้

    ผู้สร้างประสบความสำเร็จอย่างเรียบง่าย โปรแกรมแรกแบบคลาสสิกมีลักษณะดังนี้:

    โปรแกรมเขียน(*,*) "Hello, World!" จบ
    ไวยากรณ์มีเพียงเล็กน้อย ง่ายกว่าปาสคาลไม่จำเป็นต้องใส่ " ที่ท้ายบรรทัด ; " หรือ " : " ก่อนเครื่องหมายเท่ากับ นอกจากนี้ คนที่มีความรู้น้อย เป็นภาษาอังกฤษการทำความเข้าใจความหมายของโปรแกรมที่ง่ายที่สุดไม่ใช่เรื่องยาก

    ที่นี่ฉันต้องการทราบว่า Fortran มีการแก้ไขมาตรฐานหลายครั้ง โดยหลักคือ 77 และ 90 (ในขณะที่ยังคงความต่อเนื่อง) 77 Fortran นั้นเก่าแก่มาก มีการจำกัดความยาวของบรรทัด และจำเป็นต้องเยื้องจุดเริ่มต้นของบรรทัด ซึ่งอาจทำให้เกิด Culture Shock สำหรับผู้สมัครโปรแกรมเมอร์รุ่นเยาว์ ไม่ใช่เพื่ออะไรเลยที่โปรแกรมที่เขียนใน Fortran 77 ได้รับชื่อสั้น ๆ ว่า "Brezhnev Code" จากปากของเพื่อนของฉัน ดังนั้นข้อความทั้งหมดของฉันจึงอ้างอิงถึงมาตรฐานภาษา 90 และใหม่กว่า

    ตามตัวอย่าง ฉันจะให้โค้ดสำหรับคำนวณผลรวมของจำนวนเต็มที่ไม่เป็นลบตั้งแต่ 1 ถึง n ที่ป้อนจากแป้นพิมพ์ ซึ่งเขียนโดยนักศึกษาระดับบัณฑิตศึกษาของฉันขณะสอนการเขียนโปรแกรมตั้งแต่เริ่มต้น เป็นที่ที่ฉันได้มีประสบการณ์ในการสอน Fortran เป็นภาษาแรก ฉันหวังว่าสิ่งนี้จะเป็นประโยชน์สำหรับเธอ และการทดลองของฉันก็ประสบความสำเร็จ เธอได้เรียนรู้พื้นฐานอย่างน้อยในสองสามชั้นเรียน ชั้นเรียนแรกเป็นการบรรยายเกี่ยวกับภาษา

    หมายเลขโปรแกรมโดยปริยาย ไม่มี ! ตัวแปรจำนวนเต็ม n,i,s ! เนื้อความของ chisla s=0 เขียน (*,*) "ป้อน n" อ่าน (*,*) n ถ้า (n.le.0) ให้เขียน (*,*) "เชิงลบหรือศูนย์" อย่างอื่นทำ i=1,n s =s+i end เขียน (*,*) "Sum=", s สิ้นสุดถ้าสิ้นสุด
    มันง่ายที่จะเห็นว่าวิธีคิดคือวิธีเขียนโค้ด โดยหลักการแล้ว นักเรียนจะไม่มีปัญหาใดๆ เกิดขึ้นได้ แน่นอนว่าผู้อ่านที่ตั้งใจจะถามสิ่งที่มีความหมายว่าไม่มี และเครื่องหมายดอกจันสองอันในวงเล็บคั่นด้วยเครื่องหมายจุลภาค โดยปริยาย none บอกเราว่าเรากำลังระบุประเภทของตัวแปรอย่างชัดเจน ในขณะที่หากไม่มีรายการนี้ คอมไพเลอร์จะเดาประเภทเอง เครื่องหมายดอกจันตัวแรกหมายความว่าอินพุตและเอาต์พุตเกิดขึ้นบนหน้าจอ และเครื่องหมายดอกที่สองระบุว่ารูปแบบอินพุตและเอาต์พุตถูกตรวจพบโดยอัตโนมัติ จริงๆ แล้วโปรแกรม Fortran ดูไม่ซับซ้อนไปกว่าโค้ดที่เขียนด้านบน

    แล้วสภาพแวดล้อมของซอฟต์แวร์ล่ะ?

    ในโรงเรียนและในหน่วยงานของรัฐ คำถามมักเกิดขึ้นเกี่ยวกับซอฟต์แวร์ โดยเฉพาะอย่างยิ่งเกี่ยวกับลิขสิทธิ์ เพราะเงินไม่ได้รับการจัดสรรเป็นพิเศษสำหรับความต้องการเหล่านี้ อย่างน้อยในยุคของฉัน นี่เป็นปัญหา บางทีตอนนี้สถานการณ์เปลี่ยนไปในทางที่ดีขึ้น

    โปรแกรมแก้ไขข้อความใด ๆ เหมาะสำหรับการเขียนโปรแกรมใน Fortran หากคุณต้องการเน้นไวยากรณ์ คุณสามารถใช้ Notepad++ (รองรับเฉพาะไวยากรณ์มาตรฐาน 77 เท่านั้น) หรือ SublimeText เราเขียนโปรแกรมไปแล้วจะคอมไพล์ได้อย่างไร? ที่นี่ทุกอย่างเรียบง่าย คุณสามารถใช้ GNU Fotran ฟรีได้ หากคุณวางแผนที่จะใช้งานที่ไม่ใช่เชิงพาณิชย์ คุณสามารถใช้คอมไพเลอร์จาก Intel ซึ่งได้รับการปรับให้เหมาะสมสำหรับโปรเซสเซอร์ชื่อเดียวกันและมาพร้อมกับ IDE ขั้นต่ำที่จำเป็น เหล่านั้น. เกณฑ์การเข้าร่วมมีสิทธิพิเศษมาก

    ตามผู้ใช้หลายคน สภาพแวดล้อมการพัฒนาที่ดีที่สุดสำหรับ Fortran ยังคงเป็น Compaq Visual Fortran 6.6 ซึ่งเป็นเวอร์ชันล่าสุดที่เปิดตัวในต้นปี 2000 เหตุใดจึงเกิดสภาพแวดล้อมขึ้นตาม วิชวลสตูดิโอเวอร์ชัน 6.0 ซึ่งทำงานบน Windows XP สูงสุด 32 บิตโดยไม่ต้องเต้นกับแทมบูรีน และมีการจำกัดหน่วยความจำที่ใช้ ได้รับความนิยมอย่างมากในหมู่ผู้ใช้ Fortran คำตอบแสดงอยู่ในภาพด้านล่าง

    นี่คือ Compaq Array Visualizer ซึ่งเป็นเครื่องมือที่สะดวกมากสำหรับการแสดงภาพอาร์เรย์ 1, 2 และ 3 มิติในระหว่างการดีบักโปรแกรมโดยตรงจากดีบักเกอร์ อย่างที่เขาบอกลองครั้งเดียวก็กินแล้ว ความจริงก็คือตอนนี้ Fortran ถูกใช้ในทางวิทยาศาสตร์เป็นหลัก (ซึ่งจะกล่าวถึงในภายหลัง) โดยเฉพาะอย่างยิ่งในสาขาที่ฉันกำลังเผชิญอยู่คือในฟิสิกส์บรรยากาศ เมื่อทำการดีบักโปรแกรม อาร์เรย์จะเป็นตัวแทนของเขตอุตุนิยมวิทยาต่างๆ เช่น อุณหภูมิ ความดัน ความเร็วลม การค้นหาข้อผิดพลาดในช่องกราฟิกนั้นง่ายกว่าชุดตัวเลขมาก โดยเฉพาะอย่างยิ่งเนื่องจากคุณมักจะรู้ว่าช่องนั้นควรมีลักษณะอย่างไร ดังนั้นข้อผิดพลาดที่ชัดเจนจึงถูกตัดออกทันที

    น่าเสียดายที่การพัฒนาคอมไพเลอร์ทั้งหมดถูกถ่ายโอนจาก Compaq ไปยัง Intel ในตอนแรก Intel รองรับ Array Visualizer อย่างไรก็ตามเวอร์ชันเหล่านั้นเป็นการสะท้อนผลิตภัณฑ์จาก Compaq สีซีดอยู่แล้วการทำงานกับพวกมันไม่สะดวกเหมือนเมื่อก่อน แต่อย่างน้อยก็รักษาฟังก์ชันการทำงานขั้นต่ำไว้ อนิจจา Intel หยุดพัฒนา Array Visualizer เวอร์ชันใหม่เพื่อยุติสิ่งนี้ เครื่องมือที่สะดวกที่สุด- นั่นคือสาเหตุที่ชุมชน Fortran ส่วนใหญ่เขียนโปรแกรมและแก้ไขข้อบกพร่องภายใต้ Compaq Visual Fortran บน Windows และดำเนินการคำนวณการต่อสู้บนเซิร์ฟเวอร์ Linux โดยใช้คอมไพเลอร์ของ Intel Intel โปรดฟังคำวิงวอนของผู้ใช้ โปรดส่งคืนเครื่องมือปกติสำหรับการแสดงอาร์เรย์ให้กับดีบักเกอร์ของคุณ!

    สถานที่ของ Fortran ในโลกสมัยใหม่

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

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

    แบบจำลองที่จริงจังที่สุด อย่างน้อยก็ในสาขาฟิสิกส์บรรยากาศ เขียนด้วยภาษา Fortran ใช่ ใช่ พยากรณ์อากาศที่ทุกคนสนใจเป็นครั้งคราวนั้นได้มาจากการคำนวณแบบจำลองที่เขียนในภาษานี้ นอกจากนี้ภาษายังไม่นิ่ง แต่มีการปรับปรุงอย่างต่อเนื่อง ดังนั้นหลังจากมาตรฐานที่อธิบายไว้ก่อนหน้านี้ 77 และ 90 ฉบับใหม่ 95, 2546, 2551 จึงปรากฏขึ้นซึ่งมีการสนับสนุนในคอมไพเลอร์ปัจจุบัน Fortran เวอร์ชันล่าสุดได้ปรับปรุงภาษาที่ผ่านการทดสอบตามเวลาค่อนข้างใหม่ โดยให้การสนับสนุนรูปแบบสมัยใหม่ เพิ่มการเขียนโปรแกรมเชิงวัตถุ ซึ่งเกือบจะกลายเป็นไพ่ที่สำคัญที่สุดของฝ่ายตรงข้ามของภาษานี้ นอกจากนี้ Portland Group ยังได้เปิดตัว PGI CUDA Fortran Compiler ซึ่งช่วยให้การคำนวณแบบขนานสูงบนการ์ดวิดีโอ ดังนั้นผู้ป่วยจึงมีชีวิตมากกว่าชีวิต ซึ่งหมายความว่าโปรแกรมเมอร์ของ Fortran ยังคงเป็นที่ต้องการ

    แทนที่จะเป็นคำหลัง

    และตอนนี้ฉันอยากจะกลับไปสู่หัวข้อที่ยกมาแต่เดิมเกี่ยวกับการเรียนรู้การเขียนโปรแกรม และพยายามกำหนดข้อดีหลักของ Fortran โดยย่อเมื่อเลือกเป็นภาษาแรก
    • Fortran นั้นง่ายต่อการเรียนรู้ ไวยากรณ์สามารถเข้าใจได้สำหรับผู้ที่ไม่ได้รับการฝึกฝน เมื่อคุณรู้พื้นฐานแล้ว ก็เป็นเรื่องง่ายที่จะเรียนรู้ภาษาอื่นอีกครั้ง
    • ชุดเครื่องมือฟรีช่วยให้คุณไม่ได้รับคำถามที่ไม่จำเป็นจากผู้ถือลิขสิทธิ์
    • ภาษานี้เป็นภาษาที่ครูคุ้นเคยเนื่องจากมีมายาวนานและครูของเราก็เป็นตัวแทนของรุ่นพี่เป็นหลัก
    • เผยแพร่ไปทั่วโลกและเป็นขุมสมบัติของห้องสมุดทุกประเภท
    • ได้มาตรฐาน ข้ามแพลตฟอร์ม และเข้ากันได้กับการแก้ไขก่อนหน้านี้
    • มีประโยชน์สำหรับนักศึกษาวิชาเอกทางเทคนิค และโดยเฉพาะอย่างยิ่งวิชาเอกฟิสิกส์และคณิตศาสตร์ เนื่องจากเน้นไปที่การคำนวณทางวิทยาศาสตร์และวิศวกรรมศาสตร์
    • ที่เกี่ยวข้องและเป็นที่ต้องการมาจนถึงทุกวันนี้
    แล้วทำไมไม่ฟอร์ทรานล่ะ?

    ตัวอักษร - ในการเขียนโปรแกรม - ระบบของสัญลักษณ์ที่ไม่สามารถแยกส่วนและแยกแยะได้อย่างมั่นใจ (ตัวอักษร ตัวเลข เครื่องหมายวรรคตอน ฯลฯ ) ที่ใช้ในการสร้างภาษาการเขียนโปรแกรม

    ไวยากรณ์เป็นด้านข้างของภาษาการเขียนโปรแกรมที่อธิบายโครงสร้างของโปรแกรมเป็นชุดอักขระ ไวยากรณ์ของภาษาขัดแย้งกับความหมายของภาษา ไวยากรณ์ของภาษาอธิบายถึงภาษาที่ "บริสุทธิ์" ในขณะที่ความหมายกำหนดความหมายให้กับโครงสร้างทางวากยสัมพันธ์ต่างๆ

    ความหมาย - ในการเขียนโปรแกรม - ระบบกฎสำหรับกำหนดพฤติกรรมของโครงสร้างแต่ละภาษา ความหมายกำหนดความหมายความหมายของประโยคในภาษาอัลกอริทึม

    ภาษาการเขียนโปรแกรมระดับต่ำ – Autocode, Assembly,

    ภาษาการเขียนโปรแกรมระดับสูง - Fortran, Algol, Cobol, Pascal, BASIC, C++, Prolog

    ภาษาการเขียนโปรแกรมระดับสูงพิเศษ – APL, ALGOL-68

    ภาษาโปรแกรมคอมพิวเตอร์ - Fortran, Pascal, Algol, BASIC, C

    ภาษาประมวลผลเชิงสัญลักษณ์ – Lisp, Prolog, Snoball ฯลฯ

    ภาษายุคแรก:

    รหัสเครื่องเป็นภาษาการเขียนโปรแกรมรุ่นแรก

    ภาษารุ่นที่สอง:

    ผู้ประกอบ

    ภาษารุ่นที่สาม:

    ภาษาเหล่านี้มักถูกกำหนดให้เป็นภาษาระดับ "สูง"

    ภาษารุ่นที่สี่:

    พื้นฐาน ภาษาโคบอล ภาษาซี และภาษาปาสคาล

    ภาษาโปรแกรมรุ่นที่ห้า:

    คำนำ, LISP, C++, Visual Basic, Delphi

    ภาษาโปรแกรมฟอร์แทรน

    ภาษาโปรแกรมระดับสูงภาษาแรกพร้อมนักแปล สร้างขึ้นระหว่างปี 1954 ถึง 1957 โดยกลุ่มโปรแกรมเมอร์ที่นำโดย John Backus ที่ IBM ชื่อ Fortran เป็นตัวย่อของ FORmula TRANslator (นักแปลสูตร) Fortran ใช้กันอย่างแพร่หลายสำหรับการคำนวณทางวิทยาศาสตร์และวิศวกรรมเป็นหลัก ข้อดีอย่างหนึ่งของ Fortran สมัยใหม่คือมีโปรแกรมและไลบรารีรูทีนย่อยจำนวนมากที่เขียนอยู่ในนั้น ห้องสมุดเหล่านี้ส่วนใหญ่เป็นทรัพย์สินของมนุษยชาติจริงๆ ห้องสมุดเหล่านี้มีอยู่ในซอร์สโค้ด มีการจัดทำเอกสารอย่างดี มีการแก้ไขจุดบกพร่อง และมีประสิทธิภาพมาก ดังนั้นจึงมีราคาแพงในการเปลี่ยนแปลง ไม่ต้องพูดถึงการเขียนใหม่ในภาษาการเขียนโปรแกรมอื่น แม้ว่าจะมีการพยายามแปลงโค้ด FORTRAN เป็นภาษาโปรแกรมสมัยใหม่เป็นประจำก็ตาม

    Modern Fortran (Fortran 95 และ Fortran 2003) ได้รับคุณสมบัติที่จำเป็นสำหรับการเขียนโปรแกรมที่มีประสิทธิภาพสำหรับสถาปัตยกรรมคอมพิวเตอร์ใหม่และอนุญาตให้ใช้เทคโนโลยีการเขียนโปรแกรมสมัยใหม่ โดยเฉพาะ OOP

    วิวัฒนาการของมาตรฐานภาษา

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

    ฟอร์แทรน 77 (1980)

    มีการปรับปรุงหลายอย่าง:

    ตัวดำเนินการสำหรับการเปิดและปิดไฟล์ (เปิด, ปิด) และส่งออกไปยังอุปกรณ์มาตรฐาน - PRINT ได้รับการแนะนำแล้ว

    เพิ่มแล้ว ประเภทสตริงข้อมูลและฟังก์ชันสำหรับการประมวลผล

    ตัวดำเนินการบล็อก IF และโครงสร้าง IF THEN - ELSE IF THEN - END IF ถูกนำมาใช้ เช่นเดียวกับตัวดำเนินการรวมส่วนของโปรแกรม INCLUDE

    มีการแนะนำความสามารถในการทำงานกับไฟล์ที่เข้าถึงโดยตรง

    ขนาดอาร์เรย์สูงสุดเพิ่มขึ้นจาก 3 เป็น 7 ข้อจำกัดเกี่ยวกับดัชนีอาร์เรย์ได้ถูกลบออกแล้ว

    ความสามารถในการทำงานกับขั้นตอนได้รับการปรับปรุงและขยาย

    แนวคิดของไฟล์ภายใน (ซึ่งได้แก่ ตัวแปรอาร์เรย์ ตัวเลข และสตริง) ได้รับการแนะนำแล้ว ไฟล์ภายในอนุญาตโดยเฉพาะการแปลงตัวเลขเป็นสตริงและบรรทัดเป็นตัวเลขโดยใช้ตัวดำเนินการอ่านและเขียนมาตรฐาน READ และ WRITE

    ฟอร์ทราน 90 (1991)

    มาตรฐานภาษาได้รับการแก้ไขอย่างมีนัยสำคัญ

    มีการแนะนำรูปแบบการเขียนโค้ดฟรี คำอธิบายเพิ่มเติมสำหรับ IMPLICIT NONE, TYPE, ALLOCATABLE, POINTER, TARGET, NAMELIST ปรากฏขึ้น

    มีการแนะนำผู้ควบคุมและการก่อสร้าง เพิ่ม DO ... END DO (แทนที่จะสิ้นสุดลูปด้วยป้ายกำกับ), DO WHILE ซึ่งเป็นคำสั่งถ่ายโอนการควบคุมไปยังจุดเริ่มต้นของลูป CYCLE ซึ่งเป็นโครงสร้างการเลือก SELECT CASE (เพื่อแทนที่โครงสร้าง IF ที่ยุ่งยากและคำสั่ง GOTO) เช่น ตลอดจนคำสั่งสุดท้ายของหน่วยโปรแกรม ขั้นตอนแบบแยกส่วนหรือภายใน END

    มีการแนะนำชุดเครื่องมือพอยน์เตอร์และฟังก์ชั่นสำหรับการทำงานกับ RAM (คล้ายกับภาษา C)

    มีการแนะนำตัวดำเนินการสำหรับการทำงานกับหน่วยความจำแบบไดนามิก (ALLOCATE, DEALLOCATE, NULLIFY)

    เพิ่มส่วนประกอบซอฟต์แวร์ MODULE, PRIVATE, PUBLIC, CONTAINS, INTERFACE, USE, INTENT

    มีการแนะนำการมาสก์การกำหนดอาร์เรย์ (การกำหนดเมื่อดำเนินการเงื่อนไขลอจิคัลที่กำหนดให้กับองค์ประกอบอาร์เรย์โดยไม่ต้องใช้ตัวดำเนินการเงื่อนไข) รวมถึงการทำงานกับส่วนของอาร์เรย์ ตัวดำเนินการและโครงสร้าง WHERE ได้รับการแนะนำเพื่อแทนที่ลูปบางส่วน (ด้านขวาของตัวดำเนินการกำหนดไม่มีการเปลี่ยนแปลง) การมาสก์การมอบหมายใช้กับตัวดำเนินการ โครงสร้าง และฟังก์ชันเกือบทั้งหมดที่ทำงานบนอาร์เรย์

    การดำเนินการมาตรฐานของการกำหนด การบวก การลบ ตลอดจนการหารและการคูณด้วยตัวเลขจะขยายไปยังอาร์เรย์และส่วนต่างๆ ที่กำหนดโดยส่วนต่างๆ ในกรณีนี้ จะดำเนินการมอบหมายตามองค์ประกอบ

    มีฟังก์ชันในตัวใหม่ปรากฏขึ้น สำหรับการทำงานกับอาร์เรย์เป็นหลัก ฟังก์ชันสำหรับการคำนวณในอาร์เรย์: ALL (ผลคูณเชิงตรรกะ) และ MASK (การบวกเชิงตรรกะ), COUNT (จำนวนองค์ประกอบจริง), PRODUCT (ผลคูณขององค์ประกอบอาร์เรย์), SUM (การเพิ่มองค์ประกอบอาร์เรย์), DOT_PRODUCT (ผลคูณสเกลาร์), MATMUL ( การคูณเมทริกซ์) เพิ่มฟังก์ชันวิธีใช้แล้ว เช่นเดียวกับฟังก์ชันสำหรับการปฏิรูปและการพับอาร์เรย์

    องค์ประกอบของ OOP ปรากฏในภาษา มีการแนะนำประเภทข้อมูลที่ได้มา มีการประกาศรายการคุณลักษณะภาษาที่ล้าสมัยแยกต่างหากซึ่งตั้งใจจะลบออกในอนาคต

    เพิ่มแล้ว ฟังก์ชั่นเพิ่มเติมสำหรับการทำงานกับข้อมูลสตริง โดยเฉพาะฟังก์ชัน TRIM (การลบช่องว่างต่อท้าย) และ REPEAT (การคัดลอกสตริงหลายรายการ) และฟังก์ชันการจัดตำแหน่งด้านซ้ายและขวา

    ฟอร์ทราน 95 (1997)

    การแก้ไขมาตรฐานเดิม มีการนำตัวดำเนินการและโครงสร้าง FORALL มาใช้ ซึ่งให้ความยืดหยุ่นมากกว่าตัวดำเนินการ WHERE และโครงสร้างเพื่อกำหนดอาร์เรย์และแทนที่ลูปที่ยุ่งยาก FORALL ช่วยให้คุณสามารถแทนที่การกำหนดส่วนใดๆ หรือโดยเฉพาะอย่างยิ่งส่วนคำสั่ง WHERE ซึ่งให้การเข้าถึงเส้นทแยงมุมของเมทริกซ์ โอเปอเรเตอร์นี้ถือว่ามีแนวโน้มดีในการประมวลผลแบบขนาน ซึ่งอำนวยความสะดวกในการประมวลผลแบบขนานอย่างมีประสิทธิภาพมากกว่าลูป

    ฟอร์ทราน 2003 (2004)

    การพัฒนาเพิ่มเติมของการสนับสนุน OOP ในภาษา การโต้ตอบกับระบบปฏิบัติการ มีการเพิ่มคุณสมบัติต่อไปนี้ด้วย:

    อินพุต/เอาต์พุตข้อมูลแบบอะซิงโครนัส

    เครื่องมืออินเทอร์เฟซ C

    การปรับปรุงตำแหน่งข้อมูลแบบไดนามิก

    มาตรฐานรองรับโดยใช้ภาษาคอมพิวเตอร์แบบขนาน (Co-Arrays Fortran) นอกจากนี้ยังมีการวางแผนเพื่อเพิ่มขนาดสูงสุดของอาร์เรย์เป็น 15 เพิ่มฟังก์ชันทางคณิตศาสตร์พิเศษในตัว ฯลฯ

    ฟอร์ทราน(เช่น FORTRAN) สิ่งนี้ ภาษาโปรแกรมได้รับการพัฒนาในช่วงต้นทศวรรษ 1950 และยังคงใช้อยู่จนถึงปัจจุบัน ชื่อนี้ย่อมาจาก "FORmula TRANslator" ภาษาเวอร์ชันแรกๆ รู้จักกันในชื่อ FORTRAN แต่ตัวอักษรไม่ได้ใช้ตัวพิมพ์ใหญ่อีกต่อไปตั้งแต่รุ่น Fortran 90 มาตรฐานภาษาราชการในปัจจุบันเรียกภาษานี้ว่า "FORTRAN"

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

    คอมไพเลอร์ FORTRAN ตัวแรกได้รับการพัฒนาสำหรับ IBM 704 ในปี 1954-57 โดยทีมงาน IBM ที่นำโดย John W. Backus มันเป็นคอมไพเลอร์ที่ปรับให้เหมาะสมที่สุดเพราะผู้เขียนให้เหตุผลว่าจะไม่มีใครใช้ภาษานี้ แม้ว่าจะเรียนรู้การเขียนโปรแกรมสำหรับหุ่นจำลองก็ตาม เว้นแต่ว่าประสิทธิภาพของภาษาจะเทียบได้กับภาษาแอสเซมบลี

    ภาษานี้แพร่หลายในหมู่นักวิทยาศาสตร์และถูกนำมาใช้ในการเขียนโปรแกรมที่เน้นตัวเลข ซึ่งบังคับให้ผู้สร้างคอมไพเลอร์ Fortran ต้องเขียนโค้ดคอมไพเลอร์ใหม่อย่างระมัดระวังเพื่อสร้างโค้ดที่เร็วขึ้น ปัจจุบันมีซัพพลายเออร์คอมไพเลอร์ Fortran ประสิทธิภาพสูงหลายราย ความก้าวหน้ามากมายในทฤษฎีและการออกแบบคอมไพเลอร์ได้รับแรงบันดาลใจจากความจำเป็นในการสร้าง รหัสที่ดีสำหรับโปรแกรม Fortran ที่จำเป็นสำหรับพื้นฐานการเขียนโปรแกรม

    มีภาษาที่รู้จักหลายเวอร์ชัน รวมถึง FORTRAN IV ที่มีชื่อเสียง (หรือที่รู้จักในชื่อ FORTRAN 66), Fortran 77 และ Fortran 90 มาตรฐานอย่างเป็นทางการครั้งสุดท้ายสำหรับภาษาที่เผยแพร่ในปี 1997 เป็นที่รู้จักในชื่อ Fortran 95 เวอร์ชันของ IBM ภาษาไม่เคยได้รับความนิยมมากเท่านี้มาก่อน ตามที่พัฒนาโดยบริษัทอื่น และนี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งสำหรับ FORTRAN IV - WATFOR ซึ่งเป็นเวอร์ชันของ FORTRAN IV ที่พัฒนาขึ้นที่มหาวิทยาลัยวอเตอร์ลูในแคนาดา ได้รับความนิยมมากที่สุดเนื่องจากส่งข้อความแสดงข้อผิดพลาดในการคอมไพล์ได้ดีกว่า คนอื่น. คล้ายกัน, ซอฟต์แวร์สำหรับการสร้างบล็อกไดอะแกรมอัตโนมัติจากโปรแกรม FORTRAN ได้รับการพัฒนานอก IBM

    ในตอนแรก ภาษาอาศัยการจัดรูปแบบซอร์สโค้ดที่แม่นยำและการใช้สถานะตัวเลขและคำสั่ง GOTO อย่างหนัก นิสัยใจคอเหล่านี้ได้ถูกลบออกจากภาษาเวอร์ชันใหม่แล้ว เวอร์ชันต่อมายังแนะนำแนวคิดการเขียนโปรแกรม "สมัยใหม่" เช่น ความคิดเห็นใน รหัสแหล่งที่มาและเอาต์พุตข้อความ, คำสั่ง IF-THEN-ELSE (ใน FORTRAN 77), การเรียกซ้ำ (ใน Fortran 90) และ การคำนวณแบบขนานในขณะเดียวกันก็พยายามรักษาโปรไฟล์ "แบบลีน" ของ Fortran และประสิทธิภาพสูงไว้ ในบรรดาภาษาที่ใช้ Fortran ที่ได้รับความนิยมมากที่สุด ได้แก่ SAS ซึ่งได้รับการออกแบบมาเพื่อรับรายงานทางสถิติและ SIMSCRIPT สำหรับการสร้างแบบจำลองกระบวนการเข้าคิว

    ผู้จำหน่ายคอมพิวเตอร์วิทยาศาสตร์ประสิทธิภาพสูง (Burroughs, CDC, Cray, IBM, เท็กซัส อินสทรูเมนท์ส) เพิ่มส่วนขยายให้กับ Fortran เพื่อเปิดใช้งานการใช้คุณสมบัติฮาร์ดแวร์พิเศษ เช่น: แคชคำสั่ง ตัวประมวลผลการเชื่อมต่อไปป์ อาร์เรย์เวกเตอร์ ฯลฯ ตัวอย่างเช่น หนึ่งในคอมไพเลอร์ IBM Fortran (H Extended IUP) มีเลเยอร์การปรับให้เหมาะสมที่บังคับคำสั่ง รหัสเครื่องทำให้บล็อกเลขคณิตภายในหลายบล็อกยุ่งอยู่ตลอดเวลา อีกตัวอย่างหนึ่งคือ CFD ซึ่งเป็น "ตัวแปร" พิเศษของ Fortran ที่พัฒนาขึ้นโดยเฉพาะสำหรับซูเปอร์คอมพิวเตอร์ ILLIAC IV ที่ทำงานที่ศูนย์วิจัย NASA Ames ส่วนขยายเหล่านี้หายไปเมื่อเวลาผ่านไปหรือองค์ประกอบเหล่านี้รวมอยู่ในมาตรฐานหลัก ส่วนขยายหลักคือ OpenMP ซึ่งเป็นส่วนขยายข้ามแพลตฟอร์มสำหรับการเข้าถึง หน่วยความจำที่ใช้ร่วมกัน- ส่วนขยายใหม่อีกตัวหนึ่งคือ CoArray Fortran ได้รับการออกแบบมาเพื่อส่งเสริมการพัฒนาการเขียนโปรแกรมแบบขนานและ .

    ความพยายามครั้งแรกของผู้เริ่มต้นในการพัฒนา Erlang อาจน่าหงุดหงิดมากเพราะไวยากรณ์ของภาษานี้ถือเป็นการเขียนแบบลับโดยโปรแกรมเมอร์หลายคนที่เริ่มเรียนด้วยภาษาสมัยใหม่ การเขียนตัววิเคราะห์คำศัพท์เป็นเรื่องยากเมื่ออักขระที่ผิดพลาดเพียงตัวเดียวอาจส่งผลให้เกิดข้อผิดพลาดรันไทม์แทนที่จะเป็นข้อผิดพลาดในการคอมไพล์หากไม่ได้ใช้โครงสร้างที่ระบุ ในเวอร์ชันแรกสุดบางเวอร์ชัน ไม่มีออบเจ็กต์ (OOP) ซึ่งถือเป็นคุณลักษณะที่มีประโยชน์ของการเขียนโปรแกรม สภาพที่ทันสมัยหรือตัวอย่างเช่นหายไป การกระจายแบบไดนามิกหน่วยความจำ. ในเวลาเดียวกันไวยากรณ์ของภาษา Fortran สามารถใช้ได้กับงานทางวิทยาศาสตร์และการคำนวณที่เกี่ยวข้องกับการดำเนินการกับตัวเลขและข้อบกพร่องหลายประการได้ถูกนำมาพิจารณาในเพิ่มเติม รุ่นที่ใหม่กว่า- ตัวอย่างเช่น Fortran 95 มีมาก คำสั่งสั้น ๆดำเนินการทางคณิตศาสตร์ด้วยเมทริกซ์และอาร์เรย์ ซึ่งไม่เพียงแต่ช่วยเพิ่มความสามารถในการอ่านของโปรแกรมได้อย่างมาก แต่ยังให้ ข้อมูลที่เป็นประโยชน์สำหรับคอมไพเลอร์เพื่อให้สามารถดำเนินการแบบเวคเตอร์ได้ ด้วยเหตุผลเหล่านี้ Fortran จึงไม่ค่อยถูกใช้นอกระบบคอมพิวเตอร์ทางวิทยาศาสตร์และวิศวกรรม แต่ยังคงเป็นภาษาสำหรับ ประสิทธิภาพสูงการคำนวณเชิงตัวเลข