NADA-Eval
A benchmark and evaluation suite for multilingual programming models.
It measures how well AI models understand, write, modify, explain and repair source code when programming is done in human languages other than English, according to the NADA open standard. It is in development, and the first public season is being prepared now.
What is NADA-Eval?
NADA-Eval is a benchmark and evaluation suite for multilingual programming models.
It measures how well AI models understand, write, modify, explain and repair source code when programming is done in human languages other than English.
Most existing coding benchmarks translate the user's question into another language, but keep the code itself in English. NADA-Eval measures something different: whether a model can work correctly with programming languages whose keywords, standard libraries and common programming terminology have been localized.
The benchmark is built on the NADA registry of canonical programming terminology. This registry provides an objective reference for determining whether localized programming terminology is correct, consistent and up to date.
What is the benchmark?
The benchmark is a collection of programming tasks.
Every model is evaluated using the same methodology so that results can be compared fairly.
Some parts of the benchmark are public and are intended for reproducible research and public leaderboards. Other parts remain private to reduce contamination from models training on benchmark questions.
The benchmark is updated over time as programming languages, libraries, frameworks and the NADA registry evolve.
What is an evaluation?
An evaluation is the process of running a model against the benchmark.
The result is a report describing how the model performs across different programming languages, human languages, task categories and levels of difficulty.
Private evaluations can also focus on particular programming languages, human languages, frameworks or customer requirements while using the same underlying methodology.
What kinds of things are measured?
The benchmark measures many different aspects of multilingual programming. Examples include:
- Reading localized source code.
- Writing localized source code.
- Repairing bugs in localized programs.
- Explaining localized programs.
- Understanding programming requests written in different human languages.
- Using canonical programming terminology rather than inventing translations.
- Recognising obsolete terminology and updating it to the current version of the registry.
- Moving between English and localized code without changing the program's behaviour.
- Understanding mixed-language situations where code, error messages and user requests may all use different languages.
- Discussing code without writing any — using canonical localized terminology in ordinary conversation, and recognising when a registry lookup is warranted instead of improvising.
Deterministic localization
NADA does not provide training data for localized programming.
Instead, it provides a deterministic registry and localization engine that AI systems can deploy locally or integrate directly into their products.
Rather than memorising programming terminology during training and attempting to reproduce it later, a model can consult the registry whenever authoritative terminology is required.
The benchmark measures whether a model understands when this deterministic infrastructure should be used, whether it uses it correctly, and whether it preserves canonical terminology throughout a conversation.
Tool and oracle usage
Modern AI systems increasingly rely on external tools rather than attempting to answer every question from their internal parameters alone.
NADA-Eval measures whether a model correctly uses the NADA registry and localization engine when appropriate. This includes questions such as:
- Does the model recognise when canonical terminology should be looked up rather than guessed?
- Does it call the correct programming language, locale and registry version?
- Does it avoid unnecessary lookups when the answer is already deterministic?
- Does it correctly process localized code through the canonical representation before analysing or modifying it?
- Does it preserve canonical terminology throughout the interaction?
NADA provides a downloadable agent skill — an offline package that lets any AI system consult the registry and localization engine locally, with no prior training on NADA required. Models can therefore be evaluated in two configurations: models that have been specifically fine-tuned for the skill or carry first-party, official system prompts that reference it, and models that are unaware of NADA but whose end users have added it as a custom skill.
When to call the tool is itself part of the benchmark. Existing benchmarks already measure general tool-calling ability — the Berkeley Function-Calling Leaderboard is the best known. NADA-Eval asks the same question of a deterministic terminology engine.
Some scenarios require several tool calls in sequence. A user may paste broken localized code: the model must first reason about the problem, then call the engine to canonicalize the code into English, do its repair work, and call the engine again to render the fixed code back into the target locale. In other cases the language itself is ambiguous — Indonesian and Malay share much of their vocabulary — and the model may need the skill's language detection and confidence scoring to identify the locale before any of this work can begin. The benchmark measures whether the model orchestrates these steps correctly: reasoning first, deterministic tooling at the boundaries, canonical terminology preserved throughout.
Locale awareness
Real programming conversations often involve several human languages at the same time.
For example, a user may write in Tibetan, paste Python localized into Spanish, receive an English traceback, and request that the final answer be returned in Tibetan.
The benchmark measures whether the model correctly identifies the intended working language for the user, the intended language of the code, and the appropriate language for explanations.
It also measures whether the model unnecessarily switches languages or attempts to translate programming terminology that should remain canonical.
Canonical terminology
The benchmark distinguishes between canonical terminology, accepted historical terminology, obsolete terminology and invented terminology.
Models are evaluated on whether they consistently use the canonical terminology defined by the NADA registry, both inside source code and in normal written explanations.
This applies equally to programming keywords, standard library terminology, framework terminology and other programming concepts.
Example tasks
The model is shown a Python program whose keywords have been rendered into Arabic, and is asked: what does this program print?
The user asks for a binary search function in Ukrainian Python. The benchmark checks whether the algorithm is correct, whether canonical localized terminology is used, whether obsolete terminology is avoided, and whether invented terminology appears.
The user writes only “ช่วยเขียนโค้ดคำนวณภาษี”. The benchmark checks whether the model understands the request, determines the intended output language, produces localized code, uses canonical terminology, and avoids inventing localized keywords.
The model receives Python localized into Spanish using inconsistent or outdated terminology. The benchmark checks whether it recognises the intended programming language, converts the program into canonical form, repairs any programming errors, and re-localizes the corrected program using the current canonical terminology.
The model receives localized source code together with an English compiler or runtime error. It must identify the problem, produce a corrected version of the program, and present the result using the requested localization.
The model encounters localized programming terminology that is unfamiliar or ambiguous. The benchmark measures whether it recognises that authoritative terminology is available, consults the deterministic registry when appropriate, avoids inventing terminology, and correctly incorporates the canonical result into its explanation and generated code.
The user asks, in Thai, how while loops differ from for loops. No code is requested and none is pasted. The benchmark checks whether the model's explanation uses the canonical localized terms from the registry, or invents its own translations mid-conversation.
How are answers scored?
Where possible, answers are scored automatically. Many tasks have objectively correct answers.
Localization tasks are scored by comparing the model's output against the NADA registry of canonical programming terminology. Other tasks compare program behaviour, canonical representations or deterministic transformations.
Some evaluation categories include human review where deterministic scoring is not appropriate. These categories are reported separately from deterministic benchmark scores.
Who is it for?
NADA-Eval is intended for organisations that build, deploy or study programming AI systems. This includes:
- AI model developers.
- Research laboratories.
- Universities.
- Governments.
- Standards organisations.
- Companies building programming assistants.
- Organisations evaluating multilingual AI systems.
Public benchmark and private evaluations
The public benchmark exists so that models can be compared using a common methodology.
Private evaluations use the same methodology but can include additional languages, programming languages, frameworks, libraries, customer-specific task sets and unpublished benchmark items.
Private evaluations may also include detailed reports describing strengths, weaknesses and opportunities for improvement.
What is the goal?
The goal of NADA-Eval is to provide a repeatable and transparent way of measuring multilingual programming ability.
Rather than asking whether a model is generally "good at coding," the benchmark measures whether it can work correctly with localized programming languages, use canonical programming terminology, collaborate with deterministic localization infrastructure, and support programmers working in their own human language.
Status
In development. The scoring engine is being consolidated into the core library, and the first reference result — frontier models scored on localized-code comprehension — is in preparation. The first public season follows.
For design partnerships, early evaluation conversations, or grant-related questions: chris@nadalang.org.