1. 문제 (Problem)
대규모 언어 모델(LLM)의 코드 생성 능력이 급격히 향상되면서, AI는 기존 프로그래밍 언어로 작성된 코드를 이해하고, 생성하고, 변환하는 데 있어 인간에 근접하거나 이를 초월하는 성능을 보이고 있다. 이로 인해 다음과 같은 근본적 문제가 대두된다.
AI 코드 능력의 위협
- 자율 무기 및 악성 코드: 악의적 행위자가 AI를 이용하여 malware, exploit, 자율 공격 시스템을 대량으로 생성할 수 있다.
- Human-in-the-loop 보장: Safety-critical 시스템에서 “이 코드가 인간에 의해 작성·검증되었는가”를 확인할 기술적 수단이 없다.
- 인간 프로그래머의 역할: 인간만이 수행할 수 있는 프로그래밍 활동의 영역을 기술적으로 정의하고 보존하는 것이 중요하다.
- AI 능력 통제: 프로그래밍 능력은 AI의 가장 강력한 능력 중 하나이며, 이를 선택적으로 제한할 수 있다면 AI safety의 중요한 도구가 된다.
현재의 기술적 공백
현재 AI의 코드 능력을 제한하는 접근법은 대부분 사후적(post-hoc)이다:
- 코드 필터링: 완벽한 필터링은 undecidable하며, 우회가 가능
- 모델 제한: jailbreak에 취약
- 실행 환경 제한: 코드 작성 자체는 제한하지 못함
사전적(proactive)이고 언어 수준(language-level)에서의 접근 — 즉 AI가 원천적으로 사용할 수 없는 프로그래밍 언어를 설계하는 것 — 은 아직 연구되지 않았다.
핵심 연구 질문
인간은 사용할 수 있지만 AI(특히 LLM)는 사용할 수 없는 프로그래밍 언어가 존재하는가? 존재한다면, 그러한 언어를 체계적으로 생성하는 함수를 구축할 수 있는가?
이 질문은 다음과 같은 인지적·계산적 비대칭에 기반한다:
- 인간의 강점: 시각·공간적 추론, 물리적 세계에 대한 직관, 유추에 의한 학습, 소수 예제로부터의 일반화, 사회적·문화적 맥락 이해, 감각 운동 통합
- LLM의 약점: 진정한 시각적 이해 부재, 새로운 형식 체계에 대한 few-shot 학습의 한계, 학습 분포 밖의 구문·의미론에 대한 취약성, 장거리 구조적 의존성의 불완전한 추적
2. 목표 (Goal)
인간은 사용할 수 있지만 현재의 AI(LLM)는 사용할 수 없는 프로그래밍 언어를 체계적으로 생성하는 함수 G를 개발한다.
G : AIcapability × HumanCognition × SecurityParam → PL
- 입력 1 — AI capability profile: 대상 AI 시스템의 현재 능력 모델
- 입력 2 — Human cognition model: 인간 프로그래머가 활용할 수 있는 인지 능력
- 입력 3 — Security parameter: AI-resistance의 강도
- 출력 — Programming Language: 문법, 의미론, 타입 시스템, 도구가 완전히 정의된 언어
구체적 목표:
- AI-resistance: AI가 이해·생성·실행 추적할 수 없음 (random baseline 수준)
- Human-usability: 합리적 학습 시간 내에 프로그래밍 가능
- Turing completeness
- 실용성: 합리적 생산성으로 실제 프로그래밍 작업 수행 가능
- 적응성(Adaptiveness): AI 능력 향상 시 더 강한 AI-resistance를 가진 새 언어 생성 가능
- 이론적 기반: AI-resistance의 형식적 정의와 보장에 대한 이론적 분석