ControlFlag: một công cụ gỡ lỗi mã

Intel đã phát hành phát hành phiên bản quan trọng của Cờ kiểm soát 1.0, mà là một hệ thống điều khiển phần mềm cho phép phát hiện lỗi và sự bất thường trong mã của bạn nguồn sử dụng hệ thống học máy được đào tạo trên một lượng lớn mã hiện có.

Không giống như các máy phân tích tĩnh truyền thống, ControlFlag không áp dụng các quy tắc xác định trước, trong đó khó có thể lường trước tất cả các lựa chọn có thể xảy ra, nhưng đúng hơn phần thống kê tình hình sử dụng các loại công trình ngôn ngữ trong một số lượng lớn các dự án hiện có.

Theo nghiên cứu, việc tìm kiếm và loại bỏ lỗi trong mã thường được thực hiện thủ công và chiếm hơn 50% thời gian làm việc của các nhà phát triển. 

Công cụ học cách xác định và gắn nhãn các tùy chọn phong cách này và bạn có thể tùy chỉnh nhận dạng lỗi và sửa các đề xuất dựa trên kiến ​​thức của mình, giảm thiểu các đặc điểm mã xấu ControlFlag có thể chỉ đơn giản là sự sai lệch về phong cách giữa hai nhóm nhà phát triển.

Giới thiệu về ControlFlag

Hệ thống được đào tạo bằng cách xây dựng mô hình thống kê từ ma trận mã nguồn hiện có mở được xuất bản trên GitHub và các kho lưu trữ công khai tương tự. Trong giai đoạn đào tạo, hệ thống xác định các mẫu điển hình để xây dựng cấu trúc trong mã và xây dựng cây cú pháp kết nối giữa các mẫu này, phản ánh luồng thực thi mã trong chương trình.

Kết quả là, một cây quyết định tham chiếu được hình thành, kết hợp kinh nghiệm phát triển của tất cả các văn bản nguồn được phân tích. Quá trình thiết lập mẫu tương tự được thực hiện cho mã đang được kiểm tra, được so sánh với cây quyết định tham chiếu. Sự khác biệt lớn với các nhánh liền kề cho thấy sự bất thường trong mô hình đang được xác minh.

Trong số các đặc điểm Của phiên bản ControlFlag 1.0, hỗ trợ đầy đủ cho các mẫu C được đánh dấu và khả năng phát hiện dị thường trong câu lệnh "if" có điều kiện.

Ví dụ: khi phân tích cú pháp đoạn mã "if (x = 7) y = x;" hệ thống sẽ phát hiện ra rằng cấu trúc "biến == số" thường được sử dụng trong câu lệnh "if" để so sánh các giá trị số, do đó, dấu hiệu "biến = số" trong câu lệnh "if" có thể do lỗi đánh máy gây ra.

Bộ dụng cụ cung cấp một tập lệnh cho phép tải xuống kho lưu trữ C có sẵn trên GitHub và sử dụng chúng để xây dựng một mô hình. Các mô hình làm sẵn cũng có sẵn, cho phép bạn bắt đầu kiểm tra mã ngay lập tức

Hệ thống là một phần của dự án Nghiên cứu Lập trình Máy (MPR) của Intel, với mục tiêu chính là giảm thời gian phát triển phần mềm xuống 1000 lần do tự động hóa.

Đặc biệt, Intel hiện đang nỗ lực đào tạo Controlflag để tự động sửa các lỗi đã phát hiện. Cũng trong năm 2020, công ty đã phát hành công cụ MISIM, được phát triển cùng với các phòng thí nghiệm của MIT, có thể nghiên cứu các đoạn mã để hiểu được mục đích của một đoạn mã. Hệ thống này nhằm mục đích được sử dụng để cung cấp cho các nhà phát triển các cách để cải thiện hiệu quả của mã.

"Gỡ lỗi dự kiến ​​sẽ gây ra nhiều thiệt hại hơn nữa cho các nhà phát triển và toàn ngành", Intel cho biết. Thông báo… "Khi được triển khai đầy đủ, ControlFlag có thể giúp giảm thiểu thách thức này bằng cách tự động hóa sự phức tạp của quá trình phát triển phần mềm như kiểm tra, giám sát và gỡ lỗi."

“Ưu điểm chính của cách tiếp cận không giám sát của ControlFlag để nhận dạng mẫu là về cơ bản bạn có thể học cách thích nghi với phong cách của nhà phát triển. Bởi vì chương trình có giới hạn đầu vào cho các công cụ kiểm soát mà bạn cần đánh giá. ControlFlag có thể xác định các biến thể kiểu chữ trong các ngôn ngữ lập trình giống như cách mà người đọc có thể nhận ra sự khác biệt hoàn toàn giữa các từ và sử dụng các chữ viết tắt tiếng Anh, ”Intel viết.

Cuối cùng nếu bạn muốn biết thêm về nó Về ControlFlag, bạn nên biết rằng nó được viết bằng C ++ và là mã nguồn mở theo giấy phép MIT và mã của nó được lưu trữ trên GitHub.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.