가끔 "같은 프로그램을 Python 3 으로 제출하면 시간 초과를 받는데, Pypy3 으로 제출하면 맞았습니다를 받습니다. 왜 그런가요?" 같은 질문을 보게 됩니다.이 글에서는 이런 종류의 질문에 대한 답변을 해 보려고 합니다.
Python 3 은 언어 명세입니다. 프로그램의 문법을 정의하고, 각각의 문장이 가진 의미 (= 문장을 실행하면 달라지는 변화)를 정합니다.이렇게 Python 3 언어 명세를 정한 사람들은 그 언어 명세를 따르는 구현체 또한 제작하여 언어 명세와 같이 공개/배포합니다.
그 뒤, 몇몇 사람들은 배포된 Python 3 의 언어 명세를 이용하여 별도의 구현체를 만들기도 합니다.Pypy3 이나 IronPython, Jython 등이 여기에 해당합니다.