Giá trị 3-logic

Một phần của tài liệu phân tích tĩnh chương trình bằng phương pháp giải thích trừu tượng (Trang 38 - 40)

CHƢƠNG III CHƢƠNG TRÌNH THỰC NGHIỆM

3.2. Nền tảng toán học của TVLA

3.2.1. Giá trị 3-logic

- Giá trị 3-logic và giá trị 2-logic: thông thƣờng một biểu thức, một biến sẽ nhận một trong 2 giá trị là đúng (1) hoặc sai (0) hay còn gọi là giá trị 2-logic. Giá trị 3-logic là một mở rộng của giá trị 2-logic, nó đƣợc dùng để chỉ giá trị đặc biệt ½ (chƣa xác định) cho các lựa chọn có thể là 1 hoặc 0. Để xác định kết quả của các phép toán 3-logic ta dựa vào các bảng sau. - Bảng tính giá trị phép giao. A and B 1 1/2 0 1 1 1/2 0 1/2 1/2 1/2 0 0 0 0 0

Hình 3.1 Bảng giá trị phép giao 3-logic - Bảng tính giá trị phép hợp. A or B 1 1/2 0 1 1 1 1 1/2 1 1/2 1/2 0 1 1/2 0 Hình 3.2 Bảng giá trị phép hợp 3-logic - Bảng tính giá trị phép phủ định. A Not A 1 0 1/2 1/2 0 1 Hình 3.3 Bảng giá trị phép hợp 3-logic - Cấu trúc 2-logic và phân tích tĩnh.

38

+ Một cấu trúc 2-logic S bao gồm các vị từ logic, tập hợp

các vị từ này đƣợc ký hiệu là US, sự thể hiện mỗi vị từ p

trong S đƣợc kýhiệu là pS, xác định ps nhƣ sau

pS : (US)k → {0,1}. Một cấu trúc 2-logic thƣờng đƣợc dùng để mô tả ngữ nghĩa của phân vùng nhớ mà các tốn tử của chƣơng trình sử dụng.

+ Cấu trúc 2-logic phù hợp với việc mô tả đồ thị luồn điều khiển.

+ Giá trị của một cấu trúc 2-logic đƣợc xác định bằng công thức sau: v1: (x(v1) n* (v1,v)

Trong đó: x(v1) = 1 nếu v1 đƣợc trỏ đến bởi con trỏ x, và n*(v1,v) = 1 nếu trong S tồn tại một đƣờng đi từ v1 đến v, đƣờng đi này có số cạnh là 0 hoặc nhiều hơn n.

- Cấu trúc 3-logic và phân tích tĩnh:

+ Tƣơng tự nhƣ cấu trúc 2-logic, một cấu trúc 3-logic S

cũng có tập các vị từ US

, sự thể hiện của các vị từ p trong

S ký hiệu là pS đƣợc xác định theo hàm sau: pS

: (US)k {0,1, ½}. Giá trị ½ chỉ trạng thái chƣa xác định.

+ Cấu trúc 3-logic là một sự mở rộng của cấu trúc 2-logic trong việc mơ tả sơ đồ luồng điều khiển chƣơng trình, nó có thể mơ tả các cạnh chƣa xác định nối các đỉnh.

+ Nút đại diện (Summary nodes): một nút cấu trúc 3-logic có thể đƣợc dùng để đại diện một hay nhiều nút cấu trúc 2-logic, cấu trúc đó đƣợc gọi là nút đại diện. Trong các lƣợc đồ, nút đại diện đƣợc vẽ là một vòng tròn kép.

+ Phép nhúng: Cho 2 cấu trúc S và S’, và f:US→US’ là một hàm toàn ánh, S nhúng trong S’, ký hiệu là S ⊑f S’ nếu

39

với mỗi vị từ p(bao gồm cả nút đại diện): u1,…,uk US, pS(u1,…,uk) ⊑ pS’

(f(u1),…,f(uk))

và u’ US’, (|{u | f(u)=u’ }| > 1) ⊑ smS’(u’)

ta nói S đƣợc nhúng trong S’ nếu tồn tại một hàm f nhƣ trên.

+ Nhúng hoàn toàn: là một trƣờng hợp đặc biệt khi nhúng S và S’, khi đó tất cả các vị từ trong S đều đƣợc ánh xạ đến một vị từ trong S’. Cấu trúc S đƣợc nhúng hoàn toàn trong S’ khi tồn tại 1 hàm toàn ánh blur: US→US’ thỏa mãn điều kiện: với tất cả p (p ≠ sm)

và u' US’:

vì hàm blur là một hàm tồn ánh nên từ 2 cơng thức trên ta xác định đƣợc S’= blur (S).

Một phần của tài liệu phân tích tĩnh chương trình bằng phương pháp giải thích trừu tượng (Trang 38 - 40)

Tải bản đầy đủ (PDF)

(65 trang)