Objective-J

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Objective-J
Парадигма: Декілька: рефлективна, об’єктно-орієнтована, функціональна, імперативна, скриптова
Дата появи: 2008
Розробник: 280 North, Inc.
Система типізації: динамічна, слабка, duck
Під впливом від: Objective-C, JavaScript
Ліцензія: LGPL
Сторінка інтернет: cappuccino.org

Objective-J - це мова програмування, яка була розроблена у складі веб-фреймворку Cappuccino. Синтаксис мови майже ідетичний з синтаксисом Objective-C та зберігає таке ж відношення щодо JavaScript, як Objective-C щодо C, а саме: є строгою, проте невеликою, надмножиною мови; додає традиційний механізм наслідування та динамічної відправки повідомлень у стилі Smalltalk/Objective-C. В чистому JavaScript, що базується на використанні прототипів, частково реалізовані відношення між об’єктами та наслідування, проте Objective-J доповнює JavaScript повноцінною можливістю програмувати класи.

Програми, написані на Objective-J, повинні бути пере-компільовані в Javascript перш ніж виконуватись у віртуальній машині програми-оглядача клієнта. Цей крок може бути здійснений самою програмою-оглядачем в ході виконання, або ж спеціальним компілятором, що транслює Objective-J програми в чистий JavaScript. Objective-J компілятор написаний на JavaScript, і тому не для розробки та розгортання на стороні клієнта не потрібно встановлювати додаткових розширень до веб оглядача. Objective-J можна скомпілювати і виконувати на Node.js

Програми[ред.ред. код]

Першим відомим застосуванням Objective-J стала програма 280 Slides, що базується на фреймворку Cappuccino. І хоча дизайн Objective-J передбачає використання мови в якості самостійного інструменту, початковим призначенням мови була підтримка розробки веб аплікацій у Cappuccino.

Програмне забезпечення, шо використовує Cappuccino та Objective-J[1][ред.ред. код]

Синтаксис[ред.ред. код]

Objective-J є надмножиною JavaScript, і це означає, що будь-який написаний на Javascript код буле виконуватись і на Objective-J.

У посліуючому прикладі показано оголошення та реалізація Objective-J класу, що називається Address; цей клас розширює базовий об’єкт CPObject - аналог Objective-C NSObject. Різниця між наведеним прикладом та традиційним Objective-C полягає в тому, що CPObject відображає весь нижче-підпорядкований фреймворк Cappuccino, коли NSObject - Cocoa. В Objective-J не використовуються вказівники, і тому визнчення типів не містять символів зірочки. Змінні завжди оголошуються в секції @implementation.

@implementation Address : CPObject
{
   CPString name;
   CPString city;
}

- (id)initWithName:(CPString)aName city:(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 [[self alloc] initWithName:aName city:aCity];
}

@end

Як і в Objective-C, оголошення статичних та динамічних методів класів починаються з '+'(плюс) та '-'(мінус) відповідно.

Управління пам’яттю[ред.ред. код]

Як і в режимі збирача сміття в Objective-C 2.0, пам’ять під об’єкти не потрібно звільняти самотужки, оскільки вона буде звільнена збирачем сміття Javascript у потрібний час.

Див. також[ред.ред. код]

Посилання[ред.ред. код]

  1. «Demos in Cappuccino». Demos in Cappuccino. Архів оригіналу за 2013-08-25. Процитовано 2011-02-26. 

External links[ред.ред. код]