ฟีเจอร์การจัดดัชนีอาร์เรย์แบบอิสระของ Fortran จุดประกายการอภิปรายในหมู่นักพัฒนา

ทีมชุมชน BigGo
ฟีเจอร์การจัดดัชนีอาร์เรย์แบบอิสระของ Fortran จุดประกายการอภิปรายในหมู่นักพัฒนา

บทความล่าสุดเกี่ยวกับการแปลงโปรแกรมจำลองการบิน F-16 ที่เขียนด้วย Fortran ไปยัง Unity ได้จุดประกายการอภิปรายที่น่าสนใจในชุมชนนักเขียนโปรแกรม โดยเฉพาะอย่างยิ่งเรื่องความสามารถในการจัดดัชนีอาร์เรย์ที่มีพลังแต่ไม่ค่อยมีคนรู้จักของ Fortran การสนทนานี้เน้นให้เห็นว่าฟีเจอร์บางอย่างของภาษาโปรแกรมถูกมองข้ามหรือลืมไปในการพัฒนาสมัยใหม่

การออกแบบที่เพรียวบางของเครื่องบินแห่งอนาคตแสดงถึงนวัตกรรมในเทคโนโลยีการจำลองการบิน
การออกแบบที่เพรียวบางของเครื่องบินแห่งอนาคตแสดงถึงนวัตกรรมในเทคโนโลยีการจำลองการบิน

ความสามารถในการจัดดัชนีอาร์เรย์แบบยืดหยุ่นของ Fortran ดึงดูดความสนใจ

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

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

ตัวอย่างการใช้งาน:

real(8), dimension(-2:9) :: lookup_table
! สร้างอาร์เรย์ที่มีดัชนีตั้งแต่ -2 ถึง 9
! มีประโยชน์สำหรับค่ามุมโจมตีในการประยุกต์ใช้ด้านการบินและอวกาศ
กราฟนี้แสดงแรงยกในความสัมพันธ์กับมุม โดยเน้นแบบจำลองทางคณิตศาสตร์ที่สำคัญในด้านการบิน
กราฟนี้แสดงแรงยกในความสัมพันธ์กับมุม โดยเน้นแบบจำลองทางคณิตศาสตร์ที่สำคัญในด้านการบิน

ฟีเจอร์ที่สูญหายไปในภาษาโปรแกรมสมัยใหม่

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

เหมือนกับฟีเจอร์ของภาษาโปรแกรมหลายอย่าง รู้สึกว่ามันสูญหายไปเพียงเพราะ C ไม่มีและทุกคนต้องการเลียนแบบ C

ข้อสังเกตนี้จุดประกายการไตร่ตรองในวงกว้างเกี่ยวกับวิธีที่การตัดสินใจในการออกแบบภาษาสามารถมีอิทธิพลต่อเครื่องมือและแนวปฏิบัติในการเขียนโปรแกรมทั้งหลายรุ่น

ภาษาโปรแกรมที่รองรับการกำหนดดัชนีอาร์เรย์แบบอิสระ:

  • Fortran (อนุญาตให้อาร์เรย์เริ่มต้นที่ดัชนีใดก็ได้ เช่น -2 ถึง 9)
  • Pascal และ Modula
  • Ada (พัฒนาจาก Pascal )
  • ภาษา BASIC หลายรูปแบบ
  • ภาษาที่พัฒนาจาก C ส่วนใหญ่ไม่รองรับคุณสมบัตินี้

การประยุกต์ใช้จริงและการแลกเปลี่ยน

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

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

ผลกระทบในวงกว้างต่อการออกแบบภาษา

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

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

อ้างอิง: Translating a Fortran F-16 Simulator to Unity 4D