Javascript언어도 C언어로 번역되어서 Browser안에서 돌아가나요???

조회수 2862회
  • 그러면,, Browser안에 C Compiler가 있나요???
  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • Javascript는 스크립트 언어입니다. 그래서 컴파일과정이 필요 없습니다.

    나무위키를 보면 스크립트 언어의 특징이 이렇게 설명되어 있네요.

    컴파일 과정을 거치지 않고 실시간으로 텍스트를 분석하며 실행된다. (일부 간단한 컴파일을 지원하는 스크립트 언어도 있다) 코드에 문법 오류가 있을 경우 실행시점에서 발견된다. (근래에는 실행 전 파싱 단계에서 발견되는 경우가 많다.)

    자바스크립트는 브라우저에서 구동될 때 브라우저에 포함된 인터프리터에 의해 한 줄씩 해석되면서 실행됩니다.

    한 줄씩 실행된다는걸 다음 예를 보면 이해하실 수 있을겁니다. 아래 자바스크립트 코드를 보면 else문 안에 문법오류가 있습니다. 하지만 코드밑에 있는 실행하기를 눌러서 실행해 보면, 문제없이 실행될겁니다.

    var a = 10;
    if(a > 0){
        console.log("잘 실행 됩니다.")
    }
    else{
        //말도 안되는 아래와 같은 줄을 적어 놓더라도 잘 실행됩니다.
        //if문에 의해서 인터프리터가 읽지 않고 지나가기 때문입니다.
        wesdhfoawefoiawesdfp
    }
    

    하지만 c와 같은 컴파일 언어는 코드 전체를 컴파일 한 다음에 실행하기 때문에 이런 부분이 허용되지 않습니다. 아래 코드의 실행하기 버튼을 눌러서 아래 코드를 실행해 보세요. else문이 실행될 수 없는 조건이더라도 컴파일 과정에서 에러가 발생합니다.

    #include <stdio.h>
    int main(){
        int a = 10;
        if(a > 0){
            printf("잘 실행 될까요?.");
        }
        else{
            //c는 컴파일 에러가 발생합니다.
            wesdhfoawefoiawesdfp
        }
    
        return 0;
    }
    
    

    이렇게 컴파일 언어와 스크립트 언어는 다르게 동작합니다. 스크립트 언어인 자바스크립트는 다른 언어로 컴파일 되지 않고, 브라우저가 한 줄씩 읽어들여서 실행하게 됩니다.

    • 브라우저는 운영체제 위에서 돌아가는 작은 프로그램 아닌가요? 알 수 없는 사용자 2016.7.16 11:14
    • 최근에는 특정 언어를 인터프리터 언어 혹은 컴파일 언어로 정의하지 않습니다. 대부분의 최신 브라우저는 성능 향상을 위해 자바스크립트를 자체 바이트 코드 혹은 내부 데이터 구조로 컴파일 하는 과정을 거칩니다. V8 엔진은 머신 코드로 컴파일 한다고 하네요. https://en.wikipedia.org/wiki/V8_(JavaScript_engine) 알 수 없는 사용자 2016.7.18 14:06
    • 감사합니다 알 수 없는 사용자 2016.7.19 23:47

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)