Você está na página 1de 7

UNIVERSIDADE FEDERAL DE PERNAMBUCO

CENTRO DE INFORMTICA
PARADIGMAS DE LINGUAGENS COMPUTACIONAIS

BRUNO EDSON MARTINS DE ALBUQUERQUE FILHO


MARCELO RODRIGUES NUNES MENDES
PABLO DE SANTANA BARBOSA

OBJECT PASCAL

Trabalho apresentado sobre


a histria e caractersticas
da linguagem Object Pascal
aos professores Hermano
Perrelli e Luis Menezes.

Recife, 20 de maio de 2004.

OBJECT PASCAL
1. Introduo
Nas pginas a seguir descreveremos resumidamente a linguagem Object Pascal. No
poderamos, no entanto, deixar de falar um pouco sobre o ambiente de desenvolvimento
integrado (IDE) Delphi. Como veremos no restante deste artigo, h uma relao muito
estreita entre essa linguagem e o IDE. O nosso objetivo aqui dar uma viso geral dessa
linguagem, procurando dar nfase nas origens dela. O artigo comea com a descrio da
origem da linguagem Object Pascal (e do Delphi). A seguir veremos caractersticas que
tornam essa linguagem to diferente da conhecida linguagem estruturada Pascal. Depois
falaremos sobre a especificao e a utilizao da Object Pascal.

2. Origem
2.1 Pascal e Object Pascal
Pascal foi definida em 1970 pelo Prof. Niklaus Wirth do Swiss Federal Institute of
Technology (Zurich), como extenso do ALGOL (linguagem de programao voltada para
computao cientfica). Em um congresso em Zurich, um comit internacional designou o
ALGOL como uma linguagem independente de plataforma. Isto deu mais liberdade para as
caractersticas que eles poderiam colocar na linguagem, mas tambm tornou mais difcil a
escrita de compiladores para ela. A carncia de compiladores em muitas plataformas,
combinada com sua carncia de ponteiros e muitos tipos de dados bsicos tais como
caracteres, fez com que ALGOL no fosse amplamente aceito, o que fez com que essa
linguagem acabasse quase totalmente abandonada, exceto como linguagem para descrio
de algoritmos.
A especificao formal de Pascal foi publicada em 1971. O nome da linguagem foi
dado em homenagem ao filsofo e matemtico francs Blaise Pascal que inventou uma
mquina de calcular mecnica. Pascal bastante orientado a dados, dando ao programador
a capacidade de definir tipos de dados personalizados. Com esta liberdade veio a rgida
checagem de tipos, que garantiu que tipos no se misturariam. Pascal pretendia ser uma
linguagem educacional, e foi amplamente adotada como tal. Pascal de escrita mais livre,
diferente de FORTRAN, assim os estudantes no tinham que se preocupar com formatao.
Alm disso, Pascal se parece muito com uma linguagem natural, tornando muito fcil o
entendimento do cdigo escrito com ele.
Object Pascal a extenso orientada a objetos da linguagem Pascal que foi
desenvolvida pela Apple em parceria com Wirth, inventor de Pascal. Ela descende de uma
tentativa anterior de produzir uma verso orientada a objetos de Pascal, chamada ClasCal,
que foi inicialmente utilizada nos computadores Lisa da Apple. Na realidade existiram
poucas modificaes na sintaxe de Object Pascal em relao a Pascal. Um novo tipo de
dados foi adicionado, o objeto. Em adio, possvel especificar uma lista de
procedimentos e funes, referenciados como mtodos, para um tipo de objeto particular.
Estes mtodos definem as aes que aquele objeto deste tipo pode realizar. Como
adiantamos na introduo essa linguagem tem uma estreita relao com o IDE Delphi,

