ECMAScript4

Posted 2009.03.14 10:59

1. ES4의 역사

ES4는 자바스크립츠에 기초한 ES3를 기반으로 멀티 패러다임 언어로 진화합니다. 자바 스크립트는 1995년 Netscape에서 개발된 언어입니다.
1999년 ES3 스팩을 기반으로 ES4 스팩 설계가 시작되었습니다. 2003년에 중간 보고서가 릴리즈 되었습니다. 2003년 스팩은 어도브사의 액션 스크립트와 마이크로 소프트의 JScript.NET를 통해서 구현되었습니다.
ES3의 최종 구현물은 2005년 가을, ES3에 기초한 액션 스크립트와 JScript.NET를 통해서 소개되었습니다. ES4 스팩은 2008년 가을에 완료 될 예정입니다. 일부 TG1(Task Group1)는 ES4가 메인 ECMAScript 4로써 합리적이지 않다는 의견이 있었으나 ECMA 와 ISO에서는 표준으로 채택되기 위해서 만장 일치가 필요하지 않습니다. 따라서 ES4 표준으로 계속 제한되고 있는 상태입니다.

2.ES4

ES3의 유연성과 잘 다듬어진 추상화 도구에도 불구하고, 대형 소프트웨어 개발에 많은 부족함이 존재합니다. 대형 소프트웨어 개발에서는 정적 타입 체크, 이름 숨김, 이른 바인딩, 여타 최적화 훅킹, oop 지원과 같은 기술적인 요소가 필요하며, ES3는 대형 소프트웨어 개발에 많은 부분에서 부족합니다.
ES4는 기존 ES3와 호환성을 유지하며, 조금 더 대형 소프트웨어 개발에 최적화되도록 설계하는 것을 목적으로 합니다. 대형 소프트웨어 개발에 적합하도록 라이브러리 재사용성 극대화하기 위한 기술적인 장치 도움과 함께, 기존 언어들의 단점을 극복하고, 기존에 지향해오던 스크립트 언어로써의 쉬운 코딩을 유지하는데 목적을 두고 설계가 되었습니다.

3. 간략한 특징 소개

- 자바 스타일의 class 와 interface를 지원합니다.
- ES3에서 지원하던 모든 델리케이션 스타일 코딩을 지원합니다.
- ES4에서는 Lisp, Dylan, Cecil 스타일의 OOP를 지원합니다. 대표적으로 multi-method 메커니즘을 지원합니다.
- 연산자 오버로딩에 대해서도 multi-method메커니즘을 지원합니다.
- package와 namespace를 통해서 모듈성과 이름 숨김, 라이브러리 설계성을 극대화합니다.
- 타입 시스템 지원하며, 실행 성능을 향상하기 위해서 정적 타임 체크 방식과 이른 바인딩을 지원합니다.
- strict mode를 통해서 실행하기전에 타입을 결정하며, 정적 타임에 대해서는 별도의 정보 테이블이 필요없다.
- Type annotations를 통해서 ES3보다 빠르게 함수를 호출할 수 있습니다. Type annottations는 런타임에 별도의 체크없이 함수를 호출하도록 해줍니다. int, uint, doible과 같은 데이터 타입은 하드웨어에 직접적으로 매립됩니다. Vector 데이터 타입은 Array에서 발생하는 일반화된 데이터 타입을 컨테이딩함으로써 생기는 오버헤드가 없습니다.

- iteration 과 itemization protocol를 기반으로 한 기능지원, 대표적으로 for-in, for-each-in 구문

- Generators 지원
-Proper tail calls 지원 - 재귀 호출 또는 상호 재귀 호출데 따른 스택 공간 부족 현상을 발생하지 않음. 이터레이터 패턴을 통한 기술
- parameterized classes 지원






Write your message and submit
« PREV : 1 : ··· : 22 : 23 : 24 : 25 : 26 : 27 : 28 : 29 : 30 : ··· : 41 : NEXT »