Inspectable Control for Structure-Preserving Software Regeneration

Cơ chế điều khiển có thể kiểm tra trong tái sinh phần mềm bảo toàn cấu trúc

Tái sinh cục bộ mã có kiểm soát bằng biểu diễn tiềm ẩn rời rạc phân cấp.

Alexey Gavrilov1Alan-Barsag Gazzaev1Mikhail Mozikov2Ilya Makarov2Sergey Muravyov1

  1. Đại học ITMO, Saint Petersburg, Liên bang Nga
  2. AXXX, Moscow, Russian Federation

Đọc toàn văn bài báo ở định dạng HTMLVăn bản có thể tìm kiếm, bao gồm công thức, bảng, hình và tài liệu tham khảo.

Bản thảo hoàn chỉnh của tác giả với danh sách tác giả cuối cùng và DOI. CC BY 4.0 author manuscript; the ACM DOI page remains the version of record. Điều khoản đăng tải và tái sử dụng.

Bài báo trong 30 giây

Câu hỏi nghiên cứuLàm thế nào mô hình sinh có thể sửa đổi những phần được chọn của chương trình trong khi vẫn bảo toàn các thành phần đã chọn thuộc cấu trúc thô?

Vấn đề

Sửa đổi mã có AI hỗ trợ thường chỉ cần một thay đổi trong phạm vi xác định, đồng thời giữ cố định những thành phần cấu trúc chương trình đã chọn. Sinh lại toàn bộ chương trình có thể làm xáo trộn các vùng không liên quan, còn ràng buộc ở cấp token không cung cấp một giao diện điều khiển ở mức thô.

Phương pháp

Nghiên cứu mã hóa các hàm Python dài 64 token bằng VQ-VAE phân cấp, khóa một số mã rời rạc thô được chọn và dùng cơ chế sinh rời rạc có che mặt nạ để tái sinh mã cục bộ tại các vị trí tiềm ẩn còn lại.

Kết quả chính

Khóa bốn mã cấp cao nhất làm tỷ lệ phân tích cú pháp tăng từ 0.453 lên 0.591, trong khi các vị trí không khóa vẫn thay đổi với tỷ lệ 0.936 và độ duy nhất của mẫu có điều kiện vẫn đạt 0.998.

Vì sao điều này quan trọng

Kết quả cho thấy sự đánh đổi có thể đo lường giữa độ ổn định và mức tự do trong chỉnh sửa mã có kiểm soát và tái sinh cục bộ chương trình. Đây là bằng chứng ban đầu cho một lớp điều khiển tiềm ẩn có thể kiểm tra, không phải bằng chứng về tương đương ngữ nghĩa hay tính đúng đắn chức năng.

Tóm tắt

Các quy trình kỹ nghệ phần mềm như sửa chữa có ràng buộc, tinh chỉnh theo giai đoạn và sửa đổi bảo toàn cấu trúc đòi hỏi khả năng kiểm soát phần nào được thay đổi và phần nào được giữ cố định. Sinh ở cấp token là một giao diện điều khiển còn hạn chế cho các thao tác này, vì nó ràng buộc văn bản bề mặt cục bộ thay vì các bất biến cấu trúc ở mức thô mà kỹ nghệ phần mềm thường cần bảo toàn. Chúng tôi khảo sát các biểu diễn tiềm ẩn rời rạc phân cấp như một biểu diễn trung gian có thể kiểm tra cho các tạo tác phần mềm: VQ-VAE phân cấp nén một hàm Python dài 64 token thành các mã rời rạc mức thô và mức tinh, còn cơ chế sinh rời rạc che mặt nạ chỉ tái sinh những vị trí được chọn dưới các ràng buộc cục bộ. Trên 2,000 hàm Python đã tiền xử lý, khóa bốn mã cấp cao nhất làm tỷ lệ phân tích cú pháp tăng từ 0.453 lên 0.591, đồng thời vẫn duy trì mức thay đổi đáng kể tại các vị trí không khóa (mức tự do chỉnh sửa, 0.936) và độ duy nhất của mẫu gần tối đa (tính đa dạng, 0.998). Khi ngữ cảnh mức thô được cố định, quá trình tinh chỉnh ở cấp thấp hơn yếu hơn nhưng vẫn đơn điệu, qua đó củng cố cách diễn giải hệ phân cấp từ thô đến tinh. Nhìn chung, các kết quả này cung cấp bằng chứng ban đầu cho một lớp điều khiển thực tiễn, hỗ trợ tái sinh tạo tác phần mềm ở cấp cao hơn token trong phạm vi xác định và có bảo toàn cấu trúc.

