프린세스 다이어리

반복문에서 변수명으로 i, j, k, ... n을 사용하는 이유 본문

개발

반복문에서 변수명으로 i, j, k, ... n을 사용하는 이유

개발공주 2021. 9. 23. 12:00
728x90

C언어 문법을 익히다가 갑자기 궁금해져서 찾아보았다. 

 

 

프로그래밍 언어가 등장하기 전, 고등 수학에서 사용하던 변수들이 i, j, k였다. 그래서 FORTRAN의 설계자들은 비슷한 방식을 차용하여 언어를 디자인했다. 

 

 

포트란 개발자가 말하길, 1960년 포트란 개발 당시 문법상 변수의 타입을 지정할 수가 없었다고 한다. 포트란의 뭔가 다른 버전을 개발하셨는지는 모르겠지만, 위의 원로 개발자분의 이야기와는 조금 다르게, 포트란에서는 일반적으로 타입 선언 없이 i~n은 기본적으로 정수형이었고, 이 외의 문자를 사용하면 기본값으로 실수형을 의미하게 되었다. 정수형을 의미하는 integer라는 단어의 첫 글자와 두 번째 글자가 각각 i, n이기 때문이라고 한다.

 

여기에서 왜 i, j가 수학에서 먼저 사용되기 시작한 건지 다시 의문이 들기 시작했다. 

 

 

역사적으로 대수학의 서브스크립트(subscript), 급수(series), 합계(summation) 등에서 정수를 i, j, k로 지정해서 사용해 왔다. 일반적으로 알 수 없는 변수의 경우 x, y, z를, 상수를 a, b, c로 많이 지정해 왔는데, i, j, k는 알파벳의 중간 어디쯤에 있는 무언가로 적당해서 쓰기 시작한 것이 아닌가 하는 추측이 있다. 지금의 컨벤션은 그때도 컨벤션이었기 때문에 사용되었을 거라고 하니, 아마 그때의 수학자들도 역사적으로 그렇게 써 왔으니까 계속 그런 방식으로 연구해 온 것이 아닐까 싶다. 

 

포트란 개발자분이 이야기한 단어 'Integer'에 대한 내용과 수학의 전통은 어떻게 보면 거리가 있는 내용 같은데, 어찌 됐든 아이디어를 잘 가져와 의미를 잘 끼워 맞추게 된 것 같다.

728x90
Comments