Objective-C linguaggio di programmazione | |
---|---|
Autore | Brad Cox e Tom Love (Stepstone Corp.) |
Data di origine | 1984 |
Ultima versione | 2.0 |
Utilizzo | linguaggio general-purpose |
Paradigmi | programmazione orientata agli oggetti, programmazione multi-paradigma, class-based programming e riflessione |
Tipizzazione | debole, dinamica |
Estensioni comuni | h, m, mm e C |
Influenzato da | C e Smalltalk |
Ha influenzato | C++, Swift, Java |
Implementazione di riferimento | |
Sistema operativo | Multipiattaforma |
Sito web | developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html |
Objective-C (in breve Obj-C) è un linguaggio di programmazione riflessivo orientato agli oggetti, sviluppato da Brad Cox alla metà degli anni ottanta presso la Stepstone Corporation.
Come lo stesso nome suggerisce, l'Objective-C è un'estensione a oggetti del linguaggio C. Esso mantiene la completa compatibilità col C (a differenza di quanto avviene, per esempio, nel caso del C++). Tra l'altro, anche a causa di questa compatibilità, Objective-C non è dotato di forte tipizzazione (caratteristica che invece esibiscono, tra gli altri, sia C++ che Java).
Le estensioni a oggetti con cui Objective-C arricchisce il modello semantico del C sono ispirate al linguaggio Smalltalk, in particolar modo alla gestione dei messaggi. Le caratteristiche del runtime system collocano l'Objective-C tra i linguaggi ad oggetti dinamici. Sono supportati tutti gli elementi classici della programmazione a oggetti; ma non mancano concetti innovativi anche su questo fronte, come il meccanismo delle categorie e strumenti legati alla riflessione.
La sua diffusione è principalmente legata al framework OpenStep di NeXT e al suo successore Cocoa, presente nel sistema operativo macOS di Apple. A NeXT si deve il supporto dell'Objective-C nel compilatore gcc di GNU.