Canonical tài trợ nghiên cứu dùng AI dịch 'núi' mã C sang Rust an toàn
Canonical hợp tác với Đại học Bristol tài trợ dự án tiến sĩ kéo dài ba năm nhằm khám phá khả năng dùng mô hình ngôn ngữ lớn (LLM) để dịch các codebase C khổng lồ sang ngôn ngữ Rust an toàn và bảo trì được. Dự án hứa hẹn mang lại bằng chứng thực nghiệm về tính khả thi và hạn chế của phương pháp này trước làn sóng AI hỗ trợ lập trình đang dâng cao.

Canonical tài trợ nghiên cứu dùng AI dịch 'núi' mã C sang Rust an toàn
Canonical — công ty đứng sau Ubuntu — vừa công bố đồng tài trợ một dự án tiến sĩ kéo dài ba năm tại Đại học Bristol (Anh) nhằm tìm hiểu xem liệu trí tuệ nhân tạo có thể dịch các codebase C khổng lồ (hàng trăm nghìn dòng) sang Rust một cách an toàn và chính xác hay không. Thay vì vội vã áp dụng công nghệ, hãng chọn cách đầu tư vào nghiên cứu bài bản để đánh giá thực chất tiềm năng và rủi ro.
Phó chủ tịch mảng kỹ thuật của Canonical, ông Jon Seager, vừa công bố khoản đầu tư này trên diễn đàn Discourse của Ubuntu. Dự án sẽ được thực hiện tại Nhóm Nghiên cứu Ngôn ngữ Lập trình của Đại học Bristol, dưới sự giám sát của chính ông cùng Giáo sư Meng Wang và Tiến sĩ Cristina David. Đây được xem là động thái thận trọng nhưng đầy tham vọng của Canonical trong bối cảnh AI tạo sinh đang tràn ngập ngành công nghiệp phần mềm.
Mục tiêu: dịch toàn bộ hệ sinh thái C sang Rust bằng AI
Ý tưởng cốt lõi của dự án không phải là "thả bot" viết lại toàn bộ Ubuntu bằng mã Rust, mà là điều tra xem mô hình ngôn ngữ lớn (LLM) có khả năng phân rã một chương trình C lớn — hàng trăm nghìn dòng — thành các thành phần nhỏ hơn, sau đó sử dụng LLM để viết lại các thành phần đó bằng Rust an toàn và dễ bảo trì hay không.
Ông Seager thẳng thắn chỉ ra hạn chế của các công cụ dịch mã nguồn truyền thống:
"Các trình dịch nguồn-sang-nguồn hiện có thể xử lý một lượng lớn mã, nhưng thường giữ cấu trúc của C quá sát. Kết quả có thể biên dịch được bằng Rust, nhưng vẫn phụ thuộc nhiều vào các thao tác không an toàn, giữ lại các mô thức C khó đọc và đòi hỏi nhiều công sức thủ công trước khi đạt chất lượng mà một kỹ sư Rust thực thụ muốn sở hữu."
Hai "vật thử nghiệm" cụ thể được đề cập trong dự án là snap-confine và AppArmor — hai thành phần quan trọng nhưng đang ngày càng thu hẹp phạm vi sử dụng bên ngoài hệ sinh thái Ubuntu. Đáng chú ý, openSUSE 16 đã thay AppArmor bằng SELinux từ năm ngoái, khiến AppArmor chủ yếu chỉ còn phục vụ nhóm người dùng trung thành với Ubuntu và các distro nhỏ hơn.
Giá trị từ kinh nghiệm mã nguồn cũ: bài học từ Joel Spolsky
Một điểm đáng khen trong đề xuất của Canonical là sự thừa nhận rằng các codebase trưởng thành chứa đựng tri thức mà lập trình viên không bao giờ ghi chép một cách có ý thức. Hàng năm sửa lỗi và vá lỗi đã mã hóa phản hồi cho các tình huống hiếm gặp mà không ai lường trước ngay từ đầu.
Đây chính là luận điểm quan trọng trong bài tiểu luận nổi tiếng "Things You Should Never Do, Part I" của Joel Spolsky từ năm 2000. Một bản dịch máy có thể giữ lại một phần hành vi quý giá này, trong khi một bản viết lại hoàn toàn bằng con người dựa trên thiết kế ban đầu có thể bỏ sót chúng.
Hoài nghi lành mạnh: thách thức không chỉ nằm ở việc dịch
Giới phân tích cho rằng phần khó nhất có thể không phải là dịch mã, mà là phân rã một codebase lớn thành các phần nhỏ mà bot có thể xử lý. Thách thức này gợi nhớ đến nỗ lực kéo dài hàng thập kỷ nhằm tự động chia các thuật toán phức tạp thành các tác vụ song song — một vấn đề đã có những kỹ thuật hữu ích cho từng trường hợp cụ thể nhưng chưa có giải pháp tổng quát.
Nếu vấn đề phân rã này thực sự là một bài toán không tính được (giống như Bài toán Halting), thì dự án có thể sẽ đối mặt với giới hạn nghiêm trọng hơn là chỉ dịch thuật ngữ lập trình.
Đầu tư thực chất cho một câu hỏi mở
Canonical không đơn độc trong dự án này. Hãng đồng tài trợ cùng UK Research and Innovation — cơ quan công do Bộ Kinh doanh, Đổi mới và Khoa học của Anh bảo trợ. Thời gian ba năm là tiêu chuẩn cho một chương trình tiến sĩ tại Anh, đủ để tạo ra bằng chứng thực nghiệm đáng tin cậy.
Đáng chú ý, các thử nghiệm trước đó như uutils coreutils và sudo-rs (bản Rust thay thế sudo) trong Ubuntu 25.10 đều là những dự án viết tay hoàn toàn từ con người, không phải do AI tạo ra. Sự khác biệt cốt lõi là dự án mới này sẽ đặt cược vào khả năng của LLM — một hướng đi còn nhiều tranh cãi nhưng tiềm năng mang lại giá trị to lớn nếu thành công: không phải để tự sửa lỗi, mà để phơi bày những lỗi chưa từng được biết đến trong mã nguồn cũ.
Dù còn nhiều hoài nghi từ giới kỹ thuật, việc Canonical dùng tiền thật để trả lời một câu hỏi mở là điều đáng trân trọng. Nếu AI thực sự dịch được C sang Rust một cách an toàn và hiệu quả, điều đó có thể mở ra kỷ nguyên mới cho việc nâng cao độ tin cậy của phần mềm hệ thống — một lợi ích vượt xa phạm vi Ubuntu.