목표-J

Objective-J
목표-J
패러다임다중 패러다임: 반사, 객체 지향, 기능, 필수, 스크립팅
개발자카푸치노 핵심 개발자 및 커뮤니티
첫 등장2008
타이핑 규율다이나믹, 허약, 오리
면허증LGPL
웹사이트cappuccino-project.org
영향을 받은
목표-C, 자바스크립트

Objective-J는 카푸치노 웹 개발 프레임워크의 일부로 개발된 프로그래밍 언어다. 그것의 구문은 Objective-C 구문과 거의 동일하며, 그것은 Object-C가 C 프로그래밍 언어와 가지고 있는 관계 즉, 엄격하지만 작은 Superset; 전통적인 상속Smalltalk/Objective-C 스타일의 동적 전송을 추가하는 것과 같은 관계를 JavaScript와 공유한다. 프로토타입 기반 언어인 순수 자바스크립트는 이미 객체 지향과 상속의 개념을 가지고 있지만, Object-J는 클래스 기반 프로그래밍의 사용을 자바스크립트에 추가한다.

목표-J로 작성된 프로그램은 웹 브라우저의 JavaScript 가상 머신에 의해 실행되기 전에 사전 처리되어야 한다. 이 단계는 런타임에 웹 브라우저나 Objective-J 프로그램을 순수한 JavaScript 코드로 변환하는 컴파일러에서 발생할 수 있다. Objective-J 컴파일러는 JavaScript로 작성된다. 따라서 Objective-J 프로그램을 배포하려면 웹 브라우저 플러그인이 필요하지 않다. 목표-J는 Node.js에서 컴파일하여 실행할 수 있다.

적용들

Objective-J의 첫 번째 널리 알려진 사용은 카푸치노 기반의 웹 어플리케이션 280 Slide에 있었는데, 이 슬라이드들은 280 North가 자체적으로 개발한 것이다. 목표-J는 카푸치노 프레임워크와는 독립적으로 사용할 수 있고(그리고 설계되어 왔지만), 목표-J는 주로 카푸치노의 웹 개발을 지원하기 위해 발명되었다.

카푸치노 프레임워크를[1] 사용하여 설계된 응용프로그램

구문

Objective-J는 JavaScript의 상위 집합으로, 유효한 JavaScript 코드는 또한 유효한 Objective-J 코드라는 것을 의미한다.

다음 예제는 주소라는 클래스의 목표-J에서 정의와 구현을 보여준다. 이 클래스는 목표-C의 NCObject와 유사한 역할을 하는 루트 개체 CPObject를 확장한다. 이 예는 코코아와는 반대로 루트 개체가 카푸치노의 기본 틀을 반영하고, 목표-J는 포인터를 사용하지 않으며, 따라서 유형 정의에는 별표 문자가 포함되지 않는다는 점에서 기존의 목표-C와 다르다. 인스턴스 변수는 항상 @구현에 정의된다.

@이행 주소 : CPObject { CPString name; CPString city; } - (id)initWithName:(CPString)aName 도시:(CPString)aCity { self = [super init]; name = aName; city = aCity; return self; } - (void)setName:(CPString)aName { name = aName; } - (CPString)name { return name; } + (id)newAddressWithName:(CPString)aName city:(CPString)aCity { return [[자체 할당] initWithName:aName city:aCity]; } @end 

목표-C와 마찬가지로 클래스 메서드 정의와 인스턴스 메서드 정의는 각각 '+'(플러스)와 '-'(대시)로 시작한다.

메모리 관리

Object-C는 사용하지 않는 객체의 할당을 해제하기 위해 ARC(자동 기준 카운팅)를 사용한다. 목표-J에서 객체는 자바스크립트의 가비지 수집기에 의해 자동으로 할당 해제된다.

참고 항목

참조

  1. ^ "Demos in Cappuccino". Archived from the original on 25 August 2013. Retrieved 26 February 2011.
  2. ^ http://blog.acclivitynyc.com/post/64981755172/dumped-cappuccino-and-switched-to-ember[데드링크]

외부 링크