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


  • 그러면,, Browser안에 C Compiler가 있나요???
  • 2016년 07월 15일에 작성됨
    컴퓨터 공부를 하는 대학생입니다 . 이것저것 다 두드려 보고 있습니다.

조회수 184


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년 07월 16일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.

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

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close