Claude Skill MartKhám phá skillCâu dùng ngayHọc qua videoDùng terminalSkill là gì?
Về danh sách

Trình khám phá miền trừu tượng

Kỹ năng chọn miền trừu tượng (interval, sign, congruence, octagon, polyhedra) để suy luận tĩnh khoảng giá trị biến và bất biến vòng lặp mà không cần chạy code.

Lập trìnhNâng cao14214Điểm AI 9/10Cập nhật lần cuối: 22 thg 2, 2026

Làm được gì

Dùng lý thuyết diễn giải trừu tượng (abstract interpretation) để phân tích tĩnh chương trình: suy ra miền giá trị của biến, quan hệ giữa các biến và bất biến vòng lặp.

  • Hướng dẫn chọn miền: bảng so sánh độ chính xác/chi phí của Sign, Interval, Congruence, Octagon, Polyhedra và Reduced Product.
  • Quy trình 6 bước: chọn miền → khởi tạo trạng thái trừu tượng → áp dụng hàm chuyển (gán, điều kiện, join) → widening (∇) cho vòng lặp để đảm bảo dừng → narrowing (△) để tinh chỉnh → trích xuất bất biến.
  • Kiểm tra an toàn: phát hiện nguy cơ chia cho 0, truy cập mảng ngoài biên dựa trên xấp xỉ.
  • Nêu rõ giới hạn: không được coi giá trị xấp xỉ là chính xác, phải nói rõ miền đã chọn không biểu diễn được gì (ví dụ octagon không biểu diễn y = 2x).

Phù hợp với ai

  • Người học/nghiên cứu phân tích tĩnh, kiểm chứng hình thức, tối ưu hóa trình biên dịch.
  • Lập trình viên cần lập luận rõ ràng về khoảng giá trị biến và bất biến vòng lặp khi review code.
  • Sinh viên làm bài tập môn Program Analysis muốn xem từng bước tính điểm bất động.

Ví dụ sử dụng

  1. Với int x=0; while(x<10){x++; y--;}, miền interval cho x ∈ [0,9] trong vòng lặp và x=10, y=90 khi thoát, đồng thời chỉ ra interval không nắm được x+y=100.
  2. Với y = x*x; z = 100/y;, miền sign suy ra y ≥ 0 và cảnh báo khả năng chia cho 0 khi x = 0.
  3. Với vòng lặp lồng nhau, miền octagon rút ra bất biến quan hệ j ≤ i; còn quan hệ tuyến tính phức tạp như z = 3x thì cần chuyển sang polyhedra.

· · · Hướng dẫn cài đặt · · ·

Dùng thử ngay, không cần cài

Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.

Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình:
https://raw.githubusercontent.com/ArabelaTso/Skills-4-SE/HEAD/skills/abstract-domain-explorer/SKILL.md

Mình muốn: (viết việc bạn cần ở đây)

Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.

Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.

Cài vào ứng dụng Claude (không cần terminal)
  1. Tải tệp ZIP bằng nút bên dưới.
  2. Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
  3. Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Tải ZIP
Cài vào Claude Code

Để Claude làm — dán câu dưới đây vào Claude Code

Hãy cài skill mình tìm thấy trên Claude Skill Mart.
Copy thư mục skills/abstract-domain-explorer từ repo GitHub ArabelaTso/Skills-4-SE vào ~/.claude/skills/abstract-domain-explorer/ của mình.
Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.

Cài bằng lệnh thủ công

git clone https://github.com/ArabelaTso/Skills-4-SE.git && mkdir -p ~/.claude/skills && cp -r Skills-4-SE/skills/abstract-domain-explorer ~/.claude/skills/

Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.

  1. Mở terminal.
  2. Tải repo: git clone https://github.com/ArabelaTso/Skills-4-SE.git
  3. Tạo thư mục skills: mkdir -p ~/.claude/skills
  4. Sao chép kỹ năng: cp -r Skills-4-SE/skills/abstract-domain-explorer ~/.claude/skills/
  5. Kiểm tra tài liệu tham khảo references/abstract_domains.md đã được copy kèm.
  6. Khởi động lại Claude Code và yêu cầu ví dụ: "Suy luận bất biến của vòng lặp này bằng abstract interpretation".
Xem mã nguồn trên GitHubGiấy phép: Apache-2.0