Objective C

Por Jônatas Lucas e Leonardo Fiuza em 04/05/2011

objc.png?w=303&h=297

Introdução

Objective-C é uma linguagem simples de computador, projetada para permitir uma programação orientada a objetos sotisficada, é derivada do Smalltalk uma das primeiras linguagens orientadas a objetos e é também 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, podem ser compilados também por qualquer sistema operacional suportado pelo gcc, que inclui um compilador Objective-C, já as que utilizam essas bibliotecas podem ser compiladas apenas no Mac OS.

Histórico

Brad começou a estudar 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. Precisando apenas dar suporte a objetos de modo flexível, possuindo um conjunto de bibliotecas funcionais e permitindo 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 pertencente a eles, a Stepstone Corporation.

A primeira publicação oficial falando sobre o Objective-C foi escrita em 1986 no livro de Brad Cox, “Programação Orientada a Objetos, Uma Abordagem Evolutiva”. Nele Brad destacou que o problema é maior está na reusabilidade e não na linguagem.

Nos anos 90, Steve Jobs foi demitido da Apple e fez alguns investimentos. Entre eles, adquiriu parte de uma nova empresa, a NeXT. A NeXT licenciou o Objective-C da StepStone e liberou uma versão própria do compilador e das bibliotecas das linguagens, nas quais a interface do usuário e da estrutura NeXTstep eram baseadas. As ferramentas e a qualidade do sistema operacional fizeram com que a NEXT ocupasse uma parte muito popular do nicho das estações de trabalho.

Na volta de Jobs para a Apple em 1996, foi exigido que a Next fosse comprada, Jobs assumiu a frente dos negócios da Apple e reformulou vários produtos. Entre eles o próprio SO, que estava defasado em relação aos outros. E para ser realizada essa reformulação, a linguagem escolhida foi justamente o Objective C, sendo criado assim o Mac OS X.

Apple_iMac_Leopard_540x324.jpg

Hoje a ObjC é a principal linguagem de programação do Mac OS X, no início ele era um sistema híbrido que juntava as funcionalidades do Mac OS 9 e adicionava novos recursos. E com o ótimo resultado obtido pelo Objective C, foi visto que era uma poderosa linguagem, foi decidido que o ObjC seria linguagem nativa do primeiro iPhone, sendo assim até as versões atuais.

A versão da Apple do ambiente de desenvolvimento NeXtstep com algumas melhorias é chamada de Cocoa. A API Cocoa é baseada em sua maioria na interface de Objetos OpenStep, que é o padrão livre feito pelo projeto GNU. Sendo o mais importante ambiente para o desenvolvimento de aplicações em Objective-c.

Sintaxe

O Objective C foi construído sobre a linguagem C, constituindo-se como um super-conjunto de C, sendo possível compilar qualquer programa C em um compilador de Objective C. A maior parte da sua sintaxe de deriva de C, enquanto os aspectos de orientação a objetos foram inspirados no estilo de passagens de mensagens do Smalltalk. Quem já tem experiência com C ou C++ vai verificar algumas características parecidas, mais ao aprofundar o estudo da linguagem podemos ver que ela tem muitas particularidades.

  • Primeiro Programa em Objective C:
hello.m
#import <stdio.h>

int main( int argc, const char *argv[] ) {
    printf( "hello world\n" );
    return 0;
}

Saida: hello world

Características:

- Você usa # import em vez de #include em Objective-C;
- A extensão de arquivo padrão para Objective-C é. M;
- Comentários: “//” ou “/* */”

  • Criando Classes:

Ao definir uma nova classe dizemos ao compilador algumas coisas: Primeiro descriminamos a origem da classe, ou seja quem é a sua superclasse, utilizando para isso a descrição “@interface”, cujo o formato mais comum é:

@interface NomeDaClasse: NomeDaSuperClasse
{
        Declaração-de-variáveis;
}

Declaração-de-métodos;

@end

Pra declararmos um método é preciso apenas definirmos o seu nome e acompanha-lo com seu código entre chaves “{}”.

E após a declaração dos métodos podemos colocar o programa para rodar na rotina do método main que indica onde o programa deve iniciar sua execução, como vimos o exemplo do “hello world”. Lembrando que o método main deve sempre retornar um numero inteiro ao sistema para especificar que está terminando a sua execução.

simulator.jpg

Ambiente de programação

Como em toda linguagem de programação moderna é preciso de um editor e um compilador. Muitos SOs da Apple já vem com eles inclusos gratuitamente no sistema, se não estiverem instalados no MacOS X, é preciso instalar os “Developer Tolls” gratuitos disponibilizados pela Apple. O “Develloper Tolls” dispõe do compilador gcc e um ambiente de programação muito eficiente próprio, o Xcode.

Para compilar programas no Mac OS utilizando o Xcode, é preciso criar um novo projeto do tipo “Cocoa Aplication” e sobrescrever o método main que é criado automaticamente.

No Linux é preciso instalar o GCC se não já tiver, e utilizar algum editor de texto nativo do Linus como o vi, pico, emacs e etc… Ou você pode instalar algum ambiente de programação próprio como o KDevelop ou as ferramentas GNUStep.

Se quiser utilizar o Objective c no Windows é preciso instalar o compilador que acompanha o sistema MinGW ou o compilador Cygwin. E para escrever os códigos só é usar qualquer editor de texto, au algum abiente de programação e salvar o código com a extensão “.m”.
Para compilar o programa escrito em Objective , tanto no Mac OS, Linux ou Windows, usando a linha de comando é preciso utilizar o gcc, cujo o formato de de chamada é:

gcc arquivos.m -o nome_do_programa -l objc

Detalhando:

  • gcc: Indica que usaremos o compilador gcc
  • arquivos.m: nome do arquivo do 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.

Relacão com a disciplina de Compiladores

No que diz respeito a linguagem , Objective C, trata-se de uma sub-linguagem da linguagem C além de elementos da linguagem Smalltalk, por ser hibrida de duas linguagem com paradigmas diferentes é difícil de ser classificada.

Estes podem, inicialmente, parecem estar em conflito estilos de programação, mas na prática há uma separação clara entre os dois. A linguagem do núcleo C é utilizada para codificar o fluxo de controle de um programa e o Smalltalk usada para definir e trabalhar com tipos de dados abstratos. O resultado é que o programa escrito tem os benefícios de flexibilidade do Smalltalk e a velocidade de velocidade de execução do C.

A linguagem foi escrita especificamente pra trabalhar com o MacOS e adaptada para Linux e posteriormente podendo ser rodada no Windows mais sem todas as funcionalidades, tudo isso graças a arquitetura dos compiladores Front-end e Back-end, que facilita essa transição de plataforma.

Extra

  • Hello World - em Objective-C:

  • Video Aula ensinando Instanciação de Objetos e a Chamada métodos com Objecive-C:

Referências

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License