[논문 리뷰] A Literature Study of Embeddings on Source Code
이 조사에서는 단어 임베딩이 소스 코드에 적용되는 다양한 세부 수준을 수집하고 분류하며, 공개 데이터 및 시각화 기법에 대해 논의합니다.
Natural language processing has improved tremendously after the success of word embedding techniques such as word2vec. Recently, the same idea has been applied on source code with encouraging results. In this survey, we aim to collect and discuss the usage of word embedding techniques on programs and source code. The articles in this survey have been collected by asking authors of related work and with an extensive search on Google Scholar. Each article is categorized into five categories: 1. embedding of tokens 2. embedding of functions or methods 3. embedding of sequences or sets of method calls 4. embedding of binary code 5. other embeddings. We also provide links to experimental data and show some remarkable visualization of code embeddings. In summary, word embedding has been successfully applied on different granularities of source code. With access to countless open-source repositories, we see a great potential of applying other data-driven natural language processing techniques on source code in the future.
연구 동기 및 목표
- 소스 코드에서 토큰, 함수/메서드, API 시퀀스, 바이너리 등 다수의 세부 수준에 걸쳐 단어 임베딩의 사용을 조사한다.
- 다섯 가지 임베딩 범주로 기존 연구를 분류하고 사용 가능한 실험 데이터를 요약한다.
- 복제와 추가 연구를 촉진하기 위한 시각화 접근법과 공개 데이터 자원을 강조한다.
제안 방법
- 관련 저자에게 연락하고 광범위한 Google Scholar 검색을 수행하여 기사들을 검토한다.
- 각 연구를 토큰, 함수/메서드, 시퀀스/API 사용, 바이너리 코드, 기타 임베딩의 다섯 가지 범주로 분류한다.
- 공개적으로 이용 가능한 실험 데이터와 코드 임베딩의 시각적 표현에 대한 링크를 제공한다.
- 코드에서의 임베딩의 잠재력과 한계를 요약하고 시각화 기법을 논의한다.
실험 결과
연구 질문
- RQ1코드 임베딩이 적용되는 일반적인 세부 수준은 무엇인가(토큰, 함수/메서드, API 시퀀스, 바이너리, 기타)?
- RQ2임베딩 기법이 하위 코드 작업(수정, 복제 탐지, 취약점 예측) 지원에 어떻게 사용되어 왔는가?
- RQ3복제 및 향후 연구를 지원하기 위한 공개 데이터와 시각화가 무엇이 있는가?
- RQ4소스 코드에서 맥락적 또는 다운스트림 작업 평가 임베딩에 대해 향후 어떤 방향이 제시되는가?
주요 결과
- 임베딩 기법은 코드의 다양한 세부 수준(토큰, 함수/메서드, API 시퀀스, 바이너리 코드)에 적용된다.
- 많은 연구에서 word2vec 또는 유사한 방법을 사용하여 토큰, 함수, API 임베딩을 학습하고, 수리, 복제 탐지 및 취약점 예측과 같은 다운스트림 작업에 활용한다.
- 여러 연구가 구조화된 표현(AST, 제어 흐름 그래프, 기호 추적 등)과 신경망을 활용해 코드 의미를 위한 임베딩을 학습한다.
- 고차원 코드 임베딩을 설명하기 위한 시각화 방법(PCA, t-SNE)이 사용된다.
- 복제 및 재사용을 가능하게 하는 코드 임베딩 연구에 공개 데이터 세트와 산출물이 다수 연결되어 있다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.