Skip to main content
QUICK REVIEW

[논문 리뷰] Deep Learning for Source Code Modeling and Generation: Models, Applications and Challenges

Triet Huynh Minh Le, Hao Chen|arXiv (Cornell University)|2020. 02. 13.
Software Engineering Research참고 문헌 280인용 수 36
한 줄 요약

깊은 학습 접근법을 소스 코드 모델링 및 생성에 대한 포괄적 조사로, 엔코더–디코더 아키텍처 내에서 프로그램 학습 작업을 구성하고 데이터셋, 실천, 도전과제 및 향후 방향을 개요한다.

ABSTRACT

Deep Learning (DL) techniques for Natural Language Processing have been evolving remarkably fast. Recently, the DL advances in language modeling, machine translation and paragraph understanding are so prominent that the potential of DL in Software Engineering cannot be overlooked, especially in the field of program learning. To facilitate further research and applications of DL in this field, we provide a comprehensive review to categorize and investigate existing DL methods for source code modeling and generation. To address the limitations of the traditional source code models, we formulate common program learning tasks under an encoder-decoder framework. After that, we introduce recent DL mechanisms suitable to solve such problems. Then, we present the state-of-the-art practices and discuss their challenges with some recommendations for practitioners and researchers as well.

연구 동기 및 목표

  • 전통 코드 모델의 한계를 강조하여 Big Code에 대한 딥러닝 사용 동기를 부여한다.
  • 소스 코드 모델링 작업을 체계적으로 엔코더–디코더 프레임워크에 매핑한다.
  • 코드 모델링 및 생성을 위한 최첨단 DL 모델과 메커니즘을 검토한다.
  • 실무자와 연구자를 위한 데이터셋, 과제 및 권고사항을 식별한다.

제안 방법

  • 유연성과 확장성을 다루기 위해 일반적인 프로그램 학습 작업을 엔코더–디코더 프레임워크로 형식화한다.
  • 전통적 접근법(DSLs, 확률 문법, n-그램, 간단한 신경 모델)과 그 한계를 검토한다.
  • 코드 작업을 위한 딥 시퀀스 모델링 모델(RNNs, CNNs, Transformer)과 주의(attention), 외부 기억, 빔 서치 등의 기법을 설명한다.
  • 입력 임베딩 및 큰 코드 어휘를 다루는 방법, 서브워드 및 문자 수준 표현 포함.
  • 시퀀스 모델에 특화된 안정적 학습 기법(SGD 변형, 드롭아웃 변형, 정규화, 규제)을 개요한다.
  • Big Code 작업에 대한 DL 기반 실천의 체계적 검토를 제공하고 데이터셋에 대해 논의한다.

실험 결과

연구 질문

  • RQ1소스 코드 모델링 및 생성에 적용 가능한 주요 DL 기반 방법은 무엇인가?
  • RQ2엔코더–디코더 프레임워크를 다양한 Big Code 작업에 어떻게 적용할 수 있는가?
  • RQ3DL 기반 소스 코드 모델링 및 생성을 지원하는 데이터셋은 무엇인가?
  • RQ4현재의 도전과제와 향후 딥 소스 코드 모델의 방향은 무엇인가?
  • RQ5DL 접근법은 구문, 의미론, 장기 의존성 포착 측면에서 전통적 모델과 비교하여 어떤 차이가 있는가?

주요 결과

  • DL 접근법은 자동으로 특징을 학습하고 코드의 장기 의존성을 포착함으로써 전통적 모델보다 우수하다.
  • 주 의/메모리 메커니즘이 있는 인코더–디코더 프레임워크는 코드 시퀀스에 대한 효과적인 맥락 처리를 제공한다.
  • Transformer 기반 및 비순환 아키텍처는 코드 관련 작업에서 강력한 성능과 더 빠른 학습을 제공한다.
  • 문자 및 서브워드 수준 임베딩은 큰 코드 어휘를 관리하고 더 나은 코드 자동완성을 가능하게 한다.
  • 다양한 데이터셋과 실무 권고가 존재하며, 확장성, 일반화, 데이터셋 품질과 같은 도전과제가 확인된다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.