Sie sind auf Seite 1von 6

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

!i" de 200#$

OBJECT PASCAL
%$ I&'("d)*+"
Nas p ginas a seguir descre!eremos resumidamente a linguagem Object Pascal. N"o poderamos# no entanto# dei$ar de falar um pouco sobre o ambiente de desen!ol!imento integrado %&'() 'elphi. *omo !eremos no restante deste artigo# h uma rela+"o muito estreita entre essa linguagem e o &'(. O nosso objeti!o a,ui - dar uma !is"o geral dessa linguagem# procurando dar .nfase nas origens dela. O artigo come+a com a descri+"o da origem da linguagem Object Pascal %e do 'elphi). / seguir !eremos caractersticas ,ue tornam essa linguagem t"o diferente da conhecida linguagem estruturada Pascal. 'epois falaremos sobre a especifica+"o e a utiliza+"o da Object Pascal.

2$ O(i,e
2$% P!-c!. e O/0ec' P!-c!. Pascal foi definida em 0123 pelo Prof. Ni4laus 5irth do 67iss 8ederal &nstitute of Technolog9 %:urich)# como e$tens"o do /L;OL %linguagem de programa+"o !oltada para computa+"o cientfica). (m um congresso em :urich# um comit. internacional designou o /L;OL como uma linguagem independente de plataforma. &sto deu mais liberdade para as caractersticas ,ue eles poderiam colocar na linguagem# mas tamb-m tornou mais difcil a escrita de compiladores para ela. / car.ncia de compiladores em muitas plataformas# combinada com sua car.ncia de ponteiros e muitos tipos de dados b sicos tais como caracteres# fez com ,ue /L;OL n"o fosse amplamente aceito# o ,ue fez com ,ue essa linguagem acabasse ,uase totalmente abandonada# e$ceto como linguagem para descri+"o de algoritmos. / especifica+"o formal de Pascal foi publicada em 0120. O nome da linguagem foi dado em homenagem ao filsofo e matem tico franc.s <laise Pascal ,ue in!entou uma m ,uina de calcular mec=nica. Pascal - bastante orientado a dados# dando ao programador a capacidade de definir tipos de dados personalizados. *om esta liberdade !eio a rgida checagem de tipos# ,ue garantiu ,ue tipos n"o se misturariam. Pascal pretendia ser uma linguagem educacional# e foi amplamente adotada como tal. Pascal - de escrita mais li!re# diferente de 8O>T>/N# assim os estudantes n"o tinham ,ue se preocupar com formata+"o. /l-m disso# Pascal se parece muito com uma linguagem natural# tornando muito f cil o entendimento do cdigo escrito com ele. Object Pascal - a e$tens"o orientada a objetos da linguagem Pascal ,ue foi desen!ol!ida pela /pple em parceria com 5irth# in!entor de Pascal. (la descende de uma tentati!a anterior de produzir uma !ers"o orientada a objetos de Pascal# chamada ClasCal# ,ue foi inicialmente utilizada nos computadores Lisa da /pple. Na realidade e$istiram poucas modifica+?es na sinta$e de Object Pascal em rela+"o a Pascal. @m no!o tipo de dados foi adicionado# o objeto. (m adi+"o# A poss!el especificar uma lista de procedimentos e fun+?es# referenciados como m-todos# para um tipo de objeto particular. (stes m-todos definem as a+?es ,ue a,uele objeto deste tipo pode realizar. *omo adiantamos na introdu+"o essa linguagem tem uma estreita rela+"o com o &'( 'elphi# entenderemos como isso ocorre na pr$imo se+"o onde descre!eremos de maneira bre!e a histria da e!olu+"o do Turbo Pascal ao 'elphi. 2$2 B"(.!&d P!-c!. *om o lan+amento# em no!embro de 01BC# do Turbo Pascal 0.3# a <orland iniciou sua jornada no mundo das 8erramentas e ambientes de desen!ol!imento. Na cria+"o do Turbo Pascal a <orland

licenciou um nDcleo de compilador# desen!ol!ido por /nders Hejlsberg# mais r pido e barato ,ue os e$istentes na -poca. Turbo Pascal introduziu um ambiente de desen!ol!imento integrado %&'()# onde era poss!el editar o cdigo# e$ecutar o compilador# obser!ar os erros e !oltar para as linhas ,ue cont-m esses erros. O compilador Turbo Pascal foi um dos mais !endidos em todos tempos# o ,ue tornou a linguagem popular em P*Es. 2$1 De.23i 'elphi foi uma proposta da <orland para uma no!a gera+"o de ambiente de desen!ol!imento !isual para 5indo7s# baseado na linguem de programa+"o Object Pascal. /ps o desen!ol!imento de Turbo Pascal 0.3# /nders se tornou o ar,uiteto de todas as !ers?es do compilador Turbo Pascal e das primeiras tr.s !ers?es de 'elphi. *omo ar,uiteto chefe da <orland# Hejlsberg secretamente tornou Turbo Pascal numa aplica+"o de desen!ol!imento de linguagem orientada a objeto# completa e com um ambiente realmente !isual com suporte para acesso a banco de dados# assim se originou o 'elphi. Hi-'4(i! d" De.23i Tudo come+ou com a primeira !ers"o do 'elphi. Na -poca# a estrat-gia baseada em formul rios e orientada a objetos# o compilador e$tremamente r pido# o timo suporte a banco de dados# a ntima integra+"o com a programa+"o 5indo7s e a tecnologia de componentes atraram a aten+"o da comunidade de desen!ol!edores de soft7are. O elemento# mais importante desse produto# no entanto# era a sua linguagem# Object Pascal# a funda+"o de todo o resto. O 'elphi F apresentou no!as caractersticas# comoG objetos de mDltiplos registros# suporte H automa+"o OL(# o tipo de dados !ariante# um suporte e uma integra+"o melhores com o 5indo7s 1I# o tipo de dados string longa e a heran+a !isual de formul rios. O 'elphi C incluiu a tecnologia de !is"o de cdigo# o suporte H depura+"o 'LL# os modelos de componentes# o Tee*hart# o 'ecision *ube# a tecnologia 5eb<ro4er# os pacotes de componentes# os /cti!e8orms e uma grande integra+"o com o *OM. O 'elphi J incluiu o editor /pp<ro7ser# no!os recursos do 5indo7s 1B# melhor suporte a OL( e *OM# componentes de bancos de dados estendidos e muitas adi+?es e melhorias nas classes b sicas da K*L. O 'elphi I incluiu mais aperfei+oamentos ao &'(# suporte estendido a bancos de dados %com os conjuntos de dados especficos /'O e &nterbase)# uma !ers"o melhorada do M&'/6 com suporte H &nternet# a ferramenta de controle de !ers"o Team6ource# capacidades de con!ers"o# o conceito de ,uadros e componentes no!os. O 'elphi L adicionou todo esse suporte a recursos para o desen!ol!imento independente de plataforma com a *LM# uma biblioteca de tempo de e$ecu+"o estendida# o mecanismo de bancos de dados db($press# ser!i+os da 5eb# mais aperfei+oamentos no &'( e muitas classes e componentes. Por fim# chegamos ao 'elphi 2. (ssa !ers"o tornou mais robustas algumas dessas no!as tecnologias com aperfei+oamentos e corre+?es %como por e$emplo# no 6O/P e no 'ata6nap) al-m de oferecer suporte a tecnologias mais recentes %como os temas do 5indo7s MP e @''&). Outra no!idade - o fato de pela primeira !ez# a <orland fornecer um compilador ,ue n"o !ise o processador &ntel# mas sim a plataforma *&L do .N(T. *omo podemos !er# o 'elphi possui muitos recursos# e apesar de ser uma tima ferramenta e# at- certo ponto# simples de usar# trataNse de um ambiente comple$o de programa+"o ,ue en!ol!e muitos elementos. O leitor iniciante pode at- ficar assustado com tantas siglas e tantas tecnologias en!ol!idas. No entanto# no restante do te$to# procuramos fazer uma introdu+"o Hs principais caractersticas da programa+"o 'elphi# focando principalmente na orienta+"o a objetos. Para maiores detalhes# consultar as refer.ncias no final desse artigo.

1$ C!(!c'e(5-'ic!/ linguagem Object Pascal possui muitas semelhan+as com a linguagem Pascal. <asicamente a estrutura b sica da sinta$e n"o foi modificada. No entanto# h uma mudan+a radical no paradigma da linguagem Object PascalG / essa linguagem foram acrescentadas caractersticas orientadas a objeto ,ue mudam radicalmente o estilo de programa+"o. /,ui ser"o analisadas justamente essas no!as caractersticas. N"o ser # portanto# discutido nesse documento a parte b sica da linguagem# !inda de Pascal. Podemos citar as seguintes caractersticas como as mais importantes e$tens?es ,ue foram acrescentadas H linguagem Pascal para obter a linguagem Object PascalG 1. 'efini+"o de no!os tipos por meio das pala!ras reser!adas type e class. 2. (ncapsulamento O A obtido usando os modificadores de acessoG public# protected e private. Outro recurso poderoso ,ue a linguagem apresenta para a obten+"o de encapsulamento s"o as propriedades. 3. Heran+a 4. Polimorfismo %'9namic <inding) O o m-todo a ser chamado - conhecido apenas em tempo de e$ecu+"o# dependendo do tipo do objeto para o ,ual o m-todo foi chamado. Obtemos polimorfismo com o uso das pala!ras reser!adas virtual %ou dynamic) e override. 5. M-todos abstratos. @ma caracterstica interessante de Object Pascal - ,ue# ao contr 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 tais m-todos# o ,ue geraria uma e$ce+"o). 6. ($ce+?es O O mecanismo de e$ce+?es de Object Pascal baseiaNse em ,uatro pala!ras reser!adasG try# except# finally# raise. 7. 6uporte a Multithreading.

#$ I 2.e e&'!*+"
/plica+?es em 'elphi s"o compostas por um ar,ui!o de projeto %.'P>)# Forms e Units. @m Form - uma janela na ,ual podem ser acrescentados componentes de interface gr fica. @ma Unit - um ar,ui!o do tipos .P/6# ,ue guarda o cdigo das Forms ou a defini+"o de tipos e fun+?es.

#$% E-'()')(! Ge(!. de ) ! U&i'


@ma @nit se di!ide em duas se+?esG N 6e+"o de &nterfaceG a,ui est"o !ari !eis e defini+?es de tipos. (ssa - a parte !is!el da @nit Hs outras @nits. Tipos definidos a,ui podem ser usados em ,ual,uer outra @nit ,ue a utilize %por meio da cl usula PusesE). N 6e+"o de &mplementa+"oG (ssa se+"o s - acessada de dentro da prpria @nit. Nela est"o as defini+?es %implementa+?es) das fun+?es e procedimentos declarados na se+"o de interface. Qobs. (m Object Pascal duas ou mais classes podem ser definidas na mesma @nit. *omo os especificadores de acesso restringem o acesso apenas a cdigo fora da @nit# se mais de uma classe for definida na mesma @nit# uma poder acessar li!remente a implementa+"o da outra# independentemente dos modificadores de acesso.

#$2 A RTL e ! /i/.i"'ec! de c.!--e- d" De.23i

Muitos recursos ,ue os programadores 'elphi t.m H sua disposi+"o !.m da >TL %>un Time Librar9 O <iblioteca de Tempo de ($ecu+"o) da linguagem Object Pascal. (ssa biblioteca cont-m uma s-rie de fun+?es Dteis agrupadas em @nits. O real poder da programa+"o !isual do 'elphi# no entanto# est na sua enorme biblioteca de classes. Nela encontramos centenas de classes# com milhares de m-todos. (ssas classes podem ser usadas diretamente no cdigo pelo programador ou implicitamente# no projetista !isual de formul rios. Hoje# a biblioteca est di!idida em >TL# mencionada anteriormente# ,ue cont-m classes e componentes n"o !isuais# K*L %Kisual *omponent Librar9)# ,ue abriga os componentes !isuais cl ssicos do 5indo7s e a *LM %*omponent Librar9 for *rossNPlatform)# ,ue cont-m componentes para ! rias plataformas.

#$1 U

e6e 2." de 2(",(! ! e

De.23i

O e$emplo a seguir foi tirado do site httpGRR777.marcocantu.comRmd2Rdefault.htm. (sse - o site de um dos li!ros ,ue foi usado como refer.ncia na constru+"o desse artigo. Nele !oc. poder encontrar todos os e$emplos desse li!ro. (scolhemos esse e$emplo# por ser simples# mas ao mesmo tempo demonstrar# dentre outros# os conceitos de polimorfismo e heran+a. O programa - composto basicamente de ,uatro ar,ui!osG o ar,ui!o de projeto %.'P>)# o ar,ui!o de defini+"o de tipos %.P/6) e #unction Animal.&et'in"( string; os ar,ui!os de defini+"o do 8orm %.P/6 e .'8M). 6 mostraremos dois deles ,ue descre!em bem o ,ue RR A(7)i8" A&i $2!begin ,ueremos mostrar. O e$emplo completo - fornecido em ane$o.
unit Anim; inter#ace t$pe Animal A/-'(!c'A&i % class RR A(7)i8" !.-$d2( public program AbstractAnimals; constructor Create; uses#unction &et'in"( string; #unction )oice( string; *irtual; Forms, abstract; AnimF in 'AnimF.pas' {FormAnimals}, pri*ate Anim in 'Anim.pas'; 'in"( string; en"; {$R *.res} &et'in" (% 'in"; en";

constructor +og.Create; begin 'in" (% 'A "og'; en"; #unction +og.)oice( string; begin )oice (% 'Ar# Ar#'; 2la$1oun" ('"og.3a*', 4, sn"5As$nc!; en";

#unction +og./at( string; +og % class ( Animal! ,, -eran.a begin begin public Application.Initialize; /at (% 'A bone, please6'; constructor Create; Application.CreateForm( FormAnimals, FormAnimals!; en"; #unction )oice( string; o*erri"e; Application.Run; en".#unction /at( string; *irtual; constructor Cat.Create; en"; begin 'in" (% 'A cat'; Cat % class ( Animal! ,, -eran.a en"; public constructor Create; #unction Cat.)oice( string; #unction )oice( string; o*erri"e; begin #unction /at( string; *irtual; )oice (% '0ieo3'; en"; 2la$1oun" ('cat.3a*', 4, sn"5As$nc!; implementation en"; uses #unction Cat./at( string; 001$stem; begin /at (% 'A mouse, please6'; constructor Animal.Create; en"; begin 'in" (% 'An animal'; en". en";

QKale ressaltar o fato mencionado anteriormente de ,ue# ao chamar um m-todo abstrato# %nesse caso !oice da classe T/nimal) ocorrer uma e$ce+"o.

9$ U'i.i:!*+"
Object Pascal - utilizado em dois ambientes de desen!ol!imento# 'elphi# para o sistema operacional 5indo7s e S9li$# para @ni$ e nestes ambientes - poss!el desen!ol!er aplica+?es ,ue necessitem da orienta+"o a objetos. No ambiente 'elphi# por ser baseada em formul rios# compil !el# suportar acesso a banco de dados e conter ! rias bibliotecas na plataforma 5indo7s# ,ue - a mais utilizada# tornaNse mais simples desen!ol!er aplica+?es ,ue possuam interface gr fica com usu rio %;@& O ;rafic @ser &nterface). 'essa forma# - utilizada# dentre outras# em aplica+?es em des4top# na 7eb e principalmente em banco de dados.

;$ Refe(<&ci!- Bi/.i",(=fic!0. 6onnino# <runo O 'esen!ol!endo /plica+?es com 'elphi I# M/S>ON <oo4s# F333. F. *antT Marco O 'ominando o 'elphi 2# M/S>ON <oo4s# F33C. C. 5i4ipedia# the free enc9clopedia%httpGRRen.7i4ipedia.orgR7i4iRMainUPage) J. 777.borland.com I. httpGRR777.mactech.comRarticlesRmactechRKol.3FR3F.0FRObjectPascalR

Das könnte Ihnen auch gefallen