1 điểm bởi GN⁺ 2025-08-04 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Năm nay, IOCCC28 được khởi động trở lại sau 4 năm gián đoạn và thu hút một khối lượng lớn tác phẩm mã C khó đọc có độ khó cao từ các nhà phát triển trên toàn thế giới
  • Nhờ việc tái thiết website và hạ tầng, việc giới thiệu bộ công cụ mkiocccentry và cải tiến hệ thống nộp bài, hiệu quả vận hành đã được cải thiện đáng kể
  • Quá trình chấm giải trở nên phức tạp và khắt khe hơn so với trước đây, nhưng thời gian chấm lại được rút ngắn đáng kể so với mức thông thường
  • Dù quy định kích thước mã đã được nới lỏng, nhiều tác phẩm vừa nhỏ gọn vừa có chất lượng cao vẫn được chọn, nên dự báo thay đổi quy định trong tương lai của cuộc thi sẽ rất hạn chế
  • Các tác phẩm đoạt giải thú vị và độc đáo, kỹ thuật làm rối, cùng các máy ảo và trình mô phỏng mang tính thử nghiệm đã được giới thiệu, góp phần nâng cao trình độ lập trình C

Tổng quan IOCCC28 và bối cảnh tổ chức

  • IOCCC28 năm 2024 (International Obfuscated C Code Contest, IOCCC28) là một cuộc thi mã C sáng tạo và khó đọc với sự tham gia của các nhà phát triển từ khắp thế giới, diễn ra sau 4 năm gián đoạn
  • Trong thời gian này, trang web chính thức của IOCCC đã được xây dựng lại quy mô lớn dưới tên gọi "Great Fork Merge" với hơn 6.168 lần commit
  • Về mặt vận hành, nhiều cải tiến đã được áp dụng như bộ công cụ mkiocccentry, quy trình đăng ký mới và máy chủ nộp bài, giúp nâng cao hiệu quả chấm giải và tốc độ công bố mã
  • Việc nộp bài diễn ra từ ngày 5/3/2025 đến ngày 5/6/2025, và quá trình chấm kết thúc chỉ sau "33 ngày", với toàn bộ mã nguồn được công bố trong vòng khoảng 2 giờ sau khi cuộc thi kết thúc

Xu hướng tác phẩm gửi dự thi và lựa chọn

  • IOCCC28 năm nay đã tăng mạnh cả số lượng và chất lượng bài dự thi nên độ khó chấm cũng tăng lên, đồng thời tạo ra 23 tác phẩm đạt giải, cao nhất từ trước đến nay
  • "Mặc dù giai đoạn nghỉ 4 năm đã giúp có những bài tốt hơn, nhìn chung người tham gia đã có tiến bộ rõ rệt trong kỹ thuật làm rối và khả năng lập trình C"
  • Dù giới hạn kích thước mã mới (tăng khoảng 21%) đã được áp dụng, hơn một nửa tác phẩm đạt giải nằm dưới 2/3 giới hạn tổng và 10 tác phẩm nộp dưới 1/2 kích thước, thể hiện cả hiệu quả lẫn chất lượng
  • Do đó, dự kiến quy định về kích thước mã trong 10 năm tới sẽ hầu như không thay đổi

Quy định chấm giải và kế hoạch tiếp theo

  • Quy định và hướng dẫn của IOCCC dự kiến sẽ được cập nhật theo hướng đổi mới và trực quan hơn, và Ban giám khảo IOCCC dự định chuẩn bị cho IOCCC29 theo kế hoạch vào tháng 12 năm 2025
  • Cũng dự kiến có các bản vá bổ sung dựa trên Pull Request cho kho người thắng IOCCC trên GitHub và kho mkiocccentry toolkit

Giới thiệu tác phẩm đoạt giải và điểm nhấn

  • Các tác phẩm đoạt giải bao gồm nhiều chủ đề khác nhau, với các tác phẩm và điểm nổi bật tiêu biểu sau:

    • ChatIOCCC: Triển khai một công cụ suy luận LLM nhỏ nhất thế giới dựa trên mô hình ngôn ngữ lớn mã nguồn mở LLaMA 2 của Meta, đồng thời mang lại tính năng chatbot thú vị
    • Eh: Triển khai mã làm rối của một trình soạn thảo với accent UTF-8 có tính thực tiễn hơn ed(1)
    • 135-byte One-liner: Mã làm rối cực ngắn dựa trên giá trị thập lục phân đầu vào để tạo ra nhiều loại đầu ra khác nhau
    • C-Preprocessor Art: Render hình ảnh bằng cách thực thi tiền xử lý C từ hàng nghìn đến hàng chục nghìn lần, mang đến trải nghiệm thời gian chạy script rất dài và cực kỳ đặc biệt
    • Z₃ Virtual Machine: Triển khai máy ảo dựa trên phiên bản thứ ba của Z-machine, cho phép giải đọc mã nguồn như một trò chơi
    • Môi trường ảo kèm giả lập C64: Máy ảo cho phép thử nghiệm an toàn cả các kịch bản có hại như fork bomb, xóa file... và cả C64
    • Mô phỏng chip Intel 4004: Mô phỏng nghệ thuật mạch điện của vi xử lý thương mại đầu tiên trên thế giới ra mắt năm 1971 ở cấp độ gate bằng mã C
    • Câu đố đa ngôn ngữ: Độ khó làm rối mới cho những người quen thuộc với ít nhất ba ngôn ngữ (C, tiếng Anh và ngôn ngữ khác)

Người tham gia và khuyến nghị tiếp theo

  • Mức cộng điểm thấp cho các tác phẩm làm rối giống các tác phẩm đã đạt giải trước đó, khi sự độc đáo và độ hoàn thiện là tiêu chí chính khi chấm
  • Đối với những người không đạt giải, khuyến khích thử lại sau khi cải thiện hoặc thử các hướng tiếp cận khác nhau
  • Việc công bố riêng các tác phẩm không trúng giải cũng được hoan nghênh

Hướng dẫn biên dịch và chạy tác phẩm đạt giải

  • Một số vấn đề tương thích với trình biên dịch C có thể xảy ra, vì vậy nên dùng phiên bản clang hoặc gcc mới nhất
  • FAQ và tài liệu chính thức đã đưa ra hướng dẫn khắc phục sự cố và nộp bản vá

Tải về các tác phẩm đạt giải IOCCC28 năm 2024

  • Toàn bộ tác phẩm đạt giải được phát hành dưới dạng tệp nén (2024.tar.bz2); đọc kỹ trang chi tiết của từng bài cùng mã nguồn và nhận xét của tác giả để học các kỹ thuật làm rối độc đáo

(Để truy cập trực tiếp các liên kết tải tác phẩm đạt giải và mô tả chi tiết cho từng tác phẩm, vui lòng tham khảo trang web chính thức)

Chưa có bình luận nào.

Chưa có bình luận nào.