IP Library › Granted Patent US 8,156,474
Granted Patent B2
US 8,156,474 · App. 11/966,834 · Granted Apr 10, 2012

Automation of software verification

Assignee: Cadence Design Systems, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,156,474
App. No.
11/966,834
Granted
Apr 10, 2012
Kind
B2
Abstract

A method, system, and computer program product are disclosed for automatic test generation for a compiler. In one approach, the method, system and computer program product represent a test case for the compiler in a structure with one or more elements of a programming language, associate at least one syntactic rule and semantic rule with the one or more elements in the structure, create a test with the structure compiling the test with the compiler, and display results of the test.

Claims (37)

1. The method for automatic test generation for a compiler, comprising:

representing a test case for a compiler in a structure, wherein the structure comprises one or more elements of a programming language;

associating at least one syntactic rule and at least one semantic rule with at least one of the one or more elements in the structure;

generating, by using a processor, a test utilizing rules associated with the one or more elements of the structure to test the semantics of the programming language, in which self checking code segments are created by one or more code elements and inserted at different points in the structure according to semantic restrictions and the test includes insertion of a noise mechanism, wherein the noise mechanism does not corrupt a variable value;

compiling the test with the compiler to verify the compiler; and

displaying or storing results of the test.

2. The method of claim 1 , wherein the structure is a syntax tree.

3. The method of claim 1 , further comprising:

accessing context information for the test during generation of the test; and

determining the test content with the context information.

4. The method of claim 1 , wherein the test generated is an illegal test case for the compiler.

5. The method of claim 1 , wherein the structure is created with one or more class definitions for elements of the programming language.

6. The method of claim 1 , in which the noise mechanism comprises a garbage collection statement.

7. A system for automatic test generation for a compiler, comprising:

an interface for representing a test case for the compiler in a structure, wherein the structure comprises one or more elements of a programming language;

a non-transitory computer usable medium comprising a library for associating at least one of the one or more elements in the structure with at least one syntactic rule and at least one semantic rule;

a test generator comprising a processor for generating a test utilizing rules associated with the one or more elements of the structure to test the semantics of the programming language, wherein the test is compiled with the compiler to verify the compiler, in which self checking code segments are created by one or more code elements and inserted at different points in the structure according to semantic restrictions and the test includes insertion of a noise mechanism, wherein the noise mechanism does not corrupt a variable value; and

a storage for storing results of the test.

8. The system of claim 7 , wherein the structure is a syntax tree.

9. The system of claim 7 , further comprising:

a context manager for accessing context information for the test during generation of the test, wherein the test content is determined with the context information.

10. The system of claim 7 , wherein the test generated is an illegal test case for the compiler.

11. The system of claim 7 , wherein the structure is created with one or more class definitions for elements of the programming language.

12. The system of claim 7 , in which the noise mechanism comprises a garbage collection statement.

13. A computer program product comprising a non-transitory computer usable medium storing executable code to execute a process using a processor for automatic test generation for a compiler, the process comprising:

representing a test case for a compiler in a structure, wherein the structure comprises one or more elements of a programming language;

associating at least one syntactic rule and at least one semantic rule with at least one of the one or more elements in the structure;

generating, by using the processor, a test utilizing rules associated with the one or more elements of the structure to test the semantics of the programming language, in which self checking code segments are created by one or more code elements and inserted at different points in the structure according to semantic restrictions and the test includes insertion of a noise mechanism, wherein the noise mechanism does not corrupt a variable value;

compiling the test with the compiler to verify the compiler based at least in part upon results of the test; and

displaying or storing results of the test.

14. The computer program product of claim 13 , wherein the structure is a syntax tree.

15. The computer program product of claim 13 , further comprising:

accessing context information for the test during generation of the test; and

determining the test content with the context information.

16. The computer program product of claim 13 , wherein the test generated is an illegal test case for the compiler.

17. The computer program product of claim 13 , wherein the structure is created with one or more class definitions for elements of the programming language.

18. The computer program product of claim 13 , in which the noise mechanism comprises a garbage collection statement.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2008
From: TEPLITSKY, MARAT; OVADIA, MEIR; GRADOVICH, NOA
To: CADENCE DESIGN SYSTEMS, INC.
Reel/Frame 020874/0629 →
Continuity (1)
Related Publication 20090172649A1 · Jul 2, 2009