Você está na página 1de 4

OBJECTIVE-C

Introdução

O Objective C ou ObjC, é uma linguagem orientada a objetos derivada do Smalltalk e C. Sendo


apenas um conjunto de adições à linguagem C, dando ao C suporte à construções orientadas a
objetos como as da Smalltalk.

Atualmente, é utilizada principalmente no Mac OS X e GNUstep, que são dois ambientes


inspirados no padrão OpenStep sendo a principal linguagem utilizada nos aplicativos
estruturais NeXTSTEP, OPENSTEP e Cocoa.

Programas escritos em Objective-C que não utilizam nenhuma das bibliotecas Cocoa,
OpenStep e NeXTSTEP, também podem ser compilados por qualquer sistema operacional
suportado pelo gcc, que inclui um compilador Objective-C.

Histórico

Brad teve seu interesse despertado por problemas de reusabilidade de projetos software e
programação. Para demonstrar que uma melhora satisfatória podia ser feita, Cox provou que
componentes de software necessitavam apenas de umas poucas mudanças práticas nas
ferramentas existentes. Especificamente, eles precisavam dar suporte a objetos de modo
flexível, possuir um conjunto de bibliotecas funcionais e permitir que fossem empacotados
num único formato multiplataforma. E então em meados da década de 80, junto com Tom
Love ele criou a linguagem Objective C baseado nos seus estudos, na Empresa que pertencia a
eles, a Stepstone Corporation.

A principal descrição do Objective-C em sua forma original foi publicada no livro de Cox,
Object-Oriented Programming, An Evolutionary Approach, de 1986. O autor teve o cuidado de
ressaltar que o problema é mais da reusabilidade do que da linguagem, embora, apesar disso,
o sistema freqüentemente seja comparado numa base característica-por-característica com
outras linguagens.

Nos anos 90, Steve Jobs foi demitido da Apple e fez alguns investimentos. Entre eles, adquiriu
parte de uma nova empresa, a NeXT. Em 1988, a NeXT licenciou o Objective-C da StepStone e
liberou sua própria versão do compilador e das bibliotecas da linguagem nas quais a interface
do usuário e da estrutura NeXTstep eram baseadas. O sucesso das ferramentas e a qualidade
do sistema operacional resultante ajudaram a NeXT a ocupar um nicho de provedor de
workstations bastante popular.

Esta empresa desenvolveu uma linguagem para trabalhar com workstations gráficas, no caso a
Objective-C.

O projeto GNU começou a trabalhar em seu clone livre do NeXTStep baseado no padrão
OpenStep, o GNUstep. Dennis Glatting escreveu o primeiro runtime do gnu-objc em 1992, e
Richard Stallman criou o segundo pouco depois. O runtime do GNU Objective-C que tem
estado em uso desde 1993 é aquele desenvolvido por Kresten Krab Thorup, quando ele era
estudante universitário na Dinamarca. Kresten também trabalhou para a NeXT por algum
tempo.

Uma das condições para a volta de Jobs para a Apple em 1996 foi que a NeXT fosse comprada,
e isto foi feito. Como Jobs assumiu a frente dos negócios da Apple, ele decidiu reformular
vários produtos. E um deles foi o próprio sistema operacional, que estava bastante defasado.
Para esta árdua tarefa, a linguagem escolhida para dar suporte ao novo sistema operacional foi
Objective-C. Assim nasceu o Mac OS X.

Atualmente Objective-C é utilizada como a principal linguagem de programação do MacOS X,


que é baseado no NeXTstep. Nas primeiras versões, o Mac OS X era um sistema híbrido, usava
funcionalidades do sistema antigo (Mac OS 9) junto com os novos recursos. Como Objective-C
se mostrou uma linguagem poderosa, quando foi lançado o primeiro iPhone, decidiu-se adotar
ObjC como linguagem nativa do dispositivo. A versão da Apple do ambiente
NeXTStep/GNUStep com adições é denominada Cocoa.

A maior parte da presente API Cocoa da Apple está baseada na interface de objetos OpenStep,
e este é o mais significativo ambiente Objective-C sendo usado para desenvolvimento ativo.

Sintaxe

O Objective-C é uma camada muito fina construída sobre a linguagem C e constitui-se num
superconjunto estrito de C. Ou seja, é possível compilar qualquer programa C com um
compilador Objective-C. O Objective-C deriva sua sintaxe tanto do C quanto do Smalltalk. A
maior parte de sua sintaxe (incluindo pré-processamento, expressões, declaração e chamadas
de funções) foi herdada da linguagem C, enquanto a sintaxe para os aspectos orientados a
objetos foi criada para habilitar passagem de mensagens no estilo Smalltalk.

