2014-11-03 5 views
1

저는 웹 개발에 익숙하지 않고 JavaScript를 배우고 있습니다. 스탠포드에서 course에서Javascript - 컴파일 된 언어?

:

자바 스크립트는 인터프리터 언어가 아닌 컴파일 된 언어입니다. C++ 또는 Java와 같은 프로그램은 실행 전에 컴파일해야합니다. 소스 코드는 컴파일러라는 프로그램을 통해 전달되며, 컴파일러는이를 시스템이 이해하고 실행할 수있는 바이트 코드로 변환합니다. 반대로, JavaScript에는 컴파일 단계가 없습니다. 대신 브라우저의 인터프리터가 JavaScript 코드를 읽고 각 행을 해석하여 실행합니다. 보다 최신의 브라우저는 Just-In-Time (JIT) 컴파일로 알려진 기술을 사용합니다.이 컴파일은 JavaScript를 실행 가능한 바이트 코드로 컴파일합니다.

그리고 You Don't Know JS: Scope & Closures에서 Kyle Simpson으로는 :

...하지만 자바 스크립트 언어 "해석", "동적"또는 일반 카테고리에 해당한다는 사실에도 불구하고, 그것은 컴파일 된 사실입니다 언어.

간단히 말하면, JavaScript 스 니펫은 컴파일되기 전에 (보통은 직전에) 컴파일되어야한다고 가정 해 봅시다. 따라서 JS 컴파일러는 var a = 2; 먼저 컴파일 한 다음 즉시 실행할 준비를하십시오.

그리고 Stack Overflow에서 몇 가지 질문이 있습니다. 다음과 같은 아이디어가 있습니다. 실제 언어 구현에 따라 달라집니다.

의견이 있으십니까?

+0

http://stackoverflow.com/questions/9623813/is-javascript-compiled-or-an-interpreted-language – Thilo

+0

@Thilo, 아직 읽었습니다. 그러나 책과 코스의 정의는 어떨까요? – haitran

+0

이 두 정의를 여기에 붙여 넣을 수 있습니까? – Thilo

답변

2

글쎄, 당신은 아마 의미와 용어의 차이를 얻을 수 있지만, 두 가지 중요한 점 : (웹 페이지)

  • 자바 스크립트의 소스 코드 형태로 배포 (또는 적어도 최소화 텍스트 형태로) 그리고 미리 컴파일 된 바이너리가 아닙니다.

  • 자바 스크립트는 브라우저 (심지어 일부는 성능 최적화로 사용될 수 있지만 요즘)에서 실행 가능한 컴퓨터 코드로 컴파일되지 않지만 가상 컴퓨터 기계

+0

Chrome (V8), Safari (squirrelfish) 및 IE9 +에는 바이트 코드를 Java와 마찬가지로 기본 시스템 코드로 컴파일하는 JIT 컴파일러가 있습니다. 사실, 최신 사파리는 자바 스크립트 "인터프리터"로 llvm을 사용합니다. llvm은 C/C++/C#/Pascal/Fortran/등입니다. 컴파일러. – slebetman

관련 문제