Tavoite-J

Tavoite-J
Ensimmäisen version päivämäärä 2008
Paradigma olio-suuntautunut , heijastava , välttämätön , toimiva , komentosarja
Kirjoittaja 280 North, Inc.
Viimeinen versio 0.6
Kirjoittaminen dynaaminen , heikko , ankka
Vaikuttanut Objektiivi-C , JavaScript
Toteutukset Cappuccino
Lisenssi LGPL
Verkkosivusto http://cappuccino.org/


Objective-J on ohjelmointikieli, joka on kehitetty samanaikaisesti Cappuccino- kehyksen kanssa . Sen syntakse on olennaisesti identtinen tavoite-C: n kanssa . Lisäksi se jakaa Javascriptin kanssa saman suhteen, joka on Objective-C: n ja C- kielen välillä  : se on eräänlainen superset, joka lisää perinnön käsitteen ja tyylin dynaamisen kirjoittamisen. Smalltalk / Objective-C JavaScriptiin .

Objective-J: ssä kirjoitetut ohjelmat on koottava ennen kuin ne voidaan käynnistää verkkoselaimessa . Tämän käänteen voi tehdä suoraan selaimessa ajon aikana kääntäjä, joka kokoaa Objective-J -ohjelmat puhtaaksi JavaScript-koodiksi. Objective-J-kääntäjä on kirjoitettu JavaScriptiä, joten Objective-J: ssä kirjoitettujen ohjelmien käyttöönotto ei vaadi selaimeen liitettyä laajennusta .

Sovellus

Objektiivi-J: n ensimmäinen tunnettu käyttö tehtiin Cappuccino- kehyksen kanssa 280Slides- verkkosovelluksen kehittämiseksi . Vaikka Objective-J: tä voidaan käyttää (ja se on suunniteltu) Cappuccino- kehyksestä riippumatta , Objective-J keksittiin alun perin tukemaan verkkokehitystä Cappuccinolla.

Syntaksi

Objective-J on JavaScriptin yläjoukko, mikä tarkoittaa, että mikä tahansa kelvollinen JavaScript-koodi on kelvollinen myös Objective-J-koodissa. Seuraavassa esimerkissä on esitetty ilmoituksen tavoite-J on luokan nimeltä Osoite , tämä luokka on alaluokka emäksen kohteen CPObject joka on sama rooli kuin NSObject tavoite-C / Cocoa. Vaikka se ei olisikaan sama kohde perusobjektille, tämä koodi voi olla myös esimerkki luokan ilmoitukselle Objective-C: ssä.

@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

Aivan kuten Objektiivi-C: ssä, luokkamenetelmien ja ilmentymämenetelmien ilmoittaminen alkaa vastaavasti '+' (plus) ja '-' (miinus).

Muistin hallinta

Toisin kuin tavoite-C esineet Objective-J ei tarvitse vapauttaa, koska ne automaattisesti vapautuu roskienkerääjä in Englanti  : roskienkerääjä JavaScript.

Katso myös

Aiheeseen liittyvä artikkeli

Ulkoiset linkit