[논문 리뷰] Automatic Programming: Large Language Models and Beyond
이 논문은 대규모 언어 모델(LLM)를 사용한 자동 프로그래밍의 과제와 미래를 조사하며, 자동 프로그램 복구와 프로그램 분석이 LLM에 의해 생성된 코드의 신뢰성과 정확도를 향상시킬 수 있음을 제안한다. 2030년까지 프로그래머의 역할은 소프트웨어 개발에서 신뢰성과 자율성 확보로 이동할 것으로 보이며, 검증 및 복구 기능을 갖춘 LLM 에이전트를 통해 보다 높은 신뢰도를 가진 코드를 생성할 것을 주장한다.
Automatic programming has seen increasing popularity due to the emergence of tools like GitHub Copilot which rely on Large Language Models (LLMs). At the same time, automatically generated code faces challenges during deployment due to concerns around quality and trust. In this article, we study automated coding in a general sense and study the concerns around code quality, security and related issues of programmer responsibility. These are key issues for organizations while deciding on the usage of automatically generated code. We discuss how advances in software engineering such as program repair and analysis can enable automatic programming. We conclude with a forward looking view, focusing on the programming environment of the near future, where programmers may need to switch to different roles to fully utilize the power of automatic programming. Automated repair of automatically generated programs from LLMs, can help produce higher assurance code from LLMs, along with evidence of assurance
연구 동기 및 목표
- 실제 소프트웨어 프로젝트에서 LLM에 의해 생성된 코드의 신뢰성, 정확도, 보안 과제를 검토하기 위해.
- 자동 프로그램 복구 및 분석이 자동 생성된 코드의 신뢰성과 품질을 향상시키는 방식을 조사하기 위해.
- LLM이 코딩 과정의 대부분을 자동화하는 미래에서 소프트웨어 엔지니어의 역할 변화를 탐색하기 위해.
- 형식적 검증과 테스트를 결합한 LLM을 활용한 자율적이고 자기 향상 가능한 코드 생성의 비전을 제안하기 위해.
- 확률적 프로그램 및 기타 전통적이지 않은 코드 유형으로의 자동 복구 확장 가능성의 타당성을 검토하기 위해.
제안 방법
- 정제된 테스트 세트를 기반으로 LLM에 의해 생성된 코드를 자동으로 복구하는 기법을 제안한다.
- 자연어 기술서에서 추가적인 테스트 입력 $T'$를 생성하여 복구된 코드의 정확도를 입증하는 데 사용한다.
- 프로그램 분석 및 복구 기능을 갖춘 LLM 에이전트가 자율적으로 코드 품질을 향상시키고 검증 가능한 커밋을 생성하는 것을 시나리오화한다.
- 기존 시스템에 LLM에 의해 생성된 코드를 삽입할 경우, 잠재적 오류 전파를 제한하기 위해 샌티제이터 코드나 격리 메커니즘을 통합할 것을 제안한다.
- 최근의 코드-스펙 기반 및 증명 생성 기술을 활용해 자연어 스펙 기반으로 코드와 형식적 증명을 동시에 생성하는 방식을 제안한다.
- 기호 실행과 의미 인식 복구 기법을 활용해 확률적 프로그램으로의 자동 복구 기법을 확장해 본다.

실험 결과
연구 질문
- RQ1생산 소프트웨어 시스템에서 LLM에 의해 생성된 코드의 수용 가능성을 결정할 기준은 무엇인가?
- RQ2자동 프로그램 복구 기법이 LLM에 의해 생성된 코드의 정확도와 신뢰성 향상에 어떻게 기여할 수 있는가?
- RQ3프로그램 분석 기능을 갖춘 LLM 에이전트가 생성된 코드의 자율적 향상에 어떻게 기여할 수 있는가?
- RQ4형식적 검증과 테스트 생성을 LLM 코드 생성 파이프라인에 통합하여 더 높은 보증 수준을 확보하는 방법은 무엇인가?
- RQ5수동으로 작성된 코드와 LLM에 의해 생성된 코드를 통합할 경우, 특히 신뢰 경계와 컴ponent 호환성 측면에서 어떤 영향을 미치는가?
주요 결과
- 정제된 테스트 세트를 활용한 LLM에 의해 생성된 코드의 자동 복구는 정확도 입증의 구체적 증거가 되어 통합에 대한 신뢰도를 높일 수 있다.
- 프로그램 분석 및 복구 기능을 갖춘 LLM 에이전트는 자율적으로 코드 품질을 향상시키며, 자기 향상 가능한 소프트웨어 생성으로 나아갈 수 있다.
- 기존 시스템에 LLM에 의해 생성된 코드를 통합하기 위해서는 오류 전파를 제한하기 위해 샌티제이터나 격리 기법 같은 보안 조치가 필요하다.
- 자연어 기술서에서 형식적 검증 및 증명 생성이 높은 보증 수준의 AI에 의해 생성된 코드를 향한 실현 가능한 길로 부상하고 있다.
- 기호 실행을 활용한 확률적 프로그램 복구의 타당성은 머신러닝 워크로드에서 자동 향상의 새로운 길을 열어 놓고 있다.
- 향후 소프트웨어 엔지니어의 역할은 대규모 코딩에서 AI에 의해 생성된 자산의 신뢰성, 정확도, 자율성 확보로 이동할 것으로 예상된다.

더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.