C 언어에서 꼬리 호출 최적화는 비교적 최근에야 가능해졌다
Tail-call optimization in C is relatively recent
LWN.net 기사에 따르면, C 언어의 꼬리 호출 최적화는 오랫동안 지원되지 않았습니다. 1994년에는 대부분의 C 컴파일러가 이를 수행하지 않았고, 2001년에 Mark Probst가 GCC에 별도의 호출 규약으로 구현했지만 간접 호출은 처리하지 못했습니다. 최근 'Copy-and-Patch Compilation' 논문을 읽은 저자는 GCC와 Clang이 이제 꼬리 호출 최적화를 지원함을 확인했습니다. 이는 Gforth와 같은 인터프리터 구현에 큰 영향을 줄 수 있으며, Python 커뮤니티가 먼저 이를 활용한 것을 축하한다고 전합니다.
GCC의 `goto *`는 충분히 좋았고(대부분), 그 이후로 GCC의 꼬리 호출 지원에 변화가 생겼을 것이라고 생각할 이유가 별로 없었습니다.