Công bố tại Kỷ yếu Hội nghị Quốc tế ACM lần thứ 34 về Nền tảng Kỹ nghệ Phần mềm

Loại hình đóng góp Phương pháp điều khiển trong không gian tiềm ẩn

tr. 1406–1407Áp phích đi kèm

DOI https://doi.org/10.1145/3803437.3807386

Chia sẻ bài báo nàyChia sẻ

Các kết quả chính

Các kết quả chính của Khả năng điều khiển có thể kiểm tra cho quá trình sinh lại phần mềm có bảo toàn cấu trúc
Thiết lậpTỷ lệ phân tích cú phápKhung sườnChữ kýThay đổi không bị khóa
Đầu vào (đã cắt bớt)0.9940.9940.994
Tái dựng codec0.8570.8480.4930
Sinh không điều kiện0.4530.0800.995
Có điều kiện, tiền tố k=40.5910.2950.0610.936
Có điều kiện, khoảng chữ ký0.60.3020.063không được báo cáo

Kết quả chính. Khóa các biến tiềm ẩn mức thô cải thiện độ ổn định cú pháp mà không triệt tiêu thay đổi trong vùng có thể chỉnh sửa; kết quả cho thấy khả năng điều khiển cấu trúc, chứ không bảo đảm tương đương chức năng.

Tập dữ liệu
2,000 hàm Python đã tiền xử lý từ một tập con của CodeParrot Clean
Cỡ mẫu
2,000 hàm Python đã tiền xử lý; độ duy nhất của mẫu có điều kiện là 0.998.
Chỉ số đánh giá
Tỷ lệ phân tích cú pháp; Các đại lượng đại diện cho khả năng bảo toàn khung và chữ ký; Tỷ lệ thay đổi tại vị trí không khóa; Tính duy nhất và entropy của mẫu
Độ bất định
Nghiên cứu dài hai trang chỉ báo cáo các ước lượng điểm, không có khoảng tin cậy hay phân tích thống kê với nhiều seed.
Điều kiện
Các hàm dài 64 token, giải mã argmax, 16 mã cấp cao nhất và 32 mã cấp thấp hơn; khóa toàn bộ khôi phục chính xác kết quả tái dựng codec.

PDF và trích dẫn

Trích dẫn bài báo này BibTeX là định dạng được khuyến nghị. Mọi biến thể dưới đây đều được tạo từ cùng một bản ghi công bố.

