매우 요약된 프로그래밍 언어

게시일 2025. 5. 31.
1분 읽기

과거에는 제한된 하드웨어 성능과 컴파일러의 제한된 기능으로 인해 프로그래머들이 하드웨어 제약을 염두에 두고 소프트웨어를 개발해야 했다. 하드웨어가 발전하고 컴파일러에 수많은 기능이 추가되면서, 대부분의 프로그래머는 더 이상 하드웨어를 고려할 필요가 없게 되었다. 대표적인 예시로 자동 메모리 관리 시스템 (Garbage Collection)이 있다. 이 덕분에 소프트웨어 개발 생산성이 극적으로 증가했다.

프로그래밍에서 요약 (Abstraction)은 구체적인 구현 세부 사항을 명시할 필요가 없다는 것을 의미한다. 이제 프로그래머들은 어떤 정렬 알고리즘을 사용할지, 메모리를 어떻게 관리할지, 네트워크 통신을 어떻게 처리할지 등의 세부 사항을 명시적으로 정의할 필요가 없는 경우가 많다.

언어 모델은 프로그래머가 의미적으로 매우 요약된 수준에서 선언적으로 프로그래밍할 수 있게 해줄 것이다. 기존 프로그래밍 언어의 컴파일러는 미리 정해진 규칙에 따라 선언적 요소를 절차적 기계 코드로 번역했다. 규칙 기반의 컴파일에서는 요약 수준을 끌어올릴수록 기하급수적으로 많은 경우의 수를 고려해야 하므로 어려움이 있었다. 하지만 언어 모델은 사용자의 의도를 이해하고 미리 정해진 규칙이 없는 상황에서도 이를 절차적 알고리즘으로 변환할 수 있다.

핵심은 변환된 알고리즘의 정확성이 보장되어야 한다는 것이다. 컴파일러의 경우 수많은 테스트나 검증 기법을 통해 정확성이 보장된다. 하지만 언어 모델의 블랙박스 특성으로 인해 런타임에서 변환된 알고리즘이 사용자의 의도와 일치하는지 동적으로 확인하는 것이 필요하다. 이러한 검증은 기존 프로그래밍 언어 분야의 검증 기술을 적용하여 확인할 수 있을 것이다.