object pascal

7
 UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA PARADIGMAS DE LINGUAGENS COMPUTACIONAIS BRUNO EDSON MARTINS DE ALBUQUERQUE FILHO MARCELO RODRIGUES NUNES MENDES PABLO DE SANTANA BARBOSA OBJECT PASCAL Trabalho apresentado sobre a história e características da linguagem Object Pascal aos professores Hermano Perrelli e Luis Menezes. Recife, 20 de maio de 2004.

Upload: luiz-nunes

Post on 11-Jul-2015

42 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Object Pascal

5/11/2018 Object Pascal - slidepdf.com

http://slidepdf.com/reader/full/object-pascal-55a23078e5cfd 1/7

 

UNIVERSIDADE FEDERAL DE PERNAMBUCOCENTRO DE INFORMÁTICA

PARADIGMAS DE LINGUAGENS COMPUTACIONAIS

BRUNO EDSON MARTINS DE ALBUQUERQUE FILHOMARCELO RODRIGUES NUNES MENDES

PABLO DE SANTANA BARBOSA

OBJECT PASCAL

Trabalho apresentado sobrea história e características

da linguagem Object Pascalaos professores HermanoPerrelli e Luis Menezes.

Recife, 20 de maio de 2004.

Page 2: Object Pascal

5/11/2018 Object Pascal - slidepdf.com

http://slidepdf.com/reader/full/object-pascal-55a23078e5cfd 2/7

 

OBJECT PASCAL

1. Introdução Nas páginas a seguir descreveremos resumidamente a linguagem Object Pascal. Não

 poderíamos, no entanto, deixar de falar um pouco sobre o ambiente de desenvolvimentointegrado (IDE) Delphi. Como veremos no restante deste artigo, há uma relação muitoestreita entre essa linguagem e o IDE. O nosso objetivo aqui é dar uma visão geral dessalinguagem, procurando dar ênfase nas origens dela. O artigo começa com a descrição daorigem da linguagem Object Pascal (e do Delphi). A seguir veremos características quetornam essa linguagem tão diferente da conhecida linguagem estruturada Pascal. Depoisfalaremos sobre a especificação e a utilização da Object Pascal.

2. Origem

2.1 Pascal e Object PascalPascal foi definida em 1970 pelo Prof. Niklaus Wirth do Swiss Federal Institute of 

Technology (Zurich), como extensão do ALGOL (linguagem de programação voltada paracomputação científica). Em um congresso em Zurich, um comitê internacional designou oALGOL como uma linguagem independente de plataforma. Isto deu mais liberdade para ascaracterísticas que eles poderiam colocar na linguagem, mas também tornou mais difícil aescrita de compiladores para ela. A carência de compiladores em muitas plataformas,combinada com sua carência de ponteiros e muitos tipos de dados básicos tais comocaracteres, fez com que ALGOL não fosse amplamente aceito, o que fez com que essalinguagem acabasse quase totalmente abandonada, exceto como linguagem para descrição

de algoritmos.A especificação formal de Pascal foi publicada em 1971. O nome da linguagem foidado em homenagem ao filósofo e matemático francês Blaise Pascal que inventou umamáquina de calcular mecânica. Pascal é bastante orientado a dados, dando ao programador a capacidade de definir tipos de dados personalizados. Com esta liberdade veio a rígidachecagem de tipos, que garantiu que tipos não se misturariam. Pascal pretendia ser umalinguagem educacional, e foi amplamente adotada como tal. Pascal é de escrita mais livre,diferente de FORTRAN, assim os estudantes não tinham que se preocupar com formatação.Além disso, Pascal se parece muito com uma linguagem natural, tornando muito fácil oentendimento do código escrito com ele.

Object Pascal é a extensão orientada a objetos da linguagem Pascal que foi

desenvolvida pela Apple em parceria com Wirth, inventor de Pascal. Ela descende de umatentativa anterior de produzir uma versão orientada a objetos de Pascal, chamada ClasCal ,que foi inicialmente utilizada nos computadores Lisa da Apple. Na realidade existiram poucas modificações na sintaxe de Object Pascal em relação a Pascal. Um novo tipo dedados foi adicionado, o objeto. Em adição, É possível especificar uma lista de procedimentos e funções, referenciados como métodos, para um tipo de objeto particular.Estes métodos definem as ações que aquele objeto deste tipo pode realizar. Comoadiantamos na introdução essa linguagem tem uma estreita relação com o IDE Delphi,