Mở PDF
@inproceedings{Gavrilov2026InspectableControl,
  title      = {Inspectable Control for Structure-Preserving Software Regeneration},
  author     = {Gavrilov, Alexey and Gazzaev, Alan-Barsag and Mozikov, Mikhail and Makarov, Ilya and Muravyov, Sergey},
  booktitle  = {Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering},
  publisher  = {ACM},
  year       = {2026},
  pages      = {1406--1407},
  doi        = {10.1145/3803437.3807386},
  url        = {https://doi.org/10.1145/3803437.3807386},
  isbn       = {979-8-4007-2636-1},
}
Tải xuống .bib

Tệp trích dẫn:Văn bản APAVăn bản IEEERISCSL-JSONSchema.org JSON-LDOAI-DC XMLOpenAIRE v4 XMLMODS XMLXML siêu dữ liệu JATS 1.4Toàn văn JATS 1.4 XMLRDF TurtleTập hợp liên kết (JSON)Tập hợp liên kết (HTTP)RO-Crate

DOI:https://doi.org/10.1145/3803437.3807386

Hướng dẫn đầy đủ

Hướng dẫn nghiên cứu đầy đủ

Phương pháp

Phương pháp nén một hàm Python ngắn thành hai cấp mã rời rạc, cố định các vị trí mức thô đã chọn và sinh lại những vị trí còn lại trước khi giải mã thành mã nguồn.

  1. Mã hóa

    Nén một hàm Python dài 64 token thành 16 mã cấp cao nhất và 32 mã cấp thấp hơn bằng VQ-VAE phân cấp.

  2. Khóa

    Chọn các vị trí mã mức thô đại diện cho cấu trúc cần bảo toàn, chẳng hạn một tiền tố bao phủ khoảng chữ ký hàm.

  3. Tái sinh

    Chỉ thực hiện sinh rời rạc có che mặt nạ trên các vị trí không bị khóa, rồi giải mã cấu trúc phân cấp hoàn chỉnh trở lại thành mã nguồn.

  4. Kiểm tra

    Trước khi chấp nhận một kết quả tái sinh, hãy đo tỷ lệ phân tích cú pháp, các đại lượng đại diện cho cấu trúc, mức thay đổi tại những vị trí không khóa và tính duy nhất của mẫu.

Các mã chương trình mức thô đã chọn được giữ cố định, còn các mã rời rạc mức tinh được che mặt nạ sẽ được sinh lại rồi giải mã thành một hàm Python đã sửa đổi.
Chỉnh sửa mã qua biểu diễn tiềm ẩn rời rạc phân cấp bảo toàn phần cấu trúc chương trình mức thô đã chọn, đồng thời sinh lại các mã mức tinh trong vùng có thể chỉnh sửa.Nguồn: Sơ đồ diễn giải do tác giả xây dựng dựa trên phương pháp và kết quả đã công bố..Điều khoản tái sử dụng: CC BY 4.0.Trích dẫn đề xuất: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. Tải SVG.

Ý tưởng chính

Cơ chế điều khiển tác động lên một biểu diễn học được ở cấp cao hơn token: các vị trí tiềm ẩn mức thô xác định rõ nơi cấu trúc có thể được cố định, trong khi những chi tiết triển khai lân cận vẫn có thể chỉnh sửa.

Khác biệt so với các cách tiếp cận gần kề

Các ràng buộc ở cấp prompt hoặc cấp token tác động lên văn bản bề mặt. Giao diện được đề xuất cung cấp các điểm điều khiển rời rạc ở cả mức thô lẫn mức tinh, đồng thời đo lường sự đánh đổi giữa độ ổn định và mức tự do phát sinh.

Điểm mới

Công trình giới thiệu và đánh giá một lớp điều khiển tiềm ẩn phân cấp có thể kiểm tra nhằm tái sinh có giới hạn các tạo tác phần mềm.

Những câu hỏi mà bài báo này góp phần giải đáp

Mở một câu hỏi để xem câu trả lời ngắn gọn dựa trên bài báo. Ranh giới bằng chứng chi tiết được trình bày trong phần Hạn chế.

  1. Làm thế nào để AI chỉnh sửa mã mà không phải viết lại mọi thứ?

    Bài báo khảo sát việc tái sinh cục bộ mã ở cấp cao hơn token. VQ-VAE phân cấp ánh xạ một hàm Python ngắn thành các mã rời rạc mức thô và mức tinh; những vị trí mức thô đã chọn được khóa, còn cơ chế sinh rời rạc che mặt nạ chỉ thay đổi các vị trí tiềm ẩn còn lại trước khi giải mã. Cách này tạo ra một ranh giới bảo toàn tường minh thay vì sinh lại toàn bộ hàm.

  2. Những phương pháp nào bảo toàn cấu trúc chương trình trong quá trình sinh mã?

    Công trình này kiểm thử cơ chế điều khiển tiềm ẩn rời rạc phân cấp. Có thể cố định các vị trí tiềm ẩn thô trong khi tái sinh những vị trí không khóa, rồi đo tỷ lệ phân tích cú pháp và các đại lượng đại diện cho cấu trúc. Bằng chứng chỉ liên quan đến độ ổn định cấu trúc theo xác suất trên các hàm Python ngắn; không xác lập việc bảo toàn AST chính xác, tương đương ngữ nghĩa hay tính đúng đắn chức năng.

  3. Biểu diễn tiềm ẩn rời rạc phân cấp có thể cho phép điều khiển mã theo vùng hay không?

    Trong thí nghiệm trên 2,000 hàm được báo cáo, việc khóa bốn mã cấp cao nhất làm tỷ lệ phân tích cú pháp tăng từ 0.453 lên 0.591. Đồng thời, 0.936 số vị trí không bị khóa đã thay đổi và tỷ lệ mẫu có điều kiện là duy nhất đạt 0.998. Đây là bằng chứng ban đầu cho thấy các ràng buộc tiềm ẩn thô có thể bảo toàn một phần cấu trúc mà không triệt tiêu độ tự do chỉnh sửa cục bộ hay tính đa dạng của mẫu.

  4. Quá trình sinh mã có thể cân bằng tính ổn định cấu trúc và tính đa dạng như thế nào?

    Bài báo đánh giá đồng thời độ ổn định và mức tự do thay vì chỉ tối ưu tính hợp lệ. Việc khóa mã thô làm tăng tính hợp lệ cú pháp, trong khi mức thay đổi tại các vị trí không khóa vẫn cao và các mẫu có điều kiện hầu như hoàn toàn khác biệt. Kết quả cho thấy sự đánh đổi có thể đo lường giữa độ ổn định và mức tự do trong cấu hình đã thử nghiệm, chứ không phải một điểm tối ưu phổ quát.

  5. Công trình này liên hệ như thế nào với chỉnh sửa mã có LLM hỗ trợ?

    Mô hình được kiểm thử là VQ-VAE phân cấp với cơ chế sinh rời rạc có che mặt nạ, không phải mô hình ngôn ngữ lớn. Tuy vậy, bài toán điều khiển vẫn liên quan đến chỉnh sửa có LLM hỗ trợ, bởi những thay đổi không cần thiết bên ngoài vùng được yêu cầu là một vấn đề thực tiễn. Đóng góp của bài báo là một cơ chế bổ trợ trong không gian tiềm ẩn và một khung đánh giá, chứ không phải chuẩn đánh giá chỉnh sửa bằng LLM.

So sánh với các cách tiếp cận gần kề

So sánh dựa trên dữ kiện giữa Khả năng điều khiển có thể kiểm tra cho quá trình sinh lại phần mềm có bảo toàn cấu trúc và các hướng tiếp cận gần kề
Khả năngĐiều khiển ở cấp tokenĐiều khiển tiềm ẩn phân cấp
Cố định cấu trúc thôHạn chếKhóa mã thô nguyên bản
Tái sinh một phầnCác ràng buộc bề mặt mong manhLấy mẫu lại có che đối với các mã được chọn
Các điểm điều khiển có thể kiểm traKhông có tầng trung gian tường minhCác vị trí rời rạc mức thô và mức tinh
Bằng chứng trong bài báo nàyChưa được đánh giá như một đường cơ sở hoàn chỉnhChẩn đoán độ ổn định cú pháp và mức tự do chỉnh sửa

Bảng mô tả các giao diện và bằng chứng thực nghiệm của nghiên cứu; bảng không khẳng định tính đúng đắn chức năng hay ưu thế phổ quát.

Mức độ liên quan và phạm vi

Bài báo đặc biệt phù hợp với các công trình cần kiểm soát rõ những gì phép biến đổi mã có AI hỗ trợ được phép thay đổi và những phần nào của chương trình phải giữ ổn định.

  1. Sinh mã có thể điều khiển và bảo toàn cấu trúc

  2. Sửa chữa chương trình cục bộ và tái cấu trúc có giới hạn

  3. Biểu diễn rời rạc phân cấp cho mã nguồn

  4. Sinh rời rạc có che cho mã nguồn

  5. Điều khiển biểu diễn tiềm ẩn cho các sản phẩm phần mềm

Xem các hạn chế và phạm vi của bằng chứng

Hạn chế

  • Nghiên cứu chỉ xét các hàm Python ngắn được cắt còn 64 token.
  • Quy trình đánh giá sử dụng giải mã argmax cùng các chỉ số đại diện về cú pháp hoặc cấu trúc, thay vì kiểm thử tính tương đương chức năng.
  • Khả năng bảo toàn chính xác chữ ký vẫn còn hạn chế.
  • Khả năng điều khiển ở cấp thấp yếu hơn ở cấp cao nhất.
  • Các vị trí tiềm ẩn chưa được căn chỉnh với những vùng ngữ nghĩa như khoảng AST, chữ ký hoặc cấu trúc luồng điều khiển.
  • Các kết quả không xác lập tính đúng đắn đối với sửa chữa thực tiễn, tái cấu trúc hoặc thay đổi ở cấp kho mã.

Tài liệu tham khảo được bài báo trích dẫn

Các mục này tương ứng với phần Tài liệu tham khảo được đánh số trong tệp PDF của bài báo.

  1. Ali Razavi, Aaron van den Oord, Oriol Vinyals. . Generating Diverse High-Fidelity Images with VQ-VAE-2. Advances in Neural Information Processing Systems.
  2. Jacob Austin, Daniel D. Johnson, Jonathan Ho, Daniel Tarlow, Rianne van den Berg. . Structured Denoising Diffusion Models in Discrete State-Spaces. Advances in Neural Information Processing Systems.
  3. Subham Sekhar Sahoo, Marianne Arriola, Yair Schiff, Aaron Gokaslan, Edgar Marroquin, Justin T Chiu, Alexander Rush, Volodymyr Kuleshov. . Simple and Effective Masked Diffusion Language Models. Advances in Neural Information Processing Systems.
  4. Shraddha Barke, Michael B. James, Nadia Polikarpova. . Grounded Copilot: How Programmers Interact with Code-Generating Models. Proceedings of the ACM on Programming Languages.
  5. Fengji Zhang, Bei Chen, Yue Zhang, Jacky Keung, Jin Liu, Daoguang Zan, Yi Mao, Jian-Guang Lou, Weizhu Chen. . RepoCoder: Repository-Level Code Completion Through Iterative Retrieval and Generation. Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing.

Tài nguyên và khả năng tái lập

Nhà xuất bản
ACM
Tài nguyên công bố
Bản thảo công khai, các bảng kết quả, hình minh họa giải thích và tệp trích dẫn được cung cấp tại đây. Mã triển khai và các checkpoint chưa được phát hành công khai.

Tuyên bố về dữ liệu

Nguồn
Một tập con đã tiền xử lý của CodeParrot Clean, gồm 2,000 hàm Python.
Giấy phép
Trang web này không phân phối lại bất kỳ tệp dữ liệu nào; việc tái sử dụng vẫn phải tuân theo các giấy phép của bộ dữ liệu CodeParrot thượng nguồn và mã nguồn.
Tiền xử lý
Các hàm Python được token hóa, sau đó cắt ngắn hoặc đệm thành 64 token trước khi mã hóa phân cấp.
Phân tách
Poster báo cáo một tập đánh giá gồm 2,000 hàm; bài báo công khai không kèm bản kê phân chia tập huấn luyện/xác thực bất biến.
Định dạng
Các hàm mã nguồn Python, chuỗi token kiểu GPT, chuỗi mã cấp cao có độ dài 16 và chuỗi cấp thấp có độ dài 32.
Phiên bản / checksum
Bài báo dài hai trang không báo cáo tổng kiểm dữ liệu và mã định danh ảnh chụp bất biến.
Thu thập
Trang công bố không phát hành kèm tập lệnh thu thập công khai.
Giới hạn sử dụng
Mẫu này không đại diện cho phần mềm ở quy mô kho mã, nhiều ngôn ngữ lập trình hoặc các tác vụ sửa chữa đã được kiểm chứng về hành vi.

Các phiên bản

  1. Phiên bản đã công bốACM FSE Companion, 2026
  2. Tài nguyên của tác giảÁp phích và bộ trang chiếu
  3. Bản ghi thư mụcDBLP
  4. Mở bản ghi học thuậtOpenAlex
  5. Bản ghi đồ thị trích dẫnSemantic Scholar
  6. Toàn văn do tác giả chia sẻResearchGate
  7. Tóm tắt bằng ngôn ngữ phổ thôngKudos

DOI đã công bố là định danh thư mục chính. Trang này vẫn là URL dự án chính tắc duy nhất xuyên suốt các phiên bản.