Một số ứng dụng kiểm định Logic khác

Một phần của tài liệu Nghiên cứu về separation logic và ứng dụng vào hệ thống kiểm định tự động (Trang 89 - 94)

Những ứng dụng kiểm định chương trình dựa trên lý thuyết suy diễn Hoare Logic ra đời từ khá lâu so với các ứng dụng trên nền tảng Separation Logic. Sau đây đề cập tới một số ứng dụng điển hình và những điểm hạn chế của các ứng dụng này.

ESC/Java là ứng dụng kiểm tra những chương trình tĩnh cho Java, được phát triển bởi Compaq Systems Research Center.Với mong muốn tìm ra nhiều lỗi hơn so với những công cụ kiểm định tĩnh trước đó. Ứng dụng ESC/Javacho phép

Học viên thực hiện: Nguyễn Đức Cường – Lớp 11BCNTT Trang90

chương trình kiểm định có thể qua được những lỗi mà đã được thiết kế bởi ESC/Java tức là chấp nhận những kết quả sai của chương trình. Với cách thức kiểm định được đề cập trong luận văn, nếu một chương trình được kiểm định thì nó luôn được đảm bảo tính đúng đắn là phù hợp với những đặc tả chương trình thực thi.

ESC/Java2 là sự cải tiến tiếp theo của ESC/Java. Trong đó được thiết kế phù hợp với nhiều hơn các phiên bản Java và nhiều hơn các cấu trúc JML. Tuy nhiên nó vẫn gặp nhiều khó khăn cho việc kiểm định các chương trình sử dụng cấu trúc dữ liệu Heap mà yêu cầu thuộc tính Reachability.

Spec là một chương trình được phát triển bởi Microsoft Research, nó được sử dụng để kiểm định các chương trình được viết với ngôn ngữ C#. Điểm khác biệt là Spec sử dụng các trường đặc biệt trong thủ tục để lưu trữ các tính chất bất biến, thì trong luận văn đề cập tới khái niệm vị từ. Việc sử dụng vị từ giúp người dùng dễ dàng hình dung hơn với các đặc tính bất biến của chương trình.

VeriFast là công cụ được phát triển để kiểm địnhnhững thuộc tính an toàn của những chương trình làm việc với con trỏ. Công cụ này cũng hỗ trợ những vị từ dưới dạng thức của Separation Logic tuy nhiên các kỹ thuật đặc tả được đề cập còn khá đơn giản.

Còn rất nhiều những công cụ kiểm định khác sử dụng Logic để suy diễn tính đúng đắn của chương trình. Những so sánh trên đây giúp cho người đọc dễ hình dung hơn những điểm khác biệt cơ bản của công cụ được đề cập tới trong luận văn và các công cụ được đưa ra so sánh. Điểm nhấn mạnh mà luận văn đưa ra đó là khái niệm vị từ User-defined, được sử dụng để mô tả các thuộc tính sử dụng để phân tích chương trình một cách hiệu quả hơn.

Học viên thực hiện: Nguyễn Đức Cường – Lớp 11BCNTT Trang91

KẾT LUẬN

1. CÁC NHIỆM VỤ ĐÃ HOÀN THÀNH

Lĩnh vực ứng dụng Separation Logic còn khá mới mẻ, do đó khi nghiên cứu tìm hiểu về Separation Logic người viết luận văn đã cố gắng tìm hiểu và trình bày những khía cạnh cơ bản nhất và tập trung vào hoàn thành những mục tiêu đề ra của luận văn:

1) Nghiên cứu tổng quan về nền tảng Separation Logic, nêu rõ vai trò của Separation Logic đối với việc phát triển các ứng dụng kiểm định phần mềm tự động.

2) Nghiên cứu cơ bản về Separation Logic và kỹ thuật đặc tả chương trình ứng dụng Separation Logic ứng dụng xây dựng công cụ kiểm định tự động.

3) Nghiên cứu công cụ HIP/SLEEK ứng dụng Separation Logic kiểm định cácModeule chương trình tự động.

2. CÁC KẾT QUẢ ĐẠT ĐƯỢC Về mặt lý thuyết:

1) Trình bày được nền tảng cơ sở xây dựnglên lý thuyết Separation Logic và vai trò của nó trong hoạt động kiểm định phần mềm tự động.

2) Trình bày được cơ bản lý thuyết Separation Logic, kỹ thuật đặc tả chương trình dựa trên Separation Logic và mô hình tính đúng đắn của suy diễn kiểm định. Đây chính là nền tảng xây dựng lên các công cụ kiểm định chương trình tự động ứng dụng Separation Logic.

Học viên thực hiện: Nguyễn Đức Cường – Lớp 11BCNTT Trang92

Về mặt thực nghiệm:

1) Trình bày được một mô hình kiểm định ứng dụng lý thuyết Separation Logic trong kiểm định Module chương trình là công cụ HIP/SLEEK.

2) Trình bày được thực nghiệm kiểm định đặc tả một số cấu trúc dữ liệu ứng dụng lý thuyết Separation Logicvà kết quả thực nghiệm thực tế với công cụ HIP/SLEEK. Thực nghiệm này đóng vai trò khai phá cho những ứng dụng kiểm định đặc tả áp dụng công cụ HIP/SLEEK vào việc kiểm chứng tính đúng đắn của chương trình.

3. CÁC VẤN ĐỀ CÒN TỒN ĐỌNG

Do khối lượng lý thuyết là khá lớn và lý thuyết về Separation Logic còn khá mới mẻ nên luận văn còn một số vấn đề tồn đọng như sau:

1) Chưa đề cập tới các quy tắc xấp xỉ trong lý thuyết của Separation Logic và trong suydiễn kiểm định chương trình.

2) Chưa đưa ra được hiệu năng kiểm định tự động của các mô hình ứng dụng lý thuyết Separation Logic với các mô hình suy diễn tự động khác.

4. ĐỊNH HƯỚNG PHÁT TRIỂN

Với đề tài này, người viết luận văn mong muốn trong thời gian tới tiếp tục bổ sung hoàn thiện lý thuyết về Separation Logic, đặc biệt là lý thuyết về các mô hình xấp xỉ và làm rõ hơn việc chứng minh các định lý đề cập trong luận văn. Đồng thời trình bày thêm các ứng dụng kiểm định tự động khác ứng dụng lý thuyết Separation Logic và trong tương lai phát triển một công cụ kiểm định tự động toàn bộ cấu trúc chương trình.

Học viên thực hiện: Nguyễn Đức Cường – Lớp 11BCNTT Trang93

TÀI LIỆU THAM KHẢO

[1].BURDY, L., CHEON, Y., COK, D. R., ERNST, M. D., KINIRY, J. R., LEAVENS, G. T.,LEINO, K. R. M., and POLL, E., “An overview of JML tools and applications,” Software Tools for Technology Transfer, 2005. (adsbygoogle = window.adsbygoogle || []).push({});

[2].CHIN, W.-N., DAVID, C., NGUYEN, H. H., and QIN, S., “Multiple pre/post specifica-tions for heap-manipulating methods,” in HASE, 2007.

[3].CHIN, W.-N., DAVID, C., NGUYEN, H. H., and QIN, S., “Enhancing modular oo veri-fication with separation logic,” inPOPL, 2008.

[4].CHIN, W. and KHOO, S., “Calculating sized types,” in ACM SIGPLAN PEPM, (Boston, United States), pp. 62–72, Jan. 2000.

[5].CHIN, W., KHOO, S., QIN, S., POPEEA, C., and NGUYEN, H., “Verifying Safety Poli-cies with Size Properties and Alias Controls,” inIEEE/ACM Intl. Conf. on Software En-gineering, (St. Louis, Missouri), May 2005.

[6].COK, D. R. and KINIRY, J., “ESC/Java2: Uniting ESC/Java and JML.,” in Int’l Work-shop on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices, pp. 108–128, 2004.

[7].C.A.R. Hoare. An axiomatic basis for computer programming. Communications of the ACM, 12(10):576–580, 1969.

[8].C.A.R. Hoare and J. He. A Trace Model for Pointers and Objects. InEuropean Conference on Object-Oriented Programming, volume 1628 of Lecture Notes in Computer Science, pages 1–17. Springer, 1999.

[9].C.A.R. Hoare. The verifying compiler: A grand challenge for computing research. Journal of ACM, 50(1):63–69, 2003.

Học viên thực hiện: Nguyễn Đức Cường – Lớp 11BCNTT Trang94

[10].JACOBS, B., SMANS, J., and PIESSENS, F., “A Quick Tour of the VeriFast Program Verifier,” inAPLAS, pp. 304–311, 2010.

[11].K.R.M. Leino. Specification and verification of object-oriented software. lecture notes. Marktoberdorf international summer school, 2008.

[12].LEINO, K. R. M., “Dafny: An automatic program verifier for functional correctness,” in LPAR (Dakar), pp. 348–370, 2010.

[13].M. Barnett, K. R. M. Leino, and W. Schulte. The Spec# programming system: An overview. InInt’l Workshop on Construction and Analysis of Safe, Secure, and Interop-erable Smart Devices, volume 3362 of Lecture Notes in Computer Science, pages 49–69. Springer, 2004.

[14].NGUYEN, H. H., DAVID, C., QIN, S., and CHIN, W., “Automated Verification of Shape And Size Properties via Separation Logic,” inIntl Conf. on Verification, Model Checking and Abstract Interpretation, (Nice, France), Jan. 2007.

[15].REYNOLDS, J., “Separation Logic: A Logic for Shared Mutable Data Structures,” in IEEE Logic in Computer Science, (Copenhagen, Denmark), July 2002.

[16].W.N. Chin, S.C. Khoo, S.C. Qin, C. Popeea, and H.H. Nguyen. Verifying Safet Policies with Size Properties and Alias Controls. InACM SIGSOFT International Conference on Software Engineering, pages 186–195. ACM, 2005.

Một phần của tài liệu Nghiên cứu về separation logic và ứng dụng vào hệ thống kiểm định tự động (Trang 89 - 94)