Automated evaluation of grammars
First Claim
1. A method comprising:
- accessing first grammar data associated with a first grammar and second grammar data associated with a second grammar, wherein a grammar comprises one or more rules that define a programming language that corresponds to the grammar;
determining from the first grammar data and the second grammar data whether the first grammar and the second grammar correspond to the same programming language, wherein determining whether the first grammar and the second grammar correspond to the same programming language includes;
applying one or more transformational steps to both the first grammar data and the second grammar data;
after each transformational step, determining whether the first grammar data and the second grammar data correspond;
in accordance with a determination that the first grammar data and the second grammar data correspond, determining that the first grammar and the second grammar both correspond to the same programming language; and
in accordance with a determination that the first grammar data and the second grammar data do not correspond, selecting a next transformational step in the one or more transformational steps, wherein prior to selecting the next transformational step;
determining whether there are any remaining transformational steps, andin accordance with a determination that there are no remaining transformational steps, determining that the first grammar and the second grammar do not correspond to the same programming language.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for automating evaluation of grammars associated with one or more programming languages is disclosed. The computer system accesses first grammar data associated with a first grammar and second grammar data associated with a second grammar, wherein a grammar comprises one or more rules that define a programming language. The computer system determines from the first grammar data and the second grammar data whether the first grammar and the second grammar correspond to the same programming language. Determining further includes applying one or more transformational steps to both the first grammar data and the second grammar data. After each transformational step, the computer system determines whether the first and second grammar data correspond. In accordance with a determination that the first grammar data and the second grammar data correspond, the computer system determines that the first and second grammar both correspond to the same programming language.
-
Citations
14 Claims
-
1. A method comprising:
-
accessing first grammar data associated with a first grammar and second grammar data associated with a second grammar, wherein a grammar comprises one or more rules that define a programming language that corresponds to the grammar; determining from the first grammar data and the second grammar data whether the first grammar and the second grammar correspond to the same programming language, wherein determining whether the first grammar and the second grammar correspond to the same programming language includes; applying one or more transformational steps to both the first grammar data and the second grammar data; after each transformational step, determining whether the first grammar data and the second grammar data correspond; in accordance with a determination that the first grammar data and the second grammar data correspond, determining that the first grammar and the second grammar both correspond to the same programming language; and in accordance with a determination that the first grammar data and the second grammar data do not correspond, selecting a next transformational step in the one or more transformational steps, wherein prior to selecting the next transformational step; determining whether there are any remaining transformational steps, and in accordance with a determination that there are no remaining transformational steps, determining that the first grammar and the second grammar do not correspond to the same programming language. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system comprising:
-
one or more processors configured to include; an accessing module to access first grammar data associated with a first grammar and second grammar data associated with a second grammar, wherein a grammar comprises one or more rules that define a programming language that corresponds to the grammar; a transformation module to determine from the first grammar data and the second grammar data whether the first grammar and the second grammar correspond to the same programming language, wherein determining whether the first grammar and the second grammar correspond to the same programming language includes; an application module to apply one or more transformational steps to both the first grammar data and the second grammar data; a corresponding module to, after each transformational step, determine whether the first grammar data and the second grammar data correspond; a comparison module, in accordance with a determination that the first grammar data and the second grammar data correspond, determine that the first grammar and the second grammar both correspond to the same programming language; a step selection module to, in accordance with a determination that the first grammar data and the second grammar data do not correspond, selecting a next transformational step in the one or more transformational steps, wherein prior to selecting the next transformational step; a determination module to determine whether there are any remaining transformational steps, and a difference module to, in accordance with a determination that there are no remaining transformational steps, determine that the first grammar and the second grammar do not correspond to the same programming language. - View Dependent Claims (11, 12)
-
-
13. A non-transitory computer-readable storage medium storing instructions that, when executed by the one or more processors of a machine, cause the machine to perform operations comprising:
-
accessing first grammar data associated with a first grammar and second grammar data associated with a second grammar, wherein a grammar comprises one or more rules that define a programming language that corresponds to the grammar; determining from the first grammar data and the second grammar data whether the first grammar and the second grammar correspond to the same programming language, wherein determining whether the first grammar and the second grammar correspond to the same programming language includes; applying one or more transformational steps to both the first grammar data and the second grammar data; after each transformational step, determining whether the first grammar data and the second grammar data correspond; in accordance with a determination that the first grammar data and the second grammar data correspond, determining that the first grammar and the second grammar both correspond to the same programming language; and in accordance with a determination that the first grammar data and the second grammar data do not correspond, selecting a next transformational step in the one or more transformational steps, wherein prior to selecting the next transformational step; determining whether there are any remaining transformational steps, and in accordance with a determination that there are no remaining transformational steps, determining that the first grammar and the second grammar do not correspond to the same programming language. - View Dependent Claims (14)
-
Specification