- IOCCC28 กลับมาอีกครั้งหลังจากผ่านไป 4 ปี และมีการส่งผลงาน โค้ด C ระดับยากสูงสุด จากนักพัฒนาทั่วโลกจำนวนมาก
- เว็บไซต์และโครงสร้างพื้นฐานได้รับการสร้างใหม่, การนำ mkiocccentry toolkit เข้ามาใช้งาน และการปรับปรุงระบบการส่งผลงาน ทำให้ประสิทธิภาพการดำเนินงานดีขึ้นอย่างมาก
- กระบวนการคัดเลือกมีความซับซ้อนและเข้มงวดยิ่งขึ้นเมื่อเทียบกับอดีต แต่ระยะเวลาคัดเลือกกลับสั้นลงมากกว่าปกติ
- แม้กฎขนาดโค้ดจะผ่อนคลายลง แต่ผลงานที่มีขนาดเล็กและคุณภาพสูงได้รับการคัดเลือกจำนวนมาก จึงคาดว่าการเปลี่ยนแปลงกติกาของการแข่งขันในอนาคตจะมีจำกัด
- ผลงานผู้ชนะที่น่าดึงดูดและมีความคิดสร้างสรรค์, เทคนิคออบฟัสเกต และเครื่องเสมือนหรืออีมูเลเตอร์เชิงทดลองถูกนำเสนอ และช่วยยกระดับการพัฒนา C
ภาพรวมและที่มาของ IOCCC28
- การแข่งขัน International Obfuscated C Code Contest (IOCCC28) ที่จัดขึ้นในปี 2024 เป็นเวทีแข่งขันโค้ด C ที่สร้างสรรค์และยากต่อการอ่าน ซึ่งมีผู้พัฒนาจากนานาชาติร่วมแข่งขันหลังจากช่วงพัก 4 ปี
- ในช่วงเวลาดังกล่าว เว็บไซต์ทางการของ IOCCC ได้รับการรีบิลด์ขนาดใหญ่ภายใต้ชื่อ "Great Fork Merge" โดยมี commit มากกว่า 6,168 ครั้ง
- ด้านการดำเนินงาน มีการนำโซลูชันใหม่ๆ อย่างเช่น toolkit mkiocccentry, ขั้นตอนการสมัครใหม่ และการเพิ่มระบบเซิร์ฟเวอร์รับผลงานเข้ามา ทำให้ประสิทธิภาพการคัดเลือกและความเร็วในการเปิดเผยโค้ดดีขึ้น
- การรับผลงานเปิดรับตั้งแต่วันที่ 5 มีนาคม 2025 ถึง 5 มิถุนายน 2025 และการคัดเลือกเสร็จสิ้นภายใน "33 วัน" โดยหลังจบการแข่งขันเพียงประมาณ 2 ชั่วโมงซอร์สโค้ดทั้งหมดก็ถูกเผยแพร่แล้ว
ผลงานที่ส่งเข้าประกวดและแนวโน้มการคัดเลือก
- IOCCC28 ปีนี้มีจำนวนและคุณภาพของผลงานส่งเข้าประกวดสูงขึ้นมาก ส่งผลให้การคัดเลือกยากขึ้น และได้ผู้ชนะสูงสุดเป็นประวัติศาสตร์ที่ 23 ผลงาน
- "แม้ช่วงพัก 4 ปีจะทำให้ได้ผลงานที่ดีกว่าออกมาในบางส่วน แต่โดยรวมแล้วผู้เข้าร่วมได้ก้าวหน้าอย่างเด่นชัดทั้งในด้านเทคนิคการออบฟัสเกตและทักษะการเขียน C"
- แม้มีการเพิ่มเพดานขนาดโค้ดใหม่ (ประมาณ 21%) แต่ผลงานผู้ชนะเกินครึ่งหนึ่งยังคงอยู่ต่ำกว่า 2/3 ของเพดานทั้งหมด และมี 10 ผลงานที่มีขนาดต่ำกว่า 1/2 ซึ่งแสดงถึงประสิทธิภาพและคุณภาพไปพร้อมกัน
- ด้วยเหตุนี้จึงคาดว่าการเปลี่ยนแปลงข้อจำกัดขนาดโค้ดในอีก 10 ปีข้างหน้าจะเกิดขึ้นน้อยมาก
กติกาการตัดสินและแผนงานในอนาคต
- IOCCC วางแผนแก้ไขกติกาและแนวทางให้ทันสมัยและเป็นมิตรต่อผู้ใช้มากขึ้น และผู้ตัดสิน IOCCC จะเริ่มเตรียมตัวเพื่อการแข่งขัน IOCCC29 ซึ่งกำหนดไว้สำหรับปี 2025 เดือน 12
- มีแผนออก patch แบบ Pull Request เพื่อปรับปรุง repository ผู้ชนะบน GitHub และ repository ของ mkiocccentry toolkit
แนะนำผลงานผู้ชนะและไฮไลต์
-
มีผลงานผู้ชนะหลากหลายหัวข้อ ซึ่งมีผลงานหลักและจุดเด่นที่สำคัญดังต่อไปนี้
- ChatIOCCC: สร้างเครื่องมืออนุมาน LLM ที่เล็กที่สุดในโลกบนฐาน LLaMA 2 แบบโอเพ่นซอร์สของ Meta และมอบฟังก์ชันแชตบอตที่น่าสนุก
- Eh: โค้ดออบฟัสเกตของ ed(1) ที่ใช้งานได้จริงมากขึ้นด้วย UTF-8 accent
- 135-byte One-liner: โค้ดออบฟัสเกตที่สั้นมากและสร้างผลลัพธ์ที่หลากหลายจากค่าฮกซ์ที่ป้อนเข้ามา
- C Preprocessor Art: ทำให้ตัว preprocessor ทำงานเป็นพันถึงหลายแสนครั้งเพื่อเรนเดอร์ภาพ สร้างประสบการณ์ที่ไม่เหมือนใครพร้อมเวลารันสคริปต์ที่ยาวมาก
- Z₃ Virtual Machine: จำลอง virtual machine ตาม Z-machine เวอร์ชันที่ 3 โดยการอ่านซอร์สโค้ดราวกับเล่นเกมได้
- C64 Included Virtual Environment with Emulator: สภาพแวดล้อมเสมือนที่รวมตัว C64 emulator และรองรับการทดลอง scenario ที่มีความเสี่ยงเช่น fork bomb, การลบไฟล์ ฯลฯ ได้อย่างปลอดภัย
- Intel 4004 Chip Emulation: การจำลองเชิงศิลป์วงจรชิป Intel 4004 ซึ่งเป็นไมโครโปรเซสเซอร์เชิงพาณิชย์เชิงพาณิชย์ตัวแรกของโลกที่ออกจำหน่ายในปี 1971 ที่ระดับเกตด้วยโค้ด C
- Multilingual Puzzle: การออบฟัสเกตที่แปลกใหม่สำหรับผู้ที่คุ้นเคยกับอย่างน้อย 3 ภาษา (C, อังกฤษ และอื่นๆ)
ผู้เข้าร่วมการแข่งขันและข้อแนะนำในอนาคต
- การออบฟัสเกตที่คล้ายกับผลงานผู้ชนะเดิมจะได้คะแนนเพิ่มต่ำ และความคิดสร้างสรรค์พร้อมความสมบูรณ์แบบจะเป็นหลักในการตัดสิน
- สำหรับผู้ที่ไม่ได้รับรางวัล แนะนำให้กลับมาปรับปรุงและลองเข้าร่วมอีกครั้ง รวมถึงทดลองแนวทางที่หลากหลาย
- การเผยแพร่ผลงานที่ไม่ชนะแยกต่างหากก็ได้รับการยินดีต้อนรับ
คำแนะนำการคอมไพล์และรันผลงานที่ได้รับรางวัล
- อาจมีปัญหาความเข้ากันได้กับคอมไพเลอร์ C บางตัว จึงแนะนำให้ใช้ clang หรือ gcc เวอร์ชันล่าสุด
- มีการแนะนำวิธีแก้ปัญหาและส่ง patch ปรับปรุงผ่าน FAQ และเอกสารทางการ
ดาวน์โหลดผลงานผู้ชนะ IOCCC28 ปี 2024
- ผลงานผู้ชนะทั้งหมดพร้อมให้ดาวน์โหลดเป็นไฟล์บีบอัด (2024.tar.bz2) และสามารถดูหน้ารายละเอียดของแต่ละผลงาน โค้ดต้นฉบับ และความคิดเห็นของผู้เขียนเพื่อเรียนรู้เทคนิคออบฟัสเกตที่สร้างสรรค์
(สำหรับลิงก์ดาวน์โหลดผลงานผู้ชนะที่เข้าถึงได้โดยตรงในเนื้อหานี้และคำอธิบายละเอียดของผลงานแต่ละชิ้น กรุณาดูจากเว็บไซต์ทางการ)
ยังไม่มีความคิดเห็น