Rỳt gọn chương trỡnh đa phương thức sử dụng SDG

Một phần của tài liệu Đồ án tốt nghiệp đại học xây DỰNG hệ THỐNG hỗ TRỢ sửa lỗi CHƯƠNG TRÌNH sử DỤNG THUẬT TOÁN ‘rút gọn CHƯƠNG TRÌNH’ (Trang 41 - 47)

2. Rỳt gọn chương trỡnh sử dụng Đồ thị phụ thuộc chương trỡnh (Program Dependence

2.2 Rỳt gọn chương trỡnh đa phương thức sử dụng SDG

Bài toỏn rỳt gọn cho chương trỡnh đa phương thức là một mở rộng của bài toỏn đơn thủ tục, vỡ thế nú sẽ cú một vài thay đổi trong thuật toỏn. Những thay đổi trong thuật toỏn cho chương trỡnh đa phương thức đú là phải biểu diờn: lời gọi hàm, Procedure Entry, cỏc tham số, và việc truyền tham số. Trong phần này sẽ trỡnh bày thuật toỏn rỳt gọn chương trỡnh đa phương thức dựa trờn sự mở rộng của PDG gọi là Đồ thị phụ thuộc hệ thống (System Dependence Graph – SDG).

Một SDG cú cỏc thuộc tớnh như sau:

i. Một hệ hoàn thiện bao gồm một phương thức chớnh và tập cỏc phương thức con.

ii. Cỏc tham số được truyền bởi giỏ trị hoặc địa chỉ.

đồ thị phụ thuộc chương trỡnh ngoài việc chỳng bao gồm cỏc cung biểu diờn cõu lệnh gọi hàm, truyền tham số. Do sự khỏc biệt khụng lớn nờn ta cú thể gọi cả hai loại đồ thị phụ thuộc chương trỡnh và đồ thị phụ thuộc phương thức là PDG.

Một cõu lệnh gọi hàm được biểu diờn bằng việc sử dụng một đỉnh Call; việc truyền tham số được biểu diờn bằng cỏch sử dụng 4 loại đỉnh tham số: phớa lời gọi hàm truyền tham số được biểu diờn bởi cỏc đỉnh actual-in và actual-out chỳng là phụ thuộc điều khiển lờn đỉnh Call; Phớa phương thức được gọi truyền tham số được biểu diờn bởi cỏc đỉnh formal-in và formal- out bao gồm tất cả cỏc biến toàn cục được sử dụng hoặc sửa đổi giống như kết quả của lời gọi cho mụ̃i tham số. Việc phõn tớch luồng dữ liệu cho chương trỡnh đa phương thức được sử dụng để xỏc định cỏc đỉnh tham số cho mụ̃i thủ tục. Ngoài ra trong SDG còn cú cỏc cung nối giữa cỏc đỉnh actual-in và formal-in, actual-out và formal-out tương ứng dựng để biểu diờn phụ thuộc dữ liệu giữa cỏc thủ tục.

Cỏc đồ thị phụ thuộc phương thức được nối với nhau trong SDG sử dụng 3 loại cung:

i. Một cung Call được thờm vào từ mụ̃i đỉnh gọi hàm đến đỉnh đầu phương thức tương ứng với lời gọi.

ii. Một cung parameter-in được thờm vào từ mụ̃i đỉnh actual-in từ phớa phương thức gọi hàm đến đỉnh formal-in trong phương thức được gọi tương ứng.

iii. Một cung parameter-out được thờm vào từ mụ̃i đỉnh formal-out từ

phớa phương thức được gọi đến đỉnh actual-out từ phớa phương thức gọi hàm.

Người ta gọi ba loại cung như trờn là cỏc cung “summary”, Hỡnh 4 cho thấy một hệ và SDG tương ứng.

Rỳt gọn chương trỡnh đa phương thức cú thể được định nghĩa giống như một bài toỏn cú thể giải quyết sử dụng SDG cũng giống như Rỳt gọn chương

trỡnh đơn phương thức cú thể được định nghĩa giống như một bài toỏn cú thể giải quyết sử dụng PDG.

Để cú được Rỳt gọn đa phương thức chớnh xỏc hơn, một Rỳt gọn đa phương thức với đỉnh s được xỏc định sử dụng hai phép duyệt đồ thị. Cả hai phép duyệt đều trờn PDG, nếu s thuộc phương thức P phép duyệt thứ nhất xỏc định cỏc đỉnh nối đến s thuộc P hoặc thuộc cỏc phương thức gọi P. Phép duyệt thứ hai xỏc định cỏc đỉnh trong phương thức được gọi tạo ra cỏc cung

summary đó dựng trong phép duyệt thứ nhất.

Duyệt đồ thị trong phép duyệt thứ nhất bắt đầu từ đỉnh s và quay lui lại (từ đớch đến gốc của đồ thị) theo cỏc cung Parameter-in, cung summary, cung Call, cung điều khiển và cung dữ liệu, nhưng khụng theo cỏc cung

Parameter-out. Trong phép duyệt thứ hai bắt đầu từ tất cả cỏc đỉnh nối đến cỏc đỉnh trong phép duyệt thứ nhất và quay lui theo cỏc cung dữ liệu, điều khiển, SummaryParameter-out nhưng khụng theo cỏc cung Parameter-in

Chương 4

Phõn tớch và cài đặt hệ thống

Mục tiờu của đề tài là xõy dựng một hệ thống hụ̃ trợ cho lập trỡnh viờn sửa lụ̃i (Debug) chương trỡnh, như đó núi ở Chương 1 lụ̃i được đề cập ở trong đề tài này là lụ̃i về mặt ngữ nghĩa (Semantic) là lụ̃i mà chương trỡnh mắc phải trong quỏ trỡnh tớnh toỏn.

Trong cụng việc phỏt triển phần mềm người ta thường chia nhỏ phần mềm đú thành cỏc mụ-đun theo một tiờu chớ nào đú (vớ dụ như về chức năng chẳng hạn) cho cỏc nhúm lập trỡnh viờn phỏt triển, để phỏt triển cỏc mụ-đun người ta lại chia mụ-đun đú ra thành cỏc phần nhỏ hơn và khi cụng việc đến tay cỏc lập trỡnh viờn thỡ cụng việc của họ là viết tạo cỏc đối tượng, viết cỏc phương thức (hàm và thủ tục)…Mụ̃i phương thức cú thể trả về một giỏ trị nào đú hoặc là thực hiện một cụng việc nào đú, nhưng việc trả về một giỏ trị hay thực hiện một số cụng việc nào đú của phương thức lại phụ thuộc trực tiếp vào giỏ trị cỏc biến của phương thức. Núi như thế để thấy rằng đầu ra hoặc cỏch thức hoạt động của phương thức khụng hề tỏch rời cỏc biến của nú.

Khi kiểm tra thấy giỏ trị trả về hoặc hoạt động của phương thức khụng chớnh xỏc khi đú Lập trỡnh viờn sẽ xõm nhập vào phương thức để xem xét lại việc tớnh toỏn của cỏc biến. Nhưng cụng việc kiểm tra xem biến nào của phương thức cú giỏ trị sai xem ra khụng khú bằng việc định vị cõu lệnh gõy ra “sự cố” đú. Khi nhận thấy giỏ trị của một biến tại một cõu lệnh nào đú trong chương trỡnh nhận giỏ trị khụng chớnh xỏc, lập trỡnh viờn lại phải đi dò một cỏch thủ cụng trờn những cõu lệnh cú thể ảnh hưởng đến giỏ trị của

biến. Nếu như chỳng ta cú thể đưa ra một chương trỡnh mà chương trỡnh đú chỉ chứa cỏc cõu lệnh ảnh hưởng đến giỏ trị của biến mà chỳng ta đang nghi ngờ thỡ chỳng ta khụng phải tốn cụng sức và thời gian để phải duyệt từng cõu lệnh một cỏch thủ cụng.

Như vậy hụ̃ trợ của hệ thống chỳng tụi đang xõy dựng đú là dựa vào thuật toỏn rỳt gọn chương trỡnh hệ thống để tạo ra cỏc chương trỡnh rỳt gọn cho cỏc chương trỡnh cú lụ̃i.

Một phần của tài liệu Đồ án tốt nghiệp đại học xây DỰNG hệ THỐNG hỗ TRỢ sửa lỗi CHƯƠNG TRÌNH sử DỤNG THUẬT TOÁN ‘rút gọn CHƯƠNG TRÌNH’ (Trang 41 - 47)

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

(79 trang)
w