연구실에서 좋은 기회로 해외 학회에 가게 되었다.
내가 가게 된 학회의 이름은 PLDI(Programming Language Design and Implementation)로, 프로그래밍 언어 분야에서 가장 중요한 학회 중 하나이다. 이번 2024년 리스트에 올라와 있는 논문을 간단히 살펴보고, 어떤 하위 분야가 있는지 간략하게 정리해보았다. 아래 하위 분야들은 서로 독립적이지 않으며, 한 논문에서 여러 내용을 포함하고 있을 수 있다.
Probabilistic Programming (확률적 프로그래밍)
확률 모델을 일반 프로그래밍 언어로 표현하기는 어렵다. 이러한 모델을 잘 표현하고 처리할 수 있기 위해서는 기존 프로그래밍 언어에 확률 분포로 부터의 샘플링 또는 데이터에 관측 결과에 따라 조건을 적용할 수 있는 기능이 필요하다. 확률적 모델을 잘 표현할 수 있는 Probabilistic Programming Language (PPLs)을 만들고, 해당 모델에 대한 추론 및 분석을 자동으로 수행하는 알고리즘을 만들고자 하는 프로그래밍 패러다임을 확률적 프로그래밍이라 한다.
확률적 프로그래밍은 기계학습, 보안, 로보틱스 등의 분야에 사용되며, 대표적인 PPL로 Church, Pyro, Edward 등이 존재한다. 프로그래밍 언어 학회에서는 확률적 프로그래밍 언어 또는 시스템의 디자인 및 구현, 확률적 프로그래밍에 대한 정형 분석등을 다룬다.
Quantum Computing (양자 컴퓨팅)
전통적인 컴퓨터 계산 능력의 한계를 극복하기 위하여 Quantum computing 또한 활발히 연구되고 있다. 양자 프로그램의 컴파일 및 최적화에 대해 다루거나, 양자 회로를 정형적으로 기술(formal specification)하는 논문이 존재하였다.
Code Translation
Code Translation은 한 언어로 작성된 코드를 다른 언어로 변환하는 것이다. 한 프로그래밍 언어에서 다른 프로그래밍 언어로 코드를 변환할 수 있으며, 이 과정에서 코드에 대한 정적 분석(static analysis) 등을 사용하기도 한다. 컴파일은 상급 언어(high-level language)를 하위 언어(low-level language) 등으로 변환하는 과정이기 때문에 이 분류에 포함할 수 있다. 특정 분야에서 사용되는 컴파일러를 개선하거나, 컴파일러의 성능과 효율성을 향상시키고자 하는 내용들이 존재한다.
Formal Verification (정형 검증)
정형 명세(formal specification), 정형 기법(formal methods) 등을 사용하여 시스템(또는 프로그램, 컴파일러 등)의 올바름을 증명하고자 하는 분야이다. 이 과정에서 Coq 등의 증명 보조기(proof assistant)를 사용한다.
Type System/Effect System (타입 시스템)
프로그래밍 언어의 타입 시스템에 관한 분야이다. 이펙트 시스템은 프로그램의 side-effect를 묘사하기 위한 것으로, effect라는 컴포넌트로 타입의 개념을 확장한다. (* effect를 함수형 프로그래밍에서 많이 나오는 단어인 pure의 반대 개념으로 이해하였다.)
기존 언어의 타입 시스템을 개선하거나, 원하는 의도에 맞는 DSL을 설계하여 적절한 타입 시스템을 적용하는 논문들이 존재한다.
Program Testing/Debugging (프로그램 테스팅 및 디버깅)
프로그램을 자동으로 테스팅하고 디버깅하는 것과 관련된 분야이다.
Program Synthesis (프로그램 합성)
프로그램 합성에서는 주어진 명세나 사양에 맞는 프로그램을 자동으로 생성하고자 한다. 프로그램 탐색 공간을 더욱 효율적으로 탐색하기 위해 통계 모델을 사용하거나 적절한 자료구조를 사용하는 등의 최적화 방법들이 제안된다.
Program Analysis (프로그램 분석)
자동으로 프로그램의 동작을 검사하여 코드가 특정 성질을 만족하는지를 분석하는 것. 분석의 시점에 따라서 정적 분석(Static Analysis)과 동적 분석(Dynamic Analysis)으로 나뉜다. 분석 자체의 정확성과 속도를 개선하기 위한 방법론을 제시하거나, 특정 도메인에 분석 방법을 적용한다. 이번 학회의 논문 중에서는 정적 분석과 데이터 기반 분석(Data-driven analysis) 방식을 통합한 hybrid 접근 방식을 제안한 논문도 존재하였다.