이것은 해석되고 컴파일 된 언어에 대해 읽는 동안 궁금했습니다.
루비 는 소스 코드가 실행 시점에 인터프리터에 의해 처리되므로 인터프리터 언어는 의심의 여지가 없습니다.
반대로 C 는 컴파일 된 언어입니다. 먼저 머신에 따라 소스 코드를 컴파일 한 다음 실행해야합니다. 이 결과는 훨씬 더 빠른 실행입니다.
이제 파이썬 으로 왔습니다 .
- 가져올 때 파이썬 코드 ( somefile.py ) 는 동일한 디렉토리에 파일 ( somefile.pyc )을 만듭니다 . 파이썬 쉘 또는 장고 모듈에서 가져 오기가 완료되었다고 가정 해 봅시다. 가져온 후 코드를 약간 변경하고 가져온 함수를 다시 실행하여 여전히 이전 코드를 실행하고 있음을 확인하십시오. 이것은 * .pyc 파일이 C 파일을 컴파일 한 후 생성 된 실행 파일과 유사한 파이썬 파일로 컴파일되었지만 * .pyc 파일을 직접 실행할 수는 없음을 나타냅니다.
- python 파일 (somefile.py)이 직접 실행되면 (./somefile.py 또는 python somefile.py) .pyc 파일이 생성되지 않으며 해석 된 동작을 나타내는대로 코드가 실행됩니다.
이것은 파이썬 코드가 새로운 프로세스에서 임포트 될 때마다 컴파일되어 .pyc가 직접 실행될 때 해석되는 동안 .pyc를 생성 할 것을 제안합니다.
어떤 언어로 생각해야합니까? 해석되거나 컴파일 되었습니까? 그리고 그 효율성은 해석 및 컴파일 된 언어와 어떻게 비교됩니까?
위키의 Interpreted Languages 페이지 에 따르면 , 가상 머신 코드로 컴파일 된 언어로 표시됩니다. 그 의미는 무엇입니까?
RUN
. 그것은 렉싱 단계를 수행 한 다음 컴파일러가 프로그램을 실행할 때마다 다시 구문 분석 해야하는 스트림을 출력하는 컴파일러를 사용하는 것과 같습니다. 예를 들어, javac
lexing, parsing 및 최적화를 포함하는 현대 바이트 코드 컴파일과 전혀 다릅니다.