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).