Page 3: Object Pascal

5/11/2018 Object Pascal - slidepdf.com

http://slidepdf.com/reader/full/object-pascal-55a23078e5cfd 3/7

 

entenderemos como isso ocorre na próximo seção onde descreveremos de maneira breve ahistória da evolução do Turbo Pascal ao Delphi.

2.2 Borland Pascal

Com o lançamento, em novembro de 1983, do Turbo Pascal 1.0, a Borland iniciousua jornada no mundo das Ferramentas e ambientes de desenvolvimento. Na criação doTurbo Pascal a Borland licenciou um núcleo de compilador, desenvolvido por AndersHejlsberg, mais rápido e barato que os existentes na época. Turbo Pascal introduziu umambiente de desenvolvimento integrado (IDE), onde era possível editar o código, executar o compilador, observar os erros e voltar para as linhas que contém esses erros. Ocompilador Turbo Pascal foi um dos mais vendidos em todos tempos, o que tornou alinguagem popular em PC’s.

2.3 Delphi

Delphi foi uma proposta da Borland para uma nova geração de ambiente dedesenvolvimento visual para Windows, baseado na linguem de programação Object Pascal.Após o desenvolvimento de Turbo Pascal 1.0, Anders se tornou o arquiteto de todas asversões do compilador Turbo Pascal e das primeiras três versões de Delphi. Como arquitetochefe da Borland, Hejlsberg secretamente tornou Turbo Pascal numa aplicação dedesenvolvimento de linguagem orientada a objeto, completa e com um ambiente realmentevisual com suporte para acesso a banco de dados, assim se originou o Delphi.

História do Delphi

Tudo começou com a primeira versão do Delphi. Na época, a estratégia baseada em

formulários e orientada a objetos, o compilador extremamente rápido, o ótimo suporte a  banco de dados, a íntima integração com a programação Windows e a tecnologia decomponentes atraíram a atenção da comunidade de desenvolvedores de software. Oelemento, mais importante desse produto, no entanto, era a sua linguagem, Object Pascal, afundação de todo o resto. O Delphi 2 apresentou novas características, como: objetos demúltiplos registros, suporte à automação OLE, o tipo de dados variante, um suporte e umaintegração melhores com o Windows 95, o tipo de dados string longa e a herança visual deformulários. O Delphi 3 incluiu a tecnologia de visão de código, o suporte à depuraçãoDLL, os modelos de componentes, o TeeChart, o Decision Cube, a tecnologia WebBroker,os pacotes de componentes, os ActiveForms e uma grande integração com o COM. ODelphi 4 incluiu o editor AppBrowser, novos recursos do Windows 98, melhor suporte a

OLE e COM, componentes de bancos de dados estendidos e muitas adições e melhorias nasclasses básicas da VCL. O Delphi 5 incluiu mais aperfeiçoamentos ao IDE, suporteestendido a bancos de dados (com os conjuntos de dados específicos ADO e Interbase),uma versão melhorada do MIDAS com suporte à Internet, a ferramenta de controle deversão TeamSource, capacidades de conversão, o conceito de quadros e componentesnovos. O Delphi 6 adicionou todo esse suporte a recursos para o desenvolvimentoindependente de plataforma com a CLX, uma biblioteca de tempo de execução estendida, omecanismo de bancos de dados dbExpress, serviços da Web, mais aperfeiçoamentos no

Page 4: Object Pascal

5/11/2018 Object Pascal - slidepdf.com

http://slidepdf.com/reader/full/object-pascal-55a23078e5cfd 4/7

 

IDE e muitas classes e componentes. Por fim, chegamos ao Delphi 7. Essa versão tornoumais robustas algumas dessas novas tecnologias com aperfeiçoamentos e correções (como  por exemplo, no SOAP e no DataSnap) além de oferecer suporte a tecnologias maisrecentes (como os temas do Windows XP e UDDI). Outra novidade é o fato de pela primeira vez, a Borland fornecer um compilador que não vise o processador Intel, mas sim

