Programmazione ad oggetti: Caratteristiche del linguaggio Objective C

Programmazione ad oggetti: Caratteristiche del linguaggio Objective C

Objective C

Objective C è un linguaggio di programmazione nato dall’unione di C e SmallTalk, infatti è un’evoluzione del suo famoso predecessore C, ma è un linguaggio ad oggetti (come si intuisce dal nome). I linguaggi di programmazione permettono di scrivere algoritmi interpretabili da un sistema di elaborazione. Sono costituiti da un alfabeto e da un sistema di regole che devono essere rispettate per scrivere programmi sinteticamente corretti. I linguaggi di alto livello sono vicini al linguaggio naturale (inglese), non fanno riferimento ai registri fisicamente presenti sulla macchina, ma a variabili. Per essere eseguiti devono essere tradotti in linguaggio macchina, e tale traduzione viene fatta da un programma chiamato compilatore. Analizzando i linguaggi di programmazione, bisogna distinguere l’interfaccia del linguaggio dalla sua implementazione (funzionamento). L’interfaccia è ciò che si può vedere di un’applicazione, mentre l’implementazione è il funzionamento di questa.

Objective C è un sovrainsieme del C, cioè esso contiene al suo interno l’intero C, uno dei più importanti linguaggi di programmazione di tutta la storia dell’informatica; Objective C è una versione ad oggetti del linguaggio C sviluppata nel 1984 da Brad Cox e adottata come strumento di sviluppo dai sistemi NEXT (sistemi operativi basati su Unix). I file scritti in linguaggio C ed i file scritti in linguaggio Objective C si distinguono per l’estensione del file: un file in C ha estensione .c, mentre un file in Objective C ha estensione .m. Ma, ovviamente, questa non è l’unica differenza. La superiorità di Objective C è data dalla caratteristica di essere un linguaggio di programmazione ad oggetti, il che lo rende molto più potente. Il principio su cui si basa la programmazione ad oggetti è quello di raggruppare informazioni relative al funzionamento di un’entità presente nel programma, con le funzioni che vengono utilizzate da questa; il tutto prende il nome di oggetto. All’interno di un oggetto sono definite, o meglio sono richiamate, tutte le funzioni necessarie al suo funzionamento e queste sono unite all’interno dell’oggetto stesso dalle informazioni (relative al suo funzionamento), che lo caratterizzano. Il risultato di tale modo di costruire il programma è quello di avere più oggetti creati uno distintamente dall’altro, con ognuno la sua zona di memoria; tali oggetti possono essere messi in relazione l’uno con l’altro attraverso sistemi gerarchici che possono essere molto articolati e quindi permettono di strutturare e ricreare fenomeni reali complessi che altrimenti sarebbe molto difficile gestire. La difficoltà di gestione che, attraverso la programmazione ad oggetti viene superata, è dovuta al fatto che l’oggetto viene creato dal programmatore con tutte le informazioni e le funzioni necessarie, però tale oggetto, collegato con altri oggetti del programma, viene gestito dall’ambiente stesso e non necessita del controllo del programmatore il quale si deve limitare a costruirne la struttura ed a relazionarlo con le altre parti del programma.

Programmazione ad oggetti: Caratteristiche del linguaggio Objective C

Programmazione ad oggetti

Un programma costruito con un linguaggio di programmazione ad oggetti è sostanzialmente composto da un insieme di oggetti, ognuno dei quali ha un preciso compito; il sistema di relazione tra i vari oggetti è gestito da messaggi che i vari oggetti si scambiano comunicando tra loro; l’attivazione di tali messaggi è operata grazie ai metodi che sono l’espressione informatica di un funzionamento o di una funzione. Poiché ogni oggetto ha il suo funzionamento, può interpretare differentemente dagli altri ogni messaggio che riceve, il tutto sulla base della struttura propria di ogni oggetto.
In un linguaggio di programmazione tutti gli oggetti della stessa tipologia appartengono a quella che viene denominata classe; la classe rappresenta un prototipo di oggetto che può essere generato più volte per creare tanti oggetti quanti si vuole. Gli oggetti facenti capo ad una stessa classe devono possedere le stesse caratteristiche di comportamento ed utilizzare le stesse funzioni; secondo questa logica, è possibile generare classi e sottoclassi che importino le funzioni ed i comportamenti della classe origine e poi si caratterizzino per ulteriori funzioni e comportamenti.

La programmazione ad oggetti ha quattro proprietà essenziali:

  1. astrazione: il programma che descrive un oggetto è scritto in una classe, poi nel programma principale, gli oggetti sono creati come esempi (instances) della classe.
  2. incapsulamento: gli oggetti nascondono i loro metodi e dati, separano l’interfaccia dell’implementazione. Il codice contenente le istruzioni dirette all’oggetto possono essere modificate senza dovere cambiare i programmi che usano l’oggetto. I valori delle variabili nell’oggetto sono propri dell’oggetto. Devono essere scritti per passare questa informazione all’esterno dell’oggetto.
  3. eredità: ogni classe di oggetti può essere derivata da altre classe già scritte. In questi casi, la classe “figlia” eredita tutte le variabili e i metodi della classe “madre”, li può modificare e può aggiungerne altri.
  4. polimorfismo: si possono avere metodi con lo stesso nome, ma che hanno parametri diversi (si chiama anche overloading). Si noti, però, che Swarm non permette il polimorfismo. I metodi creati devono dunque avere nomi unici.

Programmazione ad oggetti: Caratteristiche dei linguaggi ad oggetti

Conclusioni

Vi sono alcune particolarità del linguaggio Objective C rispetto agli altri linguaggi di programmazione ad oggetti. Innanzitutto la sintassi che lo contraddistingue è molto simile a quella del linguaggio da cui è originato, e questo ne rende più facile l’avvicinamento per chi già conosce C (o C++, che è un altro linguaggio ad oggetti nato dopo Objective C). Le proprietà degli oggetti descritte precedentemente valgono per Objective C come per tutti gli altri linguaggi ad oggetti, ma usando il linguaggio Objective C, le classi godono della proprietà additiva, e cioè le classi che derivano da altre classi ne ereditano le funzioni ed i metodi.

Le classi sono definite in due differenti file (anche se i compilatori non lo richiedono si segue questa convenzione per mantenere ordine e chiarezza nel codice) che rappresentano aspetti differenti della stessa classe: l’interfaccia che dichiara tutti i metodi e le variabili della classe (estensione .h), e l’implementazione, tramite la quale si definiscono metodi e le variabili della classe (estensione .m). Il file con estensione .h contiene i nomi di tutte le variabili e di tutti i metodi che si intende richiamare nella classe in questione, mentre nel file .m si inseriscono le regole di comportamento dell’oggetto stesso.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *