Objective-C
| Objective-C | ||||
| Paradigma | objectgeoriënteerd | |||
| Verschenen in | 1986 | |||
| Ontworpen door | Brad Cox en Tom Love | |||
| Typesysteem | statisch, zwak, duck-typing | |||
| Implementaties | GCC, Apple | |||
| Beïnvloed door | Smalltalk, C | |||
| Invloed op | Java, TOM | |||
|
||||
Objective-C is een superset van de programmeertaal C. Hij is ontwikkeld door Brad J. Cox in de jaren 80 van de twintigste eeuw, en heeft qua syntaxis wel wat weg van Smalltalk. Tegenwoordig wordt de taal het meest gebruikt in Mac OS X (voor het Cocoa-framework) en GNUstep, maar bijvoorbeeld ook in NeXTSTEP, van NeXT Computer, Inc.
[bewerken] Kenmerken
Objective-C is, in tegenstelling tot C++, een superset van C, wat inhoudt dat alles wat in C voorkomt ook geldig is in Objective-C. Het voegt echter (net als C++) de mogelijkheid toe tot object-georiënteerd programmeren, door de toevoeging van klassen. Een (instantie van een) klasse kan een zogeheten message gestuurd worden, die een methode (een stuk code) aanroept, op de volgende manier:
NSObject *anObject; anObject = [NSObject alloc]; [anObject init];
In de eerste regel wordt de variabele "anObject" van het type NSObject gedeclareerd. Vervolgens wordt er geheugen voor "anObject" gereserveerd (alloc), tenslotte initialiseert de derde regel dit object. Messages kunnen dus gestuurd worden naar zowel klassen als instanties daarvan. Overigens wordt dit specifieke voorbeeld vaak gecombineerd tot
NSObject *anObject = [[NSObject alloc] init];
Verder voegt het ook een nieuw soort pointer toe, die als volgt gedeclareerd wordt:
id var;
Hierdoor is tijdens het schrijven en compileren van de broncode niet bekend naar wat voor gegevenstype de pointer wijst; dit wordt beslist tijdens het uitvoeren van het programma, door de runtime-environment.
[bewerken] Compilers
- GNU GCC.
- De clang compiler, deel van het LVVM-project.
[bewerken] Externe links
| Programmeertalen |
|---|
|
ABAP · ABC · ActionScript · Ada · Algol · APL · Assembleertalen · AWK · B · BASIC · BCPL · C · C++ · C♯ · Clean · Clipper · Clojure · COBOL · Curry · D · Eiffel · Erlang · F♯ · Forth · Fortran · Go · Haskell · J♯ · Java · JavaScript · JScript · Kotlin · Lisp · Logo · Lua · ML · Modula-2 · Oberon · Object Pascal · Objective-C · Ocaml · Oz · Pascal · Perl · PHP · PL/I · PL/SQL · Prolog · Prova · Python · Rexx · RPG · Ruby · SAS · Scala · Scheme · Self · Simula · Smalltalk · TCL · Vala · Visual Basic |