더북(TheBook)

메시지를 출력하지 않는 무한 루프

while True: 
    x = random.random() 
    y = random.random() 
    if x*x + y*y >= 2.0: 
        break 
 
 % python3 infiniteloop2.py
 ...

루프가 무한 루프인지, 아니면 아주 많이 반복되는 것인지 모를 수도 있다(중요하지 않을 수도 있다). gambler.py를 실행할 때 python3 gambler.py 100000 200000 100처럼 인수를 주면 약간 오래 기다려야 할 수도 있다. 4.1절에서는 프로그램의 실행 시간을 추정하고 알아내는 방법을 설명한다.

파이썬이 무한 루프를 찾아내 경고할 수 있게 해주는 것은 어떨까? 일반적으로 컴파일러나 인터프리터가 무한루프를 찾아낼 수 없다는 사실이 놀라울지도 모르겠다. 간단해 보이는 이 문제는 컴퓨터 과학 이론이 해결해야 할 숙제이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.