Objective-J | это... Что такое Objective-J? (original) (raw)
Objective-J
Класс языка: | мультипарадигмальный: рефлексивно-ориентированное, объектно-ориентированное, функциональное, императивное, скриптовое |
---|---|
Появился в: | 2008 |
Типизация данных: | динамическая, слабая, утиная |
Испытал влияние: | Objective-C, JavaScript |
Лицензия | LGPL |
Сайт: | http://cappuccino.org/ |
Objective-J — язык программирования, разрабатываемый как часть Cappuccino — фреймворка для веб-приложений. Его синтаксис почти полностью идентичен синтаксису Objective-C. Objective-J относится к JavaScript так же, как Objective-C к языку программирования C: является его строгим, но компактным надмножеством. Objective-J добавляет в JavaScript традиционное наследование и динамическую диспетчеризацию в стиле Smalltalk/Objective-C. В чистом Javascript как языке прототипного типа уже существует понятие об объектной ориентации и наследовании, но Objective-J добавляет в JavaScript возможность использовать основанное на классах программирование.
Программам, написанным на Objective-J, требуется предварительная обработка перед тем, как они смогут быть исполнены виртуальной машиной JavaScript в веб-браузере. Этот этап может проходить во время исполнения в веб-браузере с помощью компилятора, который транслирует программы на Objective-J в код на чистом JavaScript. Компилятор Objective-J написан на JavaScript, и поэтому развертывание программ на Objective-J не требует наличия какой-нибудь специальной надстройки для браузера.
Применение
Первое полномасштабное применение Objective-J связано с созданием веб-приложения 280Slides на основе фреймворка Cappuccino. Хотя Objective-J может быть использован (и разрабатывался) независимо от Cappuccino, Objective-J в первую очередь был создан для поддержки веб разработки на основе Cappuccino.
Синтаксис
Objective-J — надмножество JavaScript, а это означает, что любой валидный код на JavaScript является также валидным кодом Objective-J. Следующий пример иллюстрирует определение на Objective-J класса с названием Address. Этот класс расширяет корневой класс CPObject, который играет роль, подобную роли NSObject в Objective-C. За исключением названия корневого объекта этот код также является примером определения класса на языке Objective-C.
@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, объекты в Objective-J не нуждаются в освобождении, поскольку они автоматически освобождаются сборщиком мусора JavaScript.
Примечания
См. также
Ссылки
- Изучение Objective-J. Cappuccino Web Framework. Архивировано из первоисточника 27 марта 2012.