เทคนิคการแปลงโค้ด C ทั้งหมดเป็น Rust (TRACTOR)
(darpa.mil)-
แปล C เป็น Rust (TRACTOR)
- Dr. Dan Wallach
- หลังจากความพยายามยาวนานกว่า 20 ปีในการแก้ปัญหาด้าน memory safety ของ C และ C++ ชุมชนวิศวกรรมซอฟต์แวร์ก็ได้ข้อสรุปว่า
- การพึ่งพาเพียงเครื่องมือค้นหาบั๊กนั้นไม่เพียงพอ
- แนวทางที่ได้รับความนิยมมากกว่าคือการใช้ภาษาโปรแกรมที่ "ปลอดภัย" ซึ่งสามารถปฏิเสธโปรแกรมที่ไม่ปลอดภัยได้ตั้งแต่ขั้นตอนคอมไพล์
- โครงการ TRACTOR มีเป้าหมายเพื่อแปลโค้ด C เดิมให้เป็น Rust โดยอัตโนมัติ
- เป้าหมายคือให้ได้คุณภาพและสไตล์เทียบเท่ากับที่นักพัฒนา Rust ที่มีประสบการณ์เขียนเอง เพื่อกำจัดช่องโหว่ด้านความปลอดภัยจากปัญหา memory safety ที่เกิดขึ้นในโปรแกรม C
- โครงการนี้อาจรวมการผสมผสานแบบใหม่ของ static analysis, dynamic analysis และเทคนิค machine learning เช่น large language models
- สามารถดูข้อมูลเพิ่มเติมได้จากประกาศพิเศษ TRACTOR Special Notice บน SAM.Gov
-
ผลงานสำคัญของ DARPA
-
การปฏิวัติสเตลธ์
- ในช่วงเริ่มต้นของการวิจัยเทคโนโลยีสเตลธ์ของ DARPA เครื่องต้นแบบ Have Blue ซึ่งเป็นต้นแบบของ F-117A ได้บินสำเร็จเป็นครั้งแรกในปี 1977
- ความสำเร็จของโครงการ F-117A เป็นสัญญาณเริ่มต้นของการปฏิวัติสเตลธ์ ซึ่งนำมาซึ่งประโยชน์มหาศาลต่อความมั่นคงของชาติ
-
ระบบนำทางในฝ่ามือ
- เครื่องรับ GPS รุ่นแรก ๆ มีขนาดใหญ่และหนัก
- ในปี 1983 DARPA ได้พยายามย่อส่วนอุปกรณ์เหล่านี้ ส่งผลให้มีการนำความสามารถของ GPS ไปใช้อย่างแพร่หลายมากขึ้น
-
ปูทางสู่อินเทอร์เน็ตสมัยใหม่
- งานวิจัยของ ARPA มีบทบาทสำคัญในการเริ่มต้นการปฏิวัติสารสนเทศ
- ได้พัฒนารากฐานเชิงแนวคิดของ ARPANET และคิดค้น digital protocols ที่นำไปสู่การกำเนิดของอินเทอร์เน็ต
-
-
สรุปโดย GN⁺
- โครงการ TRACTOR เป็นความพยายามสำคัญในการแก้ปัญหา memory safety ด้วยการแปลโค้ด C เดิมเป็น Rust โดยอัตโนมัติ
- งานวิจัยของ DARPA มีส่วนสำคัญอย่างมากต่อความก้าวหน้าของเทคโนโลยีสมัยใหม่ เช่น เทคโนโลยีสเตลธ์ การย่อส่วน GPS และการกำเนิดของอินเทอร์เน็ต
- บทความนี้อาจเป็นประโยชน์ต่อวิศวกรซอฟต์แวร์และผู้ที่สนใจประวัติศาสตร์เทคโนโลยี
- โครงการที่มีแนวคิดคล้ายกัน ได้แก่ Microsoft Checked C และ Google's Carbon ภาษา
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
Rust ที่เขียนโดยโปรแกรมเมอร์ผู้ชำนาญนั้นแตกต่างจาก C มาก และโค้ดที่น่าสนใจส่วนใหญ่เขียนด้วย C++
น่าสนใจที่ข้อเสนอนี้ถูกเผยแพร่ออกสู่สาธารณะ
ไม่ชอบแนวคิดแบบ "มาเขียนโลกใหม่ด้วย Rust กันเถอะ"
หลายคนกำลังอ่านโครงการนี้ว่าเป็นการเรียกร้องให้แปลโค้ด C และ C++ เป็น Rust
มีปัญหาเรื่องการดูแลรักษา codebase ที่แปลแล้ว
โปรแกรมที่พอร์ตอัตโนมัติต้องมีความสามารถทุกอย่างที่จำเป็นเพื่อทำให้โค้ด C ปลอดภัยได้
ควรจ้างวิศวกรฝีมือดีที่ถูกเลย์ออฟจาก Mozilla ก่อน เพื่อให้ทำงานต่อกับตัวภาษาเอง
เป็นเรื่องดีที่ DARPA ผลักดันปัญหานี้