Ziel-J | |
Datum der ersten Version | 2008 |
---|---|
Paradigma | objektorientiert , reflektierend , imperativ , funktional , Skript |
Autor | 280 North, Inc. |
Letzte Version | 0,6 |
Tippen | dynamisch , schwach , Ente |
Beeinflusst von | Ziel-C , JavaScript |
Implementierungen | Cappuccino |
Lizenz | LGPL |
Webseite | http://cappuccino.org/ |
Objective-J ist eine Programmiersprache, die gleichzeitig mit dem Cappuccino- Framework entwickelt wurde . Seine Syntax ist im Wesentlichen identisch mit der von Objective-C . Darüber hinaus teilt es mit Javascript die gleiche Beziehung, die es zwischen Objective-C und der C- Sprache gibt : Es ist eine Art Obermenge, die den Begriff der Vererbung sowie die dynamische Typisierung des Stils hinzufügt . Smalltalk / Objective-C zu JavaScript .
In Objective-J geschriebene Programme müssen kompiliert werden, bevor sie in einem Webbrowser gestartet werden können . Diese Kompilierung kann zur Laufzeit direkt im Browser von einem Compiler durchgeführt werden , der Objective-J-Programme zu reinem JavaScript-Code kompiliert. Der Objective-J-Compiler ist in JavaScript geschrieben, sodass für die Bereitstellung von in Objective-J geschriebenen Programmen kein an den Browser angeschlossenes Plugin erforderlich ist .
Die erste bekannte Verwendung des Objective-J erfolgte mit dem Cappuccino- Framework für die Entwicklung der 280Slides- Webanwendung . Obwohl Objective-J unabhängig vom Cappuccino- Framework verwendet werden kann (und entwickelt wurde) , wurde Objective-J ursprünglich erfunden, um die Webentwicklung mit Cappuccino zu unterstützen.
Objective-J ist eine Obermenge von JavaScript. Dies bedeutet, dass jeder gültige JavaScript-Code auch im Objective-J-Code gültig ist. Das folgende Beispiel zeigt die Deklaration einer Klasse mit dem Namen Address in Objective-J. Diese Klasse ist eine Unterklasse des Basisobjekts CPObject, das dieselbe Rolle wie das NSObject in Objective-C / Cocoa spielt. Auch wenn es nicht der gleiche Name für das Basisobjekt ist, könnte dieser Code auch ein Beispiel für eine Klassendeklaration in Objective-C sein.
@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]; } @endGenau wie in Objective-C beginnt die Deklaration von Klassenmethoden und Instanzmethoden mit '+' (plus) bzw. '-' (minus).
Im Gegensatz zu der Objective-C in Objective-J - Objekte müssen nicht freigegeben werden , da sie automatisch durch die freigegeben werden Garbage Collector in Englisch : Garbage Collector JavaScript.