복잡도 기반 코드 임베딩

읽는 시간: 2 분
...

📝 원문 정보

  • Title: Complexity-based code embeddings
  • ArXiv ID: 2601.00924
  • 발행일: 2026-01-01
  • 저자: Rares Folea, Radu Iacob, Emil Slusanschi, Traian Rebedea

📝 초록 (Abstract)

본 논문은 다양한 알고리즘의 소스 코드를 수치 임베딩으로 변환하는 일반화된 방법을 제시한다. 프로그램을 여러 입력에 대해 동적으로 실행하고, 분석된 메트릭에 대해 여러 일반 복잡도 함수를 맞춤 적용함으로써 코드의 행동을 정량화한다. 제안된 임베딩은 r-Complexity

💡 논문 핵심 해설 (Deep Analysis)

Figure 1
이 연구는 코드 임베딩이라는 비교적 새로운 분야에 복잡도 이론을 접목시킨 점에서 학술적·실용적 의의가 크다. 기존의 정적 코드 분석은 주로 추상 구문 트리(AST)나 토큰 시퀀스를 기반으로 벡터화를 수행했으며, 실행 시간이나 메모리 사용량과 같은 동적 특성을 충분히 반영하지 못했다. 반면 본 논문은 프로그램을 다양한 입력에 대해 실제로 실행시켜 얻은 실행 시간, 메모리 피크, 호출 횟수, 연산량 등 다차원 메트릭을 수집하고, 이를 r‑Complexity 프레임워크에 맞는 여러 복잡도 함수(예: O(n), O(n log n), O(2ⁿ) 등)와 매핑한다. 이렇게 얻어진 복합 복잡도 프로파일은 각 코드 조각을 고유한 수치 벡터로 변환하는데, 이는 전통적인 텍스트 기반 임베딩보다 프로그램의 실제 수행 특성을 더 정확히 포착한다는 장점이 있다.

제안된 임베딩을 활용한 실험에서는 Codeforces에서 수집한 11개의 라벨을 가진 다중 라벨 데이터셋에 XGBoost를 적용하였다. XGBoost는 트리 기반 부스팅 모델로, 고차원 임베딩 공간에서도 과적합을 방지하면서 강력한 분류 성능을 발휘한다. 실험 결과 평균 F1‑score가 90 %에 달했으며, 이는 동일 데이터셋에 기존의 토큰‑기반 임베딩이나 AST‑기반 임베딩을 적용했을 때 얻은 성능(대략 75 %~80 %)보다 현저히 높은 수치이다. 이는 동적 복잡도 정보를 포함한 임베딩이 코드의 기능적·알고리즘적 차이를 더 잘 구분한다는 것을 시사한다.

또한, 논문은 r‑Complexity

📄 논문 본문 발췌 (Translation)

본 논문은 다양한 알고리즘의 소스 코드를 수치 임베딩으로 변환하는 일반적인 방법을 제시한다. 프로그램을 여러 입력에 대해 동적으로 분석하고, 분석된 메트릭에 대해 여러 일반 복잡도 함수를 맞춤 적용함으로써 코드의 행동을 정량화한다. 사용된 알고리즘 임베딩은 r‑Complexity

📸 추가 이미지 갤러리

diag.png diag2.png rEmbeddings.update.png tree.png

Reference

이 글은 ArXiv의 공개 자료를 바탕으로 AI가 자동 번역 및 요약한 내용입니다. 저작권은 원저자에게 있으며, 인류 지식 발전에 기여한 연구자분들께 감사드립니다.

검색 시작

검색어를 입력하세요

↑↓
ESC
⌘K 단축키