WIT – NTS UIT Blog

[번역] The race for speed part 3: JavaScript compiler strategies

Posted by in Research

원문 출처 : http://creativejs.com/2013/06/the-race-for-speed-part-3-javascript-compiler-strategies/ JavaScript는 많은 이유로 큰 인기를 누리고 있다. 폭 넓은 사용 범위를 가지고 있고, 개발자의 관점에서 볼 때 아주 빠르고 유연하다.  언어의 모든 것이 객체여서 즉각적으로 구조를 만드는 것이 아주 쉽고 어떠한 데이터 타입도 필요 없다. 데이터 타입을 모두 추론하기 때문이다. 그러나 분명 이러한 다양성은 컴파일을 어렵게 만든다. Hidden classes 비록 자바스크립트를 이용해서 객체와 계층 구조를 만드는 것은 아주 쉬운 일이지만, 컴파일러가 이러한 복잡한 구조를 다루기 위해서는 긴 시간이 필요하다. C 언어는 보통 프로퍼티나 변수를 저장하고 가져올 때 hashtable이나 사전식 데이터 구조를 이용한다. 이 둘은 이름을 식별하는…read more

0

[번역] The race for speed part 2: How JavaScript compilers work

Posted by in Research

The race for speed part 2: How JavaScript compilers work 우리는 자바스크립트 엔진에 대해 이야기할때 일반적으로 컴파일러를 말한다. 인간이 읽을수 있는 소드 코드(자바스크립트의 경우)를 만들면 컴파일러는 컴퓨터를 위해 이를 기계가 읽을 수 있는 명령어를 생성하는 프로그램이다. 컴파일러가 실행될 때 우리의 코드가 어떤일이 발생하는지 고려하지 않는다면 신비하고 영리한 코딩이라기 보다는 기본적으로 번역 연습이라고 할 수 있다. 빠른 실행 코드를 만드는 것은 영리한 것이다. How a simple compiler works 자바스크립트는 높은 레벨의 언어 로 여겨진다. 이 말은 사람이 읽을 수 있고 높은 유연성을 가지고 있다는 뜻이다. 컴파일러의 작업은 높은 레벨의 코드를 본래의 컴퓨터 명령어로…read more

0

Interpreter and JavaScript Engine

Posted by in Research

기계어(Machine code)와 어셈블리어(Assembly) 컴퓨터 프로그램은 수 많은 명령어로 구성되어 있다. 컴퓨터의 두뇌격인 CPU는 사람의 언어를 이해하지 못하기 때문에 어떤 작업을 지시하려면 CPU가 이해할 수 있는 언어로 이야기를 해줘야 한다. 컴퓨터에 조금이라도 관심있는 사람이라면 알고 있겠지만, 컴퓨터의 언어는 비트(bit)로 구성되어 있다. 비트는 최소의 정보 저장 단위인데 0 또는 1의 2진수 값을 갖는다. 여러개의 비트를 정해놓은 2진수 패턴에 따라 나열하여 CPU에 신호를 보냄으로써 정보를 전달하거나 작업을 처리하라는 명령을 내리는 것이다. 이렇게 CPU가 직접 해독하고 실행할 수 있는 비트 단위로 쓰인 컴퓨터 언어를 기계어라고 한다. 예를 들어, 이러한 수학식이 있다고 하자.    …read more

0