Objective-C
L'Objective C è un linguaggio di programmazione orientato agli oggetti sviluppato da Brad Cox alla metà degli anni '80 presso la StepStone Corporation. Come lo stesso nome suggerisce, l'Objective C è un'estensione ad oggetti del C. Tuttavia, al contrario del C++, l'Objective C mantiene col C la compatibilità al 100%.
Le estensioni ad oggetti sono ispirate al linguaggio Smalltalk, in particolar modo alla gestione dei messaggi. Le caratteristiche del runtime collocano l'Objective C tra i linguaggi ad oggetti dinamici. Sono supportati il binding dinamico, l'accesso alle proprietà della classe quali metodi e attributi e la possibilità di personalizzare le classi attraverso il meccanismo delle categorie.
Al contrario di linguaggi come C++ e Java, come il C non è dotato di forte tipizzazione.
La sua diffusione è principalmente legata al framework OpenStep di NeXT e al suo successore Cocoa, presente nel sistema operativo Mac OS X di Apple. A NeXT si deve il supporto dell'Objective C nel compilatore gcc di GNU.
Esempi di codice
Interfaccia di una classe
// file NomeClasse.h #import "NomeSuperclasse.h" @interface NomeClasse : NomeSuperclasse { // variabili d'istanza float v1; int v2; BOOL v3; } // dichiarazione metodi della classe +(id)allocInit; // dichiarazione metodi delle istanze -(id)init; -(void)logTo:(FILE*)destinazione; @end
Implementazione di una classe
// file NomeClasse.m #import <stdio.h> #import "NomeClasse.h" @implementation NomeClasse +(id)allocInit { return [[NomeClasse alloc] init]; } -(id)init { self=[super init]; v1=0; v2=0; v3=YES; return self; } -(void)logTo:(FILE*)destinazione { sprintf(destinazione,"v1=%f v2=%d v3=%s\n", v1, v2, v3?"YES":"NO"); } @end