1.3/1.3.1
1.3 컴파일링
액션스크립트 프로그램이 플래시 런타임에서 실행되려면 액션스크립트 프로그램은 먼저 사람이 읽을 수 있는 액션스크립트 3.0코드에서 플래시 런타임이 이해할 수 있는 바이너리 포맷으로 변환되어야 한다. 이러한 바이너리 포맷을 액션스크립트 바이트코드( ActionScript Bytecode ) 또는 약어로 ABC라고 부른다.하지만 이 형태로 플래시 런타임에서 실행될 수 있는게 아니다. 액션스크립트 바이트 코드가 SWF 파일 형태의 바이너리 컨테이너 파일에 담겨진 형태로 실행되기 때문이다.
액션스크립트3.0 프로그램과 SWF 파일을 컴파일하려면 컴파일러라는 소프트웨어 모듈을 사용해야 한다. 액션스크립트 코드를 컴파일하는 컴파일러를 액션스크립트 컴파일러라고 부른다. 아울러 SWF 파일을 생성하는 컴파일러는 SWF 컴파일러라고 한다. 플래시 파일 포맷을 완벽히 지원하는 swf 컴파일러는 모두 액션스크립트 컴파일러를 포함하고 있다.
플렉스 빌더 2와 플래시 저작 도구의 액션스크립트 컴파일러는 동일하지만, 플렉스 컴파일러와 플래시 컴파일러는 서로 다른 SWF 컴파일러를 사용한다.
1.3.1 JIT( Just-In-Time) 컴파일링
액션스크립트 프로그램이 실행되면 플래시 런타임은 컴파일된 액션스크립트 바이트코드를 읽고, 이를 프로그램이 실행되고 있는 특정 컴퓨터 하드웨어가 실행할 수 있는 네이티브 코드 명령으로 변환한다. 이러한 네이티브 코드명령은 바이트코드를 다시 변환하는 과정을 피하기 위해 저장된 후 재사용된다.
액션스크립트 3.0코드를 바이트코드로 변환하는 과정을 컴파일링이라고 부르듯이, 바이트코드를 네이티브 코드로 변환하고 추후 실행시 활용키 위해 저장하는 과정도 컴파일링이라고 한다.
액션스크립트 코드는 두 단계의 컴파일을 거친다.
1. 개발자가, 사람이 읽을 수 있는 형태의 코드를 플래시 런타임이 해석할 수 있는 형태로 컴파일한다.
2. 플래시 런타임이 액션스크립트의 바이트코드를, 프로그램을 실행하는 하드웨어가 이해할 수 있는 형태( 네이티브 코드 )로 자동으로 변환하게 된다.
2번의 컴파일링 과정( 바이트코드에서 기계로 )은 JIT( Just-In-Time ) 컴파일링이라고 부르는데, 이렇게 부르는 이유는 프로그램에서 해당 바이트코드를 필요로 할 때마다 컴파일링이 이루어 지기 때문이다.