a plataforma CIL do .NET.Como podemos ver, o Delphi possui muitos recursos, e apesar de ser uma ótimaferramenta e, até certo ponto, simples de usar, trata-se de um ambiente complexo de programação que envolve muitos elementos. O leitor iniciante pode até ficar assustado comtantas siglas e tantas tecnologias envolvidas. No entanto, no restante do texto, procuramosfazer uma introdução às principais características da programação Delphi, focando principalmente na orientação a objetos. Para maiores detalhes, consultar as referências nofinal desse artigo.

3. Características

A linguagem Object Pascal possui muitas semelhanças com a linguagem Pascal.Basicamente a estrutura básica da sintaxe não foi modificada. No entanto, há uma mudançaradical no paradigma da linguagem Object Pascal: A essa linguagem foram acrescentadascaracterísticas orientadas a objeto que mudam radicalmente o estilo de programação. Aquiserão analisadas justamente essas novas características. Não será, portanto, discutido nessedocumento a parte básica da linguagem, vinda de Pascal.

Podemos citar as seguintes características como as mais importantes extensões queforam acrescentadas à linguagem Pascal para obter a linguagem Object Pascal:

1. Definição de novos tipos por meio das palavras reservadas type e class.2. Encapsulamento – É obtido usando os modificadores de acesso:  public,  protected e

 private. Outro recurso poderoso que a linguagem apresenta para a obtenção de

encapsulamento são as  propriedades.3. Herança4. Polimorfismo (Dynamic Binding) – o método a ser chamado é conhecido apenas em

tempo de execução, dependendo do tipo do objeto para o qual o método foichamado. Obtemos polimorfismo com o uso das palavras reservadas virtual  (oudynamic) e override.

5. Métodos abstratos . Uma característica interessante de Object Pascal é que, aocontrário da maioria das outras linguagens orientadas a objeto, é permitido criar instâncias de classes com métodos abstratos (embora não seja permitido chamar taismétodos, o que geraria uma exceção).

6. Exceções – O mecanismo de exceções de Object Pascal baseia-se em quatro

 palavras reservadas: try, except ,  finally, raise.7. Suporte a Multithreading .

4. Implementação

Aplicações em Delphi são compostas por um arquivo de projeto (.DPR),  Forms eUnits. Um  Form é uma janela na qual podem ser acrescentados componentes de interface

Page 5: Object Pascal

5/11/2018 Object Pascal - slidepdf.com

http://slidepdf.com/reader/full/object-pascal-55a23078e5cfd 5/7

 

gráfica. Uma Unit  é um arquivo do tipos .PAS, que guarda o código das  Forms ou adefinição de tipos e funções.

4.1 Estrutura Geral de uma Unit

Uma Unit se divide em duas seções:- Seção de Interface: aqui estão variáveis e definições de tipos. Essa é a parte visível daUnit às outras Units. Tipos definidos aqui podem ser usados em qualquer outra Unit que autilize (por meio da cláusula ‘uses’).- Seção de Implementação: Essa seção só é acessada de dentro da própria Unit. Nela estãoas definições (implementações) das funções e procedimentos declarados na seção deinterface.*obs. Em Object Pascal duas ou mais classes podem ser definidas na mesma Unit. Como osespecificadores de acesso restringem o acesso apenas a código fora da Unit, se mais de umaclasse for definida na mesma Unit, uma poderá acessar livremente a implementação daoutra, independentemente dos modificadores de acesso.

4.2 A RTL e a biblioteca de classes do Delphi

Muitos recursos que os programadores Delphi têm à sua disposição vêm da RTL(Run Time Library – Biblioteca de Tempo de Execução) da linguagem Object Pascal. Essa biblioteca contém uma série de funções úteis agrupadas em Units.

O real poder da programação visual do Delphi, no entanto, está na sua enorme biblioteca de classes. Nela encontramos centenas de classes, com milhares de métodos.Essas classes podem ser usadas diretamente no código pelo programador ouimplicitamente, no projetista visual de formulários. Hoje, a biblioteca está dividida emRTL, mencionada anteriormente, que contém classes e componentes não visuais, VCL

