C 또는 C++과 같은 컴파일 된 언어를 학습하면 컴파일러에 대해 알게됩니다. 코드를 실행하려면 먼저 컴파일해야합니다. 코드를 컴파일하면 텍스트 표현에서 실행될 수있는 것으로 변환됩니다. 결과 코드는 매우 빠르며 전 처리기 등을 사용할 수 있습니다.해석 된 언어와 컴파일 된 언어가 명확하게 구분되어있는 이유는 무엇입니까?
Python, Matlab 또는 Ruby와 같은 동적 언어를 학습하면 통역사를 알게됩니다. 코드를 실행하려면 인터프리터에 코드를 입력하기 만하면됩니다. 따라서 런타임에 코드를 가지고 놀고 프로그램의 동작을 즉시 변경할 수 있습니다. 이 단점은 해석 언어가 다소 느리고 컴파일 시간이 분명하지 않아 전처리 기가 불가능하다는 것입니다.
그런 다음 인터럽트 된 언어처럼 사용되지만 컴파일 된 언어와 비교하여 성능이 떨어지는 Just-In-Time 컴파일러가 있습니다. 그러나 일반적으로 프리 프로세서를 사용하지 않고 즉시 실행할 수있는 바이너리를 출력하지 않습니다.
그리고 나서 나는 컴파일되고, 해석 될 수 있고, 무엇을 가지고 있으며, 빠른 속도와 강력한 전처리 시스템 (매크로)을 갖는 Lisp을 배웠다. 이것은 리스프 세계에서는 상식 인 것처럼 보이지만 다른 곳에서는 그렇지 않습니다.
C 나 파이썬 용 컴파일러에 널리 사용되는 인터프리터가없는 이유는 무엇입니까? 왜 해석 언어와 컴파일 언어가 강하게 다른가? (나는 파이썬을 컴파일하거나 C를 해석 할 수있는 프로젝트가 있지만 일반적으로 그 프로젝트는별로 인기가없는 것으로 보인다).
C : http://root.cern.ch/drupal/content/cint에 대한 통역사가 있습니다. – Max
전제의 일부에 도전하고 싶습니다. 전처리 기는 * 완전히 별개 *이며 컴파일러 나 인터프리터보다 훨씬 오래 사용할 수 있습니다 (바이너리가 아닌 소스 코드에서 작동합니다). C 및 C 호환 언어에는 특정 전 처리기가 내장되어 있지만 다른 이유가 있습니다 (저렴한 컴파일 타임 추상화가 필요함). 그리고 다음 문장에서 인정하는 ** ** 파이썬 컴파일러와 C 인터프리터가 있습니다. 그들은 주류 인 것처럼 보이지 않지만 그것을 사용하는 공동체가 있습니다. 그리고 어쨌든 "통역사/컴파일러가 없다"는 것은 분명히 거짓입니다. – delnan
@delnan 사실, "해석기/컴파일러가 없습니다"는 잘못되었습니다. 나는 그것을 고쳤다. 그 점을 지적 해 주셔서 감사합니다. 전처리기에 관해서 : 많은 컴파일 된 언어 (특히 C에서 파생 된 모든 것)가 내장되어 있지만, 해석 된 언어가 적은 언어가 있습니다. Lisp를 제외하고 컴파일되고 해석되며 전처리 기가 있습니다. 그리고 그것은 * 유용합니다 *, 그래서 왜 다른 언어가 그 모든 것을 가지고 있지 않습니까? – bastibe