What can Large Language Models Capture about Code Functional Equivalence?

Nickil Maveli, Antonio Vergari, Shay B. Cohen
8/20/2024
cs.SEcs.AIcs.CL

No confident code implementation found for this paper. 8 possible matches can be shown below.

Abstract

Code-LLMs, LLMs pre-trained on large code corpora, have shown great progress in learning rich representations of the structure and syntax of code, successfully using it to generate or classify code fragments. At the same time, understanding if they are able to do so because they capture code semantics, and how well, is still an open question. In this paper, we tackle this problem by introducing SeqCoBench, a benchmark for systematically assessing how Code-LLMs can capture code functional equivalence. SeqCoBench contains over 20 code transformations that either preserve or alter the semantics of Python programs. We conduct extensive evaluations in different settings, including zero-shot and parameter-efficient finetuning methods on state-of-the-art (Code)-LLMs to see if they can discern semantically equivalent or different pairs of programs in SeqCoBench. We find that the performance gap between these LLMs and classical match-based retrieval scores is minimal, with both approaches showing a concerning lack of depth in understanding code semantics.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. 8 weaker matches are hidden by default — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Cite this paper

@article{maveli2024what,
  title  = {What can Large Language Models Capture about Code Functional Equivalence?},
  author = {Nickil Maveli and Antonio Vergari and Shay B. Cohen},
  year   = {2024},
  eprint = {2408.11081},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2408.11081v2}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2408.11081.svg)](https://codeofpaper.com/paper/2408.11081)

Discussion