Obiectiv-J

Obiectiv-J
Data primei versiuni 2008
Paradigmă orientat spre obiect , reflexiv , imperativ , funcțional , Script
Autor 280 Nord, Inc.
Ultima versiune 0,6
Tastare dinamic , slab , rață
Influențată de Obiectiv-C , JavaScript
Implementări Cappuccino
Licență LGPL
Site-ul web http://cappuccino.org/


Obiectiv-J este un limbaj de programare dezvoltat în același timp cu Cappuccino cadru . Sintaxa sa este în esență identică cu cea a Objective-C . În plus, împărtășește cu Javascript aceeași relație care există între Objective-C și limbajul C  : este un fel de superset care adaugă noțiunea de moștenire, precum și tastarea dinamică a stilului Smalltalk / Objective-C la JavaScript.

Programele scrise în Objective-J trebuie să fie compilate înainte de a putea fi lansate într-un browser web . Această compilare poate fi făcută direct în browser în timpul rulării de către un compilator care compilează programele Objective-J în cod JavaScript pur. Compilatorul Objective-J este scris în JavaScript, astfel încât implementarea programelor scrise în Objective-J nu necesită un plugin atașat browserului.

Cerere

Prima utilizare cunoscută a Objective-J a fost realizat cu Cappuccino cadru pentru dezvoltarea 280Slides aplicatiei web . Deși Obiectiv-J poate fi utilizat (și a fost proiectat) independent de Cappuccino cadrului , Objective-J a fost inițial inventat pentru dezvoltare web suport cu Cappuccino.

Sintaxă

Objective-J este un superset de JavaScript, aceasta implică faptul că orice cod JavaScript valid este valabil și în codul Objective-J. Următorul exemplu prezintă declarația din Obiectiv-J a unei clase numite Adresă , această clasă este o subclasă a obiectului de bază CPObject care joacă același rol ca NSObject în Obiectiv-C / Cacao. Chiar dacă nu este același nume pentru obiectul de bază, acest cod ar putea fi, de asemenea, un exemplu pentru o declarație de clasă în 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

La fel ca în Objective-C, declarația metodelor de clasă și a metodelor de instanță începe cu „+” (plus) și respectiv „-” (minus).

Gestionarea memoriei

Spre deosebire de obiectele Objective-C din Objective-J nu trebuie să fie eliberate, deoarece sunt eliberate automat de colectorul de gunoi în limba engleză  : Garbage Collector JavaScript.

Vezi și tu

Articol asociat

linkuri externe