(Visual Component Library), que abriga os componentes visuais clássicos do Windows e aCLX (Component Library for Cross-Platform), que contém componentes para várias plataformas.

4.3 Um exemplo de programa em Delphi

O exemplo a seguir foi tirado do site http://www.marcocantu.com/md7/default.htm.Esse é o site de um dos livros que foi usado como referência na construção desse artigo. Nele você poderá encontrar todos os exemplos desse livro. Escolhemos esse exemplo, por ser simples, mas ao mesmo tempo demonstrar, dentre outros, os conceitos de polimorfismoe herança. O programa é composto basicamente de quatro arquivos: o arquivo de projeto

(.DPR), o arquivo de definição de tipos (.PAS) e os arquivos de definição do Form (.PASe .DFM). Só mostraremos dois deles que descrevem bem o que queremos mostrar. Oexemplo completo é fornecido em anexo.

Page 6: Object Pascal

5/11/2018 Object Pascal - slidepdf.com

http://slidepdf.com/reader/full/object-pascal-55a23078e5cfd 6/7

 

// Arquivo AbstractAnimals.dprprogram AbstractAnimals;

usesForms,AnimF in 'AnimF.pas' {FormAnimals},Anim in 'Anim.pas';

{$R *.res}

beginApplication.Initialize;Application.CreateForm(TFormAnimals, FormAnimals);Application.Run;

end.

// Arquivo Anim.pas

unit Anim;

interface

typeTAnimal = classpublicconstructor Create;function GetKind: string;function Voice: string; virtual;

abstract;privateKind: string;

end;

TDog = class (TAnimal) // Herançapublicconstructor Create;function Voice: string; override;function Eat: string; virtual;

end;

TCat = class (TAnimal) // Herançapublicconstructor Create;function Voice: string; override;function Eat: string; virtual;

end;

implementation

usesMMSystem;

constructor TAnimal.Create;beginKind := 'An animal';

end;

function TAnimal.GetKind: string;beginGetKind := Kind;

end;

constructor TDog.Create;beginKind := 'A dog';

end;

function TDog.Voice: string;beginVoice := 'Arf Arf';PlaySound ('dog.wav', 0,

snd_Async);end;

function TDog.Eat: string;beginEat := 'A bone, please!';

end;

constructor TCat.Create;beginKind := 'A cat';

end;

function TCat.Voice: string;beginVoice := 'Mieow';PlaySound ('cat.wav', 0,

snd_Async);end;

function TCat.Eat: string;beginEat := 'A mouse, please!';

end;

end.

Page 7: Object Pascal

5/11/2018 Object Pascal - slidepdf.com

http://slidepdf.com/reader/full/object-pascal-55a23078e5cfd 7/7

 

*Vale ressaltar o fato mencionado anteriormente de que, ao chamar um método abstrato,(nesse caso voice da classe TAnimal) ocorrerá uma exceção.

5. Utilização

Object Pascal é utilizado em dois ambientes de desenvolvimento, Delphi, para osistema operacional Windows e Kylix, para Unix e nestes ambientes é possível desenvolver aplicações que necessitem da orientação a objetos.

 No ambiente Delphi, por ser baseada em formulários, compilável, suportar acesso a banco de dados e conter várias bibliotecas na plataforma Windows, que é a mais utilizada,torna-se mais simples desenvolver aplicações que possuam interface gráfica com usuário(GUI – Grafic User Interface). Dessa forma, é utilizada, dentre outras, em aplicações emdesktop, na web e principalmente em banco de dados.

6. Referências Bibliográficas1. Sonnino, Bruno – Desenvolvendo Aplicações com Delphi 5, MAKRON Books, 2000.2. Cantù Marco – Dominando o Delphi 7, MAKRON Books, 2003.3. Wikipedia, the free encyclopedia(http://en.wikipedia.org/wiki/Main_Page

 

)4. www.borland.com5. http://www.mactech.com/articles/mactech/Vol.02/02.12/ObjectPascal/