IOCCC 2024 สร้างสถิติใหม่ด้วยผู้ชนะ 23 รายหลังหยุดพัก 4 ปี พร้อมเปิดตัว AI Chatbot และเครื่องคำนวณดวงจันทร์

ทีมชุมชน BigGo
IOCCC 2024 สร้างสถิติใหม่ด้วยผู้ชนะ 23 รายหลังหยุดพัก 4 ปี พร้อมเปิดตัว AI Chatbot และเครื่องคำนวณดวงจันทร์

การแข่งขัน International Obfuscated C Code Contest ( IOCCC ) กลับมาอย่างยิ่งใหญ่หลังจากหยุดพักไป 4 ปี โดยประกาศผู้ชนะจำนวนสถิติใหม่ 23 รายสำหรับการแข่งขันครั้งที่ 28 นี่เป็นการฉลองครบรอบ 40 ปีของการแข่งขัน และเป็นจำนวนผู้ชนะที่มากที่สุดในประวัติศาสตร์ IOCCC โดยเกินสถิติเดิม 15 รายไปมาก

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

สถิติสำคัญของ IOCCC 2024:

  • ผู้ชนะ: 23 รายการ (สถิติเก่า: 15 รายการ)
  • ระยะเวลาการตัดสิน: 33 วัน (เร็วกว่าการแข่งขันครั้งก่อนๆ มาก)
  • การเพิ่มขีดจำกัดขนาด: 21% (การเพิ่มครั้งแรกในรอบ 10+ ปี)
  • การกระจายขนาดโค้ด: 50% ของผู้ชนะใช้พื้นที่น้อยกว่า 2/3 ของขีดจำกัด, ผู้ชนะ 10 รายใช้พื้นที่น้อยกว่า 1/2 ของขีดจำกัด
  • ระยะเวลาการแข่งขัน: 5 มีนาคม - 5 มิถุนายน 2025 (การส่งผลงาน), การตัดสินเสร็จสิ้น 7 กรกฎาคม 2025

ชุมชนหลงใหลในเทคนิคโค้ดที่ชาญฉลาด

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

นี่คือสิ่งที่ทำให้ฉันรู้สึกว่าฉันทำงานผิดสายอาชีพ...

อีกหนึ่งผลงานที่ได้รับความนิยมคือเครื่องมือขยายภาพแบบบรรทัดเดียวที่ทำเทคนิคที่น่าทึ่ง เมื่อคุณป้อน MD5 hash ของซอร์สโค้ดของมันเอง มันจะแสดง IOCCC logo ออกมา ผู้เขียนระบุด้วยอารมณ์ขันว่าเวลาที่ใช้ไม่ได้เป็นเรื่องบังเอิญทั้งหมด - จำนวนบิตของรูปแบบอินพุตใกล้เคียงกับสิ่งที่ GPU อายุ 5 ปีสามารถคำนวณได้ใน 1 ชั่วโมงของการดำเนินการ MD5

ผลงานที่โดดเด่นในปี 2024:

  • 2024/cable1: "เอนจิ้นการประมวลผล LLM ที่เล็กที่สุดในโลก" ที่รัน LLAMA 2 (7B parameters)
  • 2024/kurdyukov1: เครื่องคำนวณดวงจันทร์โดยใช้ค่าคงที่ 2551443
  • 2024/stedolan: ตัวคลายการบีบอัดรูปภาพแบบบรรทัดเดียว (135 bytes) ที่แสดงโลโก้ IOCCC จาก MD5 hash ของตัวมันเอง
  • 2024/endoh1: Ray tracer ที่ใช้ C preprocessor (รูปภาพ 512x512 ใช้เวลาเรนเดอร์ 23.5 ชั่วโมง)
  • 2024/carlini: โปรแกรมจำลอง Intel 4004 processor ที่จำลองวงจรแต่ละเกตแยกกัน
  • 2024/howe: โปรแกรมแก้ไขข้อความที่มีฟังก์ชันมากกว่า ed(1) พร้อมรองรับ UTF-8

ผลกระทบจำกัดของ AI ต่อการปิดบังโค้ด

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

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

ความสำเร็จทางเทคนิคผลักดันขีดจำกัด

ผู้ชนะปีนี้แสดงให้เห็นความหลากหลายทางเทคนิคที่น่าทึ่ง ผลงานหนึ่งอ้างว่าเป็นเอนจิ้นการอนุมานโมเดลภาษาขนาดใหญ่ที่เล็กที่สุดในโลก โดยรัน LLAMA 2 ของ Meta ด้วยพารามิเตอร์ 7 พันล้านตัว อีกผลงานหนึ่งจำลองโปรเซสเซอร์ Intel 4004 จากปี 1971 โดยการจำลองเกตวงจรแต่ละตัว ซึ่งเป็นแนวทางที่ละเอียดอย่างไม่น่าเชื่อ ทำให้โค้ดทำงานช้าแต่แท้จริง

ผลงานที่ทดสอบความอดทนมากที่สุดคือ ray tracer ที่ทำงานผ่าน C preprocessor operations ทั้งหมด การสร้างภาพ 8x8 อย่างง่ายใช้เวลาประมาณ 20 วินาที ในขณะที่การเรนเดอร์ 512x512 ที่ละเอียดต้องใช้เวลามากกว่า 23 ชั่วโมงในการประมวลผลล่วงหน้าผ่านการเรียกใช้คอมไพเลอร์หลายพันครั้ง

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

มองไปข้างหน้า IOCCC29 มีแผนจัดขึ้นในเดือนธันวาคม 2025 โดยผู้จัดสัญญาว่าจะมีกฎเกณฑ์ที่คล่องตัวและนวัตกรรมต่อเนื่องในศิลปะของโค้ดที่สวยงามและน่าพิศวง

อ้างอิง: The International Obfuscated C Code Contest 2024 - The 28th IOCCC