Objective-C suporta polimorfismo, posing, categorias, e é uma linguagem dinâmica, com typing
e binding dinâmicos. Com Objective-C você pode adicionar classes e categorias em tempo de
execução de forma fácil. E tudo isso com uma sintaxe de mensagem simples e elegante: olhe
os títulos destas subseções e você já saberá como conversar com os objetos!

Objective-C realiza chamadas de mensagem dinâmicas rapidamente, entre 1,5 e 2,0 vezes o
tempo de uma chamada de função em C.

 Detalhamento da sintaxe:

Todas as linhas que iniciam por “//” são linhas de comentários. Estas são ignoradas, logo é
permitido escrever qualquer coisa após as duas barras. Comentários são utilizados para
documentar um programa, facilitando sua compreensão.

Outra forma de inserir comentários em programas Objective-C é utilizar os caracteres “/*” no


início do comentário e “*/” no final; desta forma pode-se criar blocos de comentário com
muitas linhas, sem que seja necessário escrever “//” a cada linha nova.

As linhas iniciadas por “#” são diretrizes de pré-processamento. No programa acima utilizamos
“#import <…>”, que diz para o compilador localizar, processar e importar informações como os
arquivos “stdio.h” e “objc/Object.h”, ambos arquivos do sistema, que contém informações
diversas. Entre elas a rotina “printf” e a classe “Object”.

Quando nós definimos uma nova classe é necessário dizer ao compilador algumas coisas. A
primeira delas é falar de onde a classe vem, ou seja quem é a sua superclasse. Utilizamos para
isso a seção “@interface”, cujo formato geral é:

@interface NomeDaClasse: NomeDaSuperClasse


{
Declaração-de-variáveis;
}

Declaração-de-métodos;

@end

A definição de um método nada mais é do que sua declaração sem o caractere “;”
acompanhada por seu código, que é colocado entre chaves “{” e “}”.

E depois da declaração dos métodos pode ser colocado o programa pra rodar na rotina do
main que indica precisamente onde o programa deve iniciar sua execução. Ela inicia com a
palavra “int”, especificando que “main” deve retornar um valor inteiro ao sistema quando
terminar sua execução. As palavras que aparecem entre parêntesis “()” servem para lidar com
argumentos passados pela linha de comando.

Ambiente de programação

Para programar em Objective-C, tal como em qualquer outra linguagem moderna, você precisa
de um editor e um compilador. Ambos estão disponíveis gratuitamente em muitos dos
sistemas operacionais atuais. No MacOS X, você deve instalar os “Developer Tools” gratuitos
da Apple, caso eles não estejam presentes no seu sistema. Essas ferramentas incluem dentre
muitas outras coisas o compilador gcc e um ambiente de programação extremamente
eficiente, denominado Xcode.

No Linux você já deve ter o gcc instalado, bem como muitos editores de texto (vi, pico, emacs).
Você tambem pode utilizar algum ambiente de programação, como o KDevelop ou
ferramentas GNUStep.

No Windows você pode instalar o compilador Objective-C que acompanha o sistema MinGW
(http://www.mingw.org). Para escrever os códigos, qualquer editor de texto puro, como o
Notepad, ou algum ambiente de programação devem servir.

Nos três sistemas, compilar um programa utilizando a linha de comando resume-se ao gcc
(para projetos maiores costuma-se utilizar ferramentas como make, automake, etc), cujo
formato geral de chamada é:

gcc arquivos.m -o nome_do_programa -l objc

Detalhando:

 gcc: Indica que quero usar o compilador gcc


 arquivos.m: é o arquivo com o programa
 -o : vem de output, indica qual nome o arquivo executável vai ter
 -l objc: O -l vem de library (biblioteca) -lobjc indica que usaremos as bibliotecas do
objective-c para compilar o nosso programa.

Os arquivos de código da linguagem Objective-C possuem sufixo “.m”, enquanto que os


cabeçários possuem, como em C, sufixo “.h”.

Por algum motivo alguem na FSF não parece gostar muito de uma diretriz de pré-
processamento (mais sobre isso depois) do Objetive-C denominada “#import”, que serve para
substituir “#include” de forma a não ser necessário escrever “#ifndef #define #endif” para não
incluir o mesmo arquivo várias vezes, e com isso as versões do gcc utilizadas em computadores
com Linux e Windows dão “Warnings” na hora de compilar. Para acabar com esse problema,
utilize a chamada do gcc com “-Wno-import”. Computadores com o gcc fornecido pela Apple
não sofrem desse problema.

Para compilar programas utilizando o Xcode da Apple você deve criar um novo projeto do tipo
“Cocoa Application” e sobrescrever o arquivo “main.m” que será criado automaticamente.

Para gerar o executável deve-se utilizar um compilador, no caso o gcc, e como visto
anteriormente sua chamada.

Você também pode gostar