NoFunEval: Funny How Code LMs Falter on Requirements Beyond Functional Correctness
Not on the map. Why?
Abstract (arXiv)
Existing evaluation benchmarks of language models of code (code LMs) focus almost exclusively on whether the LMs can generate functionally-correct code. In real-world software engineering, developers think beyond functional correctness. They have requirements on "how" a functionality should be implemented to meet overall system design objectives like efficiency, security, and maintainability. They would also trust the code LMs more if the LMs demonstrate robust understanding of such requirements. We propose a new benchmark NoFunEval to evaluate code LMs on non-functional requirements and simple classification instances for both functional and non-functional requirements. We propose a prompting method, Coding Concepts (CoCo), as a way for a developer to communicate the domain knowledge to the LMs. We conduct an extensive evaluation of 27 code LMs. Our finding is that LMs generally falter when tested on our benchmark, hinting at fundamental blindspots in their training setups. Surprisingly, even the classification accuracy on functional-correctness instances derived from the popular HumanEval benchmark is low, calling in question the depth of their comprehension and the source of their success in generating functionally-correct code in the first place. We release our benchmark and evaluation scripts publicly at https://aka.ms/NoFunEval.
Key facts. Cited by 26 papers in the map (data through 14 Oct 2026). Builds on 47 of its 73 references that are in the map. First posted on arXiv 29 Jan 2024.
Builds on
47 of 73 references.
References · 47
- 2022Chain-of-Thought Prompting Elicits Reasoning in Large Language Modelscited by 12,459
- 2021Evaluating Large Language Models Trained on Codecited by 8,320
- 2020Scaling Laws for Neural Language Modelscited by 6,586
- 2023Efficient Memory Management for Large Language Model Serving with PagedAttentioncited by 5,944
- 2021Finetuned Language Models Are Zero-Shot Learnerscited by 3,780
- 2021Program Synthesis with Large Language Modelscited by 3,637
- 2023SWE-bench: Can Language Models Resolve Real-World GitHub Issues?cited by 3,373
- 2023Mistral 7Bcited by 3,164
- 2022Training Compute-Optimal Large Language Modelscited by 3,019
- 2019The Curious Case of Neural Text Degenerationcited by 2,916
- 2023Code Llama: Open Foundation Models for Codecited by 2,139
- 2022Competition-Level Code Generation with AlphaCodecited by 1,462
35 more
- 2023Is Your Code Generated by ChatGPT Really Correct? Rigorous Evaluation of Large Language Models for Code Generationcited by 1,391
- 2018Hierarchical Neural Story Generationcited by 1,193
- 2024DeepSeek-Coder: When the Large Language Model Meets Programming -- The Rise of Code Intelligencecited by 1,181
- 2018Spider: A Large-Scale Human-Labeled Dataset for Complex and Cross-Domain Semantic Parsing and Text-to-SQL Taskcited by 1,139
- 2021Measuring Coding Challenge Competence With APPScited by 902
- 2023StarCoder: may the source be with you!cited by 799
- 2021CodeXGLUE: A Machine Learning Benchmark Dataset for Code Understanding and Generationcited by 744
- 2023WizardCoder: Empowering Code Large Language Models with Evol-Instructcited by 733
- 2022GPT-NeoX-20B: An Open-Source Autoregressive Language Modelcited by 713
- 2023Can LLM Already Serve as A Database Interface? A BIg Bench for Large-Scale Database Grounded Text-to-SQLscited by 688
- 2022InCoder: A Generative Model for Code Infilling and Synthesiscited by 498
- 2020CodeBLEU: a Method for Automatic Evaluation of Code Synthesiscited by 479
- 2022DS-1000: A Natural and Reliable Benchmark for Data Science Code Generationcited by 452
- 2021Asleep at the Keyboard? Assessing the Security of GitHub Copilot's Code Contributionscited by 431
- 2023RepoCoder: Repository-Level Code Completion Through Iterative Retrieval and Generationcited by 367
- 2023CodeT5+: Open Code Large Language Models for Code Understanding and Generationcited by 333
- 2019Devign: Effective Vulnerability Identification by Learning Comprehensive Program Semantics via Graph Neural Networkscited by 272
- 2022Do Users Write More Insecure Code with AI Assistants?cited by 192
- 2023Large Language Models for Code: Security Hardening and Adversarial Testingcited by 155
- 2023CodeGen2: Lessons for Training LLMs on Programming and Natural Languagescited by 125
- 2023Learning Performance-Improving Code Editscited by 106
- 2022Automating Code Review Activities by Large-Scale Pre-trainingcited by 98
- 2023The Generative AI Paradox: "What It Can Create, It May Not Understand"cited by 98
- 2018SySeVR: A Framework for Using Deep Learning to Detect Software Vulnerabilitiescited by 92
- 2021CoSQA: 20,000+ Web Queries for Code Search and Question Answeringcited by 75
- 2023Comparing Code Explanations Created by Students and Large Language Modelscited by 64
- 2023LLMSecEval: A Dataset of Natural Language Prompts for Security Evaluationscited by 62
- 2021CodeQA: A Question Answering Dataset for Source Code Comprehensioncited by 30
- 2024Astraios: Parameter-Efficient Instruction Tuning Code Large Language Modelscited by 23
- 2023Guiding Language Models of Code with Global Context using Monitorscited by 20
- 2022How Readable is Model-generated Code? Examining Readability and Visual Inspection of GitHub Copilotcited by 14
- 2022CodeQueries: A Dataset of Semantic Queries over Codecited by 11
- 2022CS1QA: A Dataset for Assisting Code-based Question Answering in an Introductory Programming Coursecited by 11
- 2022DeepPERF: A Deep Learning-Based Approach For Improving Software Performancecited by 6
- 2019Styler: learning formatting conventions to repair Checkstyle violationscited by 3
Built on by
Citing papers per year: 2024: 6; 2025: 8; 2026: 12.
26 papers.
Sort:
By area:
- 2024LiveCodeBench: Holistic and Contamination Free Evaluation of Large Language Models for Codecited by 2,004
- 2025Can LLMs Replace Human Evaluators? An Empirical Study of LLM-as-a-Judge in Software Engineeringcited by 67
- 2024CodeUltraFeedback: An LLM-as-a-Judge Dataset for Aligning Large Language Models to Coding Preferencescited by 57
- 2024Automatic Programming: Large Language Models and Beyondcited by 36
- 2024ECCO: Can We Improve Model-Generated Code Efficiency Without Sacrificing Functional Correctness?cited by 27
- 2025GSO: Challenging Software Optimization Tasks for Evaluating SWE-Agentscited by 25
- 2024PerfCodeGen: Improving Performance of LLM Generated Code with Execution Feedbackcited by 24
- 2024The Counterfeit Conundrum: Can Code Language Models Grasp the Nuances of Their Incorrect Generations?cited by 20
- 2026OctoBench: Benchmarking Scaffold-Aware Instruction Following in Repository-Grounded Agentic Codingcited by 15
- 2025RobuNFR: Evaluating the Robustness of Large Language Models on Non-Functional Requirements Aware Code Generationcited by 5
- 2025EditLord: Learning Code Transformation Rules for Code Editingcited by 4
- 2025Robust Learning of Diverse Code Editscited by 2
14 more
- 2025AlgoSimBench: Identifying Algorithmically Similar Problems for Competitive Programmingcited by 2
- 2025Generating High-Quality Datasets for Code Editing via Open-Source Language Modelscited by 2
- 2025SWE-IF: Aligning Code Evaluation with Human Preferencecited by 2
- 2026Precise Debugging Benchmark: Is Your Model Debugging or Regenerating?cited by 2
- 2026To Diff or Not to Diff? Structure-Aware and Adaptive Output Formats for Efficient LLM-based Code Editingcited by 2
- 2026Beyond Task Completion: A Verification-vs.-Conformance Gap in Tool-Evolving Agentscited by 1
- 2026Themis: Training Robust Multilingual Code Reward Models for Flexible Multi-Criteria Scoringcited by 1
- 2026Reward-Free Code Alignment from Pretrained or Fine-Tuned LLM: Unpacking the Trade-offs for Code Generationcited by 0
- 2026Diff-Based Code Corruption using LLMs for Large-Scale Bugfix Benchmarkingcited by 0
- 2026Rethinking Code Performance Benchmarks for LLMscited by 0
- 2026SynH-Rank: Quality-Aware Code Search via Diverse Data Synthesis and Hierarchical Ranking Trainingcited by 0
- 2026Not All Correct Fixes Run Alike: An Empirical Study of Patch Performance in Repository-Level Issue Resolutioncited by 0
- 2026PreciseCoder: Faithful and Generalizable Debugging Beyond Unit-Test Rewardscited by 0
- 2026LintEval: Benchmarking LLMs on Linter-Guided File Refactoringcited by 0
- 2026LintEval: Benchmarking LLMs on Linter-Guided File Refactoring14 Oct 2026
- 2026PreciseCoder: Faithful and Generalizable Debugging Beyond Unit-Test Rewards13 Oct 2026
- 2026Not All Correct Fixes Run Alike: An Empirical Study of Patch Performance in Repository-Level Issue Resolution9 Oct 2026
- 2026SynH-Rank: Quality-Aware Code Search via Diverse Data Synthesis and Hierarchical Ranking Training19 Jul 2026
- 2026Rethinking Code Performance Benchmarks for LLMs8 Jul 2026
- 2026Diff-Based Code Corruption using LLMs for Large-Scale Bugfix Benchmarking27 Jun 2026
- 2026Reward-Free Code Alignment from Pretrained or Fine-Tuned LLM: Unpacking the Trade-offs for Code Generation27 Jun 2026
- 2026Themis: Training Robust Multilingual Code Reward Models for Flexible Multi-Criteria Scoring1 May 2026
- 2026To Diff or Not to Diff? Structure-Aware and Adaptive Output Formats for Efficient LLM-based Code Editing30 Apr 2026
- 2026Precise Debugging Benchmark: Is Your Model Debugging or Regenerating?19 Apr 2026
- 2026Beyond Task Completion: A Verification-vs.-Conformance Gap in Tool-Evolving Agents1 Apr 2026
- 2026OctoBench: Benchmarking Scaffold-Aware Instruction Following in Repository-Grounded Agentic Coding15 Jan 2026
14 more
- 2025SWE-IF: Aligning Code Evaluation with Human Preference8 Oct 2025
- 2025Generating High-Quality Datasets for Code Editing via Open-Source Language Models19 Sep 2025
- 2025AlgoSimBench: Identifying Algorithmically Similar Problems for Competitive Programming21 Jul 2025
- 2025GSO: Challenging Software Optimization Tasks for Evaluating SWE-Agents29 May 2025
- 2025RobuNFR: Evaluating the Robustness of Large Language Models on Non-Functional Requirements Aware Code Generation28 Mar 2025
- 2025EditLord: Learning Code Transformation Rules for Code Editing10 Mar 2025
- 2025Robust Learning of Diverse Code Edits5 Mar 2025
- 2025Can LLMs Replace Human Evaluators? An Empirical Study of LLM-as-a-Judge in Software Engineering10 Feb 2025
- 2024PerfCodeGen: Improving Performance of LLM Generated Code with Execution Feedback18 Nov 2024
- 2024ECCO: Can We Improve Model-Generated Code Efficiency Without Sacrificing Functional Correctness?19 Jul 2024
- 2024Automatic Programming: Large Language Models and Beyond3 May 2024
- 2024CodeUltraFeedback: An LLM-as-a-Judge Dataset for Aligning Large Language Models to Coding Preferences14 Mar 2024
- 2024LiveCodeBench: Holistic and Contamination Free Evaluation of Large Language Models for Code12 Mar 2024
- 2024The Counterfeit Conundrum: Can Code Language Models Grasp the Nuances of Their Incorrect Generations?29 Feb 2024
- 2024LiveCodeBench: Holistic and Contamination Free Evaluation of Large Language Models for Codecited by 2,004
- 2025AlgoSimBench: Identifying Algorithmically Similar Problems for Competitive Programmingcited by 2
- 2026Themis: Training Robust Multilingual Code Reward Models for Flexible Multi-Criteria Scoringcited by 1
- 2026Rethinking Code Performance Benchmarks for LLMscited by 0
- 2026Rethinking Code Performance Benchmarks for LLMs8 Jul 2026
- 2026Themis: Training Robust Multilingual Code Reward Models for Flexible Multi-Criteria Scoring1 May 2026
- 2025AlgoSimBench: Identifying Algorithmically Similar Problems for Competitive Programming21 Jul 2025
- 2024LiveCodeBench: Holistic and Contamination Free Evaluation of Large Language Models for Code12 Mar 2024
- 2024CodeUltraFeedback: An LLM-as-a-Judge Dataset for Aligning Large Language Models to Coding Preferencescited by 57
- 2025SWE-IF: Aligning Code Evaluation with Human Preferencecited by 2
- 2026Reward-Free Code Alignment from Pretrained or Fine-Tuned LLM: Unpacking the Trade-offs for Code Generationcited by 0
- 2026Reward-Free Code Alignment from Pretrained or Fine-Tuned LLM: Unpacking the Trade-offs for Code Generation27 Jun 2026
- 2025SWE-IF: Aligning Code Evaluation with Human Preference8 Oct 2025
- 2024CodeUltraFeedback: An LLM-as-a-Judge Dataset for Aligning Large Language Models to Coding Preferences14 Mar 2024
- 2025Can LLMs Replace Human Evaluators? An Empirical Study of LLM-as-a-Judge in Software Engineeringcited by 67
- 2024Automatic Programming: Large Language Models and Beyondcited by 36
- 2024ECCO: Can We Improve Model-Generated Code Efficiency Without Sacrificing Functional Correctness?cited by 27
- 2024PerfCodeGen: Improving Performance of LLM Generated Code with Execution Feedbackcited by 24
- 2024The Counterfeit Conundrum: Can Code Language Models Grasp the Nuances of Their Incorrect Generations?cited by 20
- 2025RobuNFR: Evaluating the Robustness of Large Language Models on Non-Functional Requirements Aware Code Generationcited by 5
- 2025EditLord: Learning Code Transformation Rules for Code Editingcited by 4
- 2025Robust Learning of Diverse Code Editscited by 2
- 2025Generating High-Quality Datasets for Code Editing via Open-Source Language Modelscited by 2
- 2026Precise Debugging Benchmark: Is Your Model Debugging or Regenerating?cited by 2
- 2026To Diff or Not to Diff? Structure-Aware and Adaptive Output Formats for Efficient LLM-based Code Editingcited by 2
- 2026Beyond Task Completion: A Verification-vs.-Conformance Gap in Tool-Evolving Agentscited by 1
12 most cited of 15 All 15 (JSON)
- 2026LintEval: Benchmarking LLMs on Linter-Guided File Refactoring14 Oct 2026
- 2026Not All Correct Fixes Run Alike: An Empirical Study of Patch Performance in Repository-Level Issue Resolution9 Oct 2026
- 2026Diff-Based Code Corruption using LLMs for Large-Scale Bugfix Benchmarking27 Jun 2026
- 2026To Diff or Not to Diff? Structure-Aware and Adaptive Output Formats for Efficient LLM-based Code Editing30 Apr 2026
- 2026Precise Debugging Benchmark: Is Your Model Debugging or Regenerating?19 Apr 2026
- 2026Beyond Task Completion: A Verification-vs.-Conformance Gap in Tool-Evolving Agents1 Apr 2026
- 2025Generating High-Quality Datasets for Code Editing via Open-Source Language Models19 Sep 2025
- 2025RobuNFR: Evaluating the Robustness of Large Language Models on Non-Functional Requirements Aware Code Generation28 Mar 2025
- 2025EditLord: Learning Code Transformation Rules for Code Editing10 Mar 2025
- 2025Robust Learning of Diverse Code Edits5 Mar 2025
- 2025Can LLMs Replace Human Evaluators? An Empirical Study of LLM-as-a-Judge in Software Engineering10 Feb 2025
- 2024PerfCodeGen: Improving Performance of LLM Generated Code with Execution Feedback18 Nov 2024
12 newest of 15 All 15 (JSON)