최초의 트랜스컴파일러 XLT86은 8080 어셈블리를 8086 어셈블리로 변환했다. 언뜻 간단해 보이지만 8080은 8비트 칩이고 8086은 각 레지스터를 8비트 레지스터 쌍으로 사용할 수 있는 16비트 칩이다. XLT86은 소스 프로그램의 레지스터 사용 패턴을 추적하기 위해 데이터 흐름을 분석했고 이 결과를 토대로 8086의 레지스터 집합에 효율적으로 매핑했다.
이것이 CS계 비운의 영웅, 게리 킬달(Gary Kildall)의 작품이다. 그는 마이크로컴퓨터의 가능성을 가장 먼저 꿰뚫어 본 사람으로, 최초의 마이크로프로세서에 특화된 하이레벨 언어이자 OS인 PL/M과 CP/M을 만들었다.
또 그는 해군 대위, 사업자, 비행조종사, 오토바이 경주자였다. 1980년대 크리스 크리스토퍼슨13처럼 늠름하게 턱수염을 기른 TV 방송 프로그램 진행자이기도 했다. 빌 게이츠의 맞수였던 그는 어느 동네 바이커 바(biker bar)에서 한창 나이에 미스테리한 죽음을 맞이했다. 너무 이른 나이에 세상을 떠났지만 정말 치열하게 열심히 살다 간 사람이다.
웹 브라우저는 오늘날의 ‘머신(machine)’이고 그 ‘기계어(machine code)’는 자바스크립트(JS)라서, 거의 모든 언어가 브라우저에서 코드 실행이 가능한 JS를 타깃으로 하는 추세다.14
JS는 브라우저에서 코드를 실행할 수 있는 유일한 수단이었다. 웹어셈블리(WebAssembly)15 덕분에 이제 컴파일러는 웹에서 돌아가는 두 번째 로우레벨 언어가 생기게 되었다.