Cuộc thi International Obfuscated C Code Contest ( IOCCC ) đã trở lại một cách ấn tượng sau bốn năm tạm ngừng, công bố kỷ lục 23 người thắng cuộc cho phiên bản thứ 28. Điều này đánh dấu kỷ niệm 40 năm của cuộc thi và đại diện cho số lượng bài dự thi thắng cuộc lớn nhất trong lịch sử IOCCC , vượt xa kỷ lục trước đó là 15 người thắng cuộc.
Thời gian nghỉ kéo dài không phải là thời gian lãng phí. Các nhà tổ chức cuộc thi đã dành những năm đó để xây dựng lại toàn bộ cơ sở hạ tầng, tạo ra các công cụ mới và tinh gọn quy trình đánh giá. Những gì từng mất nhiều tháng giữa việc công bố người thắng cuộc và xuất bản mã nguồn giờ đây chỉ diễn ra trong vòng chưa đến hai giờ.
Thống kê chính IOCCC 2024:
- Người chiến thắng: 23 bài dự thi (kỷ lục trước đó: 15)
- Thời gian chấm thi: 33 ngày (nhanh hơn nhiều so với các cuộc thi trước)
- Tăng giới hạn kích thước: 21% (lần tăng đầu tiên trong hơn 10 năm)
- Phân bố kích thước mã: 50% người chiến thắng sử dụng dưới 2/3 giới hạn kích thước, 10 người chiến thắng sử dụng dưới 1/2 giới hạn kích thước
- Thời gian diễn ra cuộc thi: 5 tháng 3 - 5 tháng 6, 2025 (nộp bài), hoàn thành chấm thi ngày 7 tháng 7, 2025
Cộng Đồng Mê Mẩn Với Các Thủ Thuật Mã Nguồn Thông Minh
Cộng đồng lập trình đặc biệt bị cuốn hút bởi một số bài dự thi nổi bật. Một bài đang tạo ra nhiều thảo luận là máy tính pha mặt trăng vẽ pha mặt trăng hiện tại trong terminal của bạn chỉ bằng vài dòng mã được làm rối rất nhiều. Chương trình sử dụng hằng số bí ẩn 2551443, kết nối nó với một bài dự thi tương tự từ năm 2000.
Đây chính xác là loại thứ khiến tôi cảm thấy như mình đang làm sai ngành nghề...
Một bài được yêu thích khác là công cụ giải nén hình ảnh một dòng thực hiện một thủ thuật đáng kinh ngạc: khi bạn cung cấp cho nó mã băm MD5 của chính mã nguồn của nó, nó xuất ra logo IOCCC . Tác giả lưu ý với sự hài hước rằng thời điểm này không hoàn toàn trùng hợp - số bit của định dạng đầu vào gần bằng với những gì một GPU năm tuổi có thể tính toán trong một giờ thao tác MD5 .
Các Tác Phẩm Chiến Thắng Nổi Bật Năm 2024:
- 2024/cable1: "Công cụ suy luận LLM nhỏ nhất thế giới" chạy LLAMA 2 (7 tỷ tham số)
- 2024/kurdyukov1: Máy tính tính toán pha mặt trăng sử dụng hằng số 2551443
- 2024/stedolan: Công cụ giải nén hình ảnh một dòng lệnh (135 bytes) xuất logo IOCCC từ chính hash MD5 của nó
- 2024/endoh1: Ray tracer sử dụng bộ tiền xử lý C (hình ảnh 512x512 mất 23.5 giờ để render)
- 2024/carlini: Trình mô phỏng bộ xử lý Intel 4004 mô phỏng từng cổng mạch riêng lẻ
- 2024/howe: Trình soạn thảo văn bản có nhiều tính năng hơn ed(1) với hỗ trợ UTF-8
Tác Động Hạn Chế Của AI Đối Với Việc Làm Rối Mã Nguồn
Mặc dù có lo ngại rằng AI có thể làm ngập cuộc thi với các bài dự thi được tạo ra, thực tế có vẻ khá khác. Các thành viên cộng đồng tham gia báo cáo rằng các mô hình ngôn ngữ lớn gặp khó khăn với việc làm rối sáng tạo khiến các bài dự thi IOCCC trở nên đặc biệt. Các hệ thống AI có xu hướng tạo ra mã nguồn có thể đọc được, có tài liệu - hoàn toàn ngược lại với những gì cuộc thi này ca ngợi.
Khi được yêu cầu tạo mã nguồn bị làm rối, các mô hình AI thường không thể cưỡng lại việc thêm các yếu tố có thể đọc được hoặc bình luận giải thích. Một số thậm chí từ chối phân tích các bài nộp bị làm rối nhiều, nhầm lẫn chúng với phần mềm độc hại do diện mạo bất thường của chúng.
Thành Tựu Kỹ Thuật Đẩy Ranh Giới
Những người thắng cuộc năm nay thể hiện sự đa dạng kỹ thuật đáng chú ý. Một bài dự thi tuyên bố là công cụ suy luận mô hình ngôn ngữ lớn nhỏ nhất thế giới, chạy LLAMA 2 của Meta với 7 tỷ tham số. Một bài khác mô phỏng bộ xử lý Intel 4004 từ năm 1971 bằng cách mô phỏng từng cổng mạch riêng lẻ - một cách tiếp cận cực kỳ chi tiết khiến mã nguồn chạy chậm nhưng xác thực.
Có lẽ bài dự thi thử thách sự kiên nhẫn nhất là một ray tracer hoạt động hoàn toàn thông qua các thao tác tiền xử lý C . Xây dựng một hình ảnh đơn giản 8x8 mất khoảng 20 giây, trong khi một kết xuất chi tiết 512x512 yêu cầu hơn 23 giờ thời gian tiền xử lý qua hàng nghìn lần gọi trình biên dịch.
Các nhà tổ chức cuộc thi lưu ý một xu hướng thú vị: mặc dù tăng giới hạn kích thước lên 21% lần đầu tiên trong hơn một thập kỷ, nhiều bài dự thi thắng cuộc vẫn ở dưới giới hạn mới. Một nửa số người thắng cuộc sử dụng ít hơn hai phần ba không gian được phép, chứng minh rằng lập trình thông minh thường thắng thế hơn khối lượng mã nguồn thuần túy.
Nhìn về phía trước, IOCCC29 được lên kế hoạch cho tháng 12 năm 2025, với các nhà tổ chức hứa hẹn các quy tắc được tinh gọn và tiếp tục đổi mới trong nghệ thuật mã nguồn đẹp, khó hiểu.
Tham khảo: The International Obfuscated C Code Contest 2024 - The 28th IOCCC