entenderemos como isso ocorre na prximo seo onde descreveremos de maneira breve a
histria da evoluo do Turbo Pascal ao Delphi.
2.2 Borland Pascal
Com o lanamento, em novembro de 1983, do Turbo Pascal 1.0, a Borland iniciou
sua jornada no mundo das Ferramentas e ambientes de desenvolvimento. Na criao do
Turbo Pascal a Borland licenciou um ncleo de compilador, desenvolvido por Anders
Hejlsberg, mais rpido e barato que os existentes na poca. Turbo Pascal introduziu um
ambiente de desenvolvimento integrado (IDE), onde era possvel editar o cdigo, executar
o compilador, observar os erros e voltar para as linhas que contm esses erros. O
compilador Turbo Pascal foi um dos mais vendidos em todos tempos, o que tornou a
linguagem popular em PCs.
2.3 Delphi
Delphi foi uma proposta da Borland para uma nova gerao de ambiente de
desenvolvimento visual para Windows, baseado na linguem de programao Object Pascal.
Aps o desenvolvimento de Turbo Pascal 1.0, Anders se tornou o arquiteto de todas as
verses do compilador Turbo Pascal e das primeiras trs verses de Delphi. Como arquiteto
chefe da Borland, Hejlsberg secretamente tornou Turbo Pascal numa aplicao de
desenvolvimento de linguagem orientada a objeto, completa e com um ambiente realmente
visual com suporte para acesso a banco de dados, assim se originou o Delphi.
Histria do Delphi
Tudo comeou com a primeira verso do Delphi. Na poca, a estratgia baseada em
formulrios e orientada a objetos, o compilador extremamente rpido, o timo suporte a
banco de dados, a ntima integrao com a programao Windows e a tecnologia de
componentes atraram a ateno da comunidade de desenvolvedores de software. O
elemento, mais importante desse produto, no entanto, era a sua linguagem, Object Pascal, a
fundao de todo o resto. O Delphi 2 apresentou novas caractersticas, como: objetos de
mltiplos registros, suporte automao OLE, o tipo de dados variante, um suporte e uma
integrao melhores com o Windows 95, o tipo de dados string longa e a herana visual de
formulrios. O Delphi 3 incluiu a tecnologia de viso de cdigo, o suporte depurao
DLL, os modelos de componentes, o TeeChart, o Decision Cube, a tecnologia WebBroker,
os pacotes de componentes, os ActiveForms e uma grande integrao com o COM. O
Delphi 4 incluiu o editor AppBrowser, novos recursos do Windows 98, melhor suporte a
OLE e COM, componentes de bancos de dados estendidos e muitas adies e melhorias nas
classes bsicas da VCL. O Delphi 5 incluiu mais aperfeioamentos ao IDE, suporte
estendido a bancos de dados (com os conjuntos de dados especficos ADO e Interbase),
uma verso melhorada do MIDAS com suporte Internet, a ferramenta de controle de
verso TeamSource, capacidades de converso, o conceito de quadros e componentes
novos. O Delphi 6 adicionou todo esse suporte a recursos para o desenvolvimento
independente de plataforma com a CLX, uma biblioteca de tempo de execuo estendida, o
mecanismo de bancos de dados dbExpress, servios da Web, mais aperfeioamentos no

IDE e muitas classes e componentes. Por fim, chegamos ao Delphi 7. Essa verso tornou
mais robustas algumas dessas novas tecnologias com aperfeioamentos e correes (como
por exemplo, no SOAP e no DataSnap) alm de oferecer suporte a tecnologias mais
recentes (como os temas do Windows XP e UDDI). Outra novidade o fato de pela
primeira vez, a Borland fornecer um compilador que no vise o processador Intel, mas sim
a plataforma CIL do .NET.
Como podemos ver, o Delphi possui muitos recursos, e apesar de ser uma tima
ferramenta e, at certo ponto, simples de usar, trata-se de um ambiente complexo de
programao que envolve muitos elementos. O leitor iniciante pode at ficar assustado com
tantas siglas e tantas tecnologias envolvidas. No entanto, no restante do texto, procuramos
fazer uma introduo s principais caractersticas da programao Delphi, focando
principalmente na orientao a objetos. Para maiores detalhes, consultar as referncias no
final desse artigo.

3. Caractersticas
A linguagem Object Pascal possui muitas semelhanas com a linguagem Pascal.
Basicamente a estrutura bsica da sintaxe no foi modificada. No entanto, h uma mudana
radical no paradigma da linguagem Object Pascal: A essa linguagem foram acrescentadas
caractersticas orientadas a objeto que mudam radicalmente o estilo de programao. Aqui
sero analisadas justamente essas novas caractersticas. No ser, portanto, discutido nesse
documento a parte bsica da linguagem, vinda de Pascal.
Podemos citar as seguintes caractersticas como as mais importantes extenses que
foram acrescentadas linguagem Pascal para obter a linguagem Object Pascal:
1. Definio 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 obteno de
encapsulamento so as propriedades.
3. Herana
4. Polimorfismo (Dynamic Binding) o mtodo a ser chamado conhecido apenas em
tempo de execuo, dependendo do tipo do objeto para o qual o mtodo foi
chamado. Obtemos polimorfismo com o uso das palavras reservadas virtual (ou
dynamic) e override.
5. Mtodos abstratos. Uma caracterstica interessante de Object Pascal que, ao
contrrio da maioria das outras linguagens orientadas a objeto, permitido criar
instncias de classes com mtodos abstratos (embora no seja permitido chamar tais
mtodos, o que geraria uma exceo).
6. Excees O mecanismo de excees de Object Pascal baseia-se em quatro
palavras reservadas: try, except, finally, raise.
7. Suporte a Multithreading.

4. Implementao
Aplicaes em Delphi so compostas por um arquivo de projeto (.DPR), Forms e
Units. Um Form uma janela na qual podem ser acrescentados componentes de interface

grfica. Uma Unit um arquivo do tipos .PAS, que guarda o cdigo das Forms ou a
definio de tipos e funes.

4.1 Estrutura Geral de uma Unit


Uma Unit se divide em duas sees:
- Seo de Interface: aqui esto variveis e definies de tipos. Essa a parte visvel da
Unit s outras Units. Tipos definidos aqui podem ser usados em qualquer outra Unit que a
utilize (por meio da clusula uses).
- Seo de Implementao: Essa seo s acessada de dentro da prpria Unit. Nela esto
as definies (implementaes) das funes e procedimentos declarados na seo de
interface.
*obs. Em Object Pascal duas ou mais classes podem ser definidas na mesma Unit. Como os
especificadores de acesso restringem o acesso apenas a cdigo fora da Unit, se mais de uma
classe for definida na mesma Unit, uma poder acessar livremente a implementao da
outra, independentemente dos modificadores de acesso.

4.2 A RTL e a biblioteca de classes do Delphi


Muitos recursos que os programadores Delphi tm sua disposio vm da RTL
(Run Time Library Biblioteca de Tempo de Execuo) da linguagem Object Pascal. Essa
biblioteca contm uma srie de funes teis agrupadas em Units.
O real poder da programao visual do Delphi, no entanto, est na sua enorme
biblioteca de classes. Nela encontramos centenas de classes, com milhares de mtodos.
Essas classes podem ser usadas diretamente no cdigo pelo programador ou
implicitamente, no projetista visual de formulrios. Hoje, a biblioteca est dividida em
RTL, mencionada anteriormente, que contm classes e componentes no visuais, VCL
(Visual Component Library), que abriga os componentes visuais clssicos do Windows e a
CLX (Component Library for Cross-Platform), que contm componentes para vrias
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 referncia na construo 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 polimorfismo
e herana. O programa composto basicamente de quatro arquivos: o arquivo de projeto
(.DPR), o arquivo de definio de tipos (.PAS) e os arquivos de definio do Form (.PAS
e .DFM). S mostraremos dois deles que descrevem bem o que queremos mostrar. O
exemplo completo fornecido em anexo.

// Arquivo AbstractAnimals.dpr
program AbstractAnimals;

uses
Forms,
AnimF in 'AnimF.pas' {FormAnimals},
Anim in 'Anim.pas';
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TFormAnimals, FormAnimals);
Application.Run;
end.

// Arquivo Anim.pas
unit Anim;
interface
type
TAnimal = class
public
constructor Create;
function GetKind: string;
function Voice: string; virtual;
abstract;
private
Kind: string;
end;
TDog = class (TAnimal)
// Herana
public
constructor Create;
function Voice: string; override;
function Eat: string; virtual;
end;
TCat = class (TAnimal)
// Herana
public
constructor Create;
function Voice: string; override;
function Eat: string; virtual;
end;
implementation
uses
MMSystem;
constructor TAnimal.Create;
begin
Kind := 'An animal';
end;

function TAnimal.GetKind: string;


begin
GetKind := Kind;
end;
constructor TDog.Create;
begin
Kind := 'A dog';
end;
function TDog.Voice: string;
begin
Voice := 'Arf Arf';
PlaySound ('dog.wav', 0,
snd_Async);
end;
function TDog.Eat: string;
begin
Eat := 'A bone, please!';
end;
constructor TCat.Create;
begin
Kind := 'A cat';
end;
function TCat.Voice: string;
begin
Voice := 'Mieow';
PlaySound ('cat.wav', 0,
snd_Async);
end;
function TCat.Eat: string;
begin
Eat := 'A mouse, please!';
end;
end.

*Vale ressaltar o fato mencionado anteriormente de que, ao chamar um mtodo abstrato,


(nesse caso voice da classe TAnimal) ocorrer uma exceo.

5. Utilizao
Object Pascal utilizado em dois ambientes de desenvolvimento, Delphi, para o
sistema operacional Windows e Kylix, para Unix e nestes ambientes possvel desenvolver
aplicaes que necessitem da orientao a objetos.
No ambiente Delphi, por ser baseada em formulrios, compilvel, suportar acesso a
banco de dados e conter vrias bibliotecas na plataforma Windows, que a mais utilizada,
torna-se mais simples desenvolver aplicaes que possuam interface grfica com usurio
(GUI Grafic User Interface). Dessa forma, utilizada, dentre outras, em aplicaes em
desktop, na web e principalmente em banco de dados.

6. Referncias Bibliogrficas
1. Sonnino, Bruno Desenvolvendo Aplicaes 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.com
5. http://www.mactech.com/articles/mactech/Vol.02/02.12/ObjectPascal/

Você também pode gostar