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. Архів оригіналу за 25 серпня 2013. Процитовано 26 лютого 2011.

Посилання

[ред. | ред. код]