Sample
Buse/36
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.032 | 0–1; higher is more readable | 25.3Δ 12.1 |
| Dorn | 0.797 | 0–1; higher is more readable | 83.8Δ 70.7 |
| Mi | 0.571 | 0–1; higher is more readable | 49.5Δ 36.4 |
| LLOC | 4 | Logical lines; fewer is more readable | 59.6Δ 46.5 |
| DeepSeek V4 Pro | 14.67 | 0–20; mean of three runs | 55.1Δ 41.9 |
| GPT-6.1 Sol | 17 | 0–20; mean of three runs | 62.1Δ 49.0 |
| BTTF | 0.412 | 0–1; higher is more readable | 24.2Δ 11.1 |
| Human | 2.55 | 1–5; original rating | 13.1 |
Views
Select the downloaded ZIP or its extracted folder. Files stay in your browser.
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 229.248 | −7.565 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 4.732 | −7.098 |
| Source linesThe number of non-empty source lines. | 6 | +2.4 |
Intercept 8.87 + feature contributions = -3.394 (log-odds).
Score = sigmoid(-3.394) = 0.032.
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Identifier layout (horizontal)How rapidly the visual pattern of identifier characters changes from left to right. It measures spatial frequency, not the meaning of the names. | 55 | +1.336 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 7 | +0.788 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 5.768 | −0.329 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.125 | −0.273 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 55 | +0.083 |
Intercept 0.07 + feature contributions = 1.371 (log-odds).
Score = sigmoid(1.371) = 0.797.
| Score | 0.571 |
|---|
| Score | 4 |
|---|
Run 1
The code is generally readable: it uses clear variable names, one primary action per line, and shallow nesting. The intent—resolving a Java field and wrapping it in a Variable object—is straightforward. However, the unnecessary inline comment `/*onlyStatic*/` adds minor clutter, and the leading indentation is not shown in context. The code could be slightly improved by using a more descriptive variable name than `clas` (e.g., `clazz`) and formatting the `if` block consistently with braces. Overall, it is concise and logically organized, but not perfect.
Run 2
The code is moderately readable. It has a clear intent: resolve a field and create a Variable. The sequential actions (get class, resolve field, check null, return variable) are logically ordered. However, readability is hampered by inconsistent indentation (extra tabs before `Class`), unnecessary comment `/*onlyStatic*/` that could be a named boolean, and multi-line method arguments that break natural reading flow. Nesting is minimal but the early return pattern is not fully leveraged—using a guard clause (if field == null return null) would flatten logic. Action granularity is acceptable, though the `new Variable` line combines object creation with nested arguments. Overall, the structure is understandable but style inconsistencies and lack of descriptive constants reduce clarity.
Run 3
The code is generally readable with a clear logical flow: retrieve class, resolve field, conditionally construct a Variable. Nesting is minimal and action granularity is acceptable. However, readability is hindered by the use of 'clas' instead of 'clazz' or 'clazz', a slightly awkward line break before 'clas', and the inline boolean comment 'false/*onlyStatic*/' which interrupts the natural reading flow. The intent is mostly clear but could be improved with more descriptive parameter naming or a local variable for the boolean flag.
Run 1
Code Structure: Logically organized as class lookup, field resolution, and conditional variable creation. Nesting: Minimal, with only one conditional. Clarity of intent: Reflection-based field lookup is clear, and the onlyStatic comment explains the boolean argument; however, clas is an awkward name and LHS requires contextual knowledge. Code length: Concise, without unnecessary statements. Action granularity: Each statement has a clear role, although the return combines type lookup and nested object construction. Reading flow: Natural top-to-bottom progression, slightly disrupted by irregular spacing, line wrapping, and the unbraced conditional.
Run 2
Code Structure: Logically organized into class lookup, field resolution, and conditional variable creation. Nesting: Minimal, with only one conditional. Clarity of intent: Reflection-based field lookup is clear, and the onlyStatic comment explains the boolean argument; however, clas and LHS are less descriptive, and the missing-field outcome is not shown. Code length: Concise without unnecessary steps. Action granularity: Each statement performs a distinct operation, although the return combines nested constructor calls. Reading flow: Natural top-to-bottom progression, slightly disrupted by unusual spacing, line breaks, and the unbraced conditional.
Run 3
Code Structure: logically organized as class lookup, field resolution, and conditional variable creation. Nesting: minimal, with only one conditional. Clarity of intent: reflection-based field lookup is understandable, and the onlyStatic comment explains the boolean argument; however, clas is an awkward name, and behavior when no field exists is not shown. Code length: concise without unnecessary logic. Action granularity: mostly one action per statement, though the return combines nested object construction. Reading flow: natural top-to-bottom progression, slightly hindered by unusual spacing, line wrapping, and omitted conditional braces.