I submitted code with syntax errors and checkmycode.org didn't report them. Why?

checkmycode.org uses a novel lightweight parser that is oblivious to syntax errors and tries to analyze the code event at the cost of ignoring or misrepresenting some parts of it.

My code has the following bug: …. Why wasn't it reported by checkmycode.org?

checkmycode.org is not a silver bullet and is not able to find all bugs. In particular, checkmycode.org focuses on dataflow between functions and compares it to the one encountered in the programs from the Gentoo Linux distribution. If the dataflow in your code occurs rarely or not at all, but an alternative dataflow occurs frequently, an anomaly in your code will be reported. Note that even in this case not all bugs can be found. This is due to both limitations of checkmycode.org and undecidability of such analysis in general.

checkmycode.org reported an anomaly in code which is in fact correct.

See the answer to the question above.

How does checkmycode.org work?

Our Tikanga framework learns models that represent the way objects are being used in a program. We learned such rules from 200 million lines of Linux source code, and can thus check your code against these rules.

Here's a technical report that describes all the gory details.

Does it work for other languages than C?

The underlying framework works with all languages with a C-like syntax, such as C++, Java, C#, PHP, as well as Java bytecode. The checkmycode site, though, accepts only C code, since its stored rules have been extracted from C programs. (You don't want to apply PHP rules to C# programs.)

Here's a technical report that describes all the gory details.

Can I apply it on my programs with more than 256 lines?

Right now, the limitation is there to cope with the high demand. We are currently planning to release the framework to the public, such that you can
a) check your own code against the Linux rules, and
b) learn rules from your own project, such that you can detect anomalies within your own project.

Here's a technical report that describes all the gory details.

 
please enable javascript