2009-05-19 27 views
6

Bất cứ ai cũng biết về một dự án nguồn mở (hoặc có thể chỉ miễn phí để sử dụng trong các dự án thương mại) thay thế cho Mathworks Polyspace?Nguồn mở thay thế cho Mathworks Polyspace?

Tôi đang tìm kiếm các công cụ để kiểm tra mã và tìm thấy một số lựa chọn thay thế tốt cho kiểm tra tĩnh, nhưng PolySpace dường như cung cấp nhiều quyền lực hơn. Tôi nghĩ không có sự thay thế thực sự nào ngoài đó, nhưng có lẽ bạn biết rõ hơn. :)

Theo yêu cầu (xin lỗi, cho sự chậm trễ, RL bắt kịp ...) tôi thêm ngôn ngữ ưa thích của tôi cho công cụ này:

  1. Java
  2. NET (Sẽ ok với C# chỉ)
  3. C/C++ (không phải là phải có)
+0

Có thể trợ giúp nếu bạn đặt tên ngôn ngữ bạn cần công cụ. –

+0

Hm, có vẻ như sẽ không có nhiều đầu vào cho câu hỏi này ...% -) – cringe

Trả lời

7

Polyspace chỉ xử lý C, C++ và Java, do đó, đó là giải pháp thay thế mạnh mẽ thực sự là mà bạn đang tìm kiếm. Việc tìm kiếm động các phương thức phổ biến trong C# và Java không làm cho các ngôn ngữ này dễ phân tích hơn.

Đối với C, có một cái nhìn tại http://frama-c.cea.fr/

+0

Điều này trông giống như một công cụ thực sự tốt đẹp. Tôi đã cài đặt nó trên một máy ảo ubuntu để chơi với nó. Cảm ơn vì tiền hỗ trợ. :) – cringe

1

Polyspace được thiết kế xung quanh một số công nghệ phân tích chương trình rất phức tạp. Tôi không nghĩ rằng bạn sẽ sớm thấy các phiên bản nguồn mở/miễn phí này bất kỳ lúc nào.

0

Tôi biết rằng đây là câu hỏi cũ nhưng có rất nhiều các công cụ vì vậy nếu bạn quan tâm đến phân tích mã tĩnh ở đây là list of tools được sắp xếp theo ngôn ngữ.

Nếu bạn nhìn chỉ dành cho công cụ mã nguồn mở cho mã Java Tôi muốn giới thiệu bạn FindBugs

3

Đối với C/C++ có Klee, mà dường như khá gần polyspace http://klee.llvm.org

Klee là một công cụ là kết quả của một dự án nghiên cứu, và nó cho phép bạn thực hiện biểu tượng của một chương trình C/C++, bằng cách biên dịch nó thành bytecode LLVM và thực thi nó với một trình thông dịch tùy chỉnh. Điều này cho phép phát hiện các lỗi thời gian chạy như tràn bộ đệm, phân chia bằng không và vượt qua, và khi nó phát hiện lỗi như vậy, nó viết một trường hợp thử nghiệm để tái tạo nó và xem giá trị nào xảy ra lỗi. Ban đầu được viết cho các tiện ích dòng lệnh chuẩn, nó cũng có thể được sử dụng cho một chương trình chung, bằng cách làm cho biểu tượng đầu vào của bạn (tôi đang thử nghiệm nó trên phần mềm nhúng). Hi vọng điêu nay co ich!

+0

Chào mừng bạn đến với Stack Overflow! Câu trả lời của bạn là liên kết duy nhất và nó không được coi là thực hành tốt bởi các tiêu chuẩn SO. Bạn có thể mở rộng nó cho tôi cụ thể hơn không? –

+0

Chỉnh sửa câu trả lời của bạn sẽ tốt hơn khi thêm nhận xét. Bạn sẽ thấy một liên kết chỉnh sửa bên dưới bạn trả lời. –

Các vấn đề liên quan