Beruflich Dokumente
Kultur Dokumente
Disambig grey.svg Nota: Este artigo é sobre a linguagem de programação. Para outros
significados, veja Pascal.
Pascal
Programação estruturada,
Programação procedural
Compiladores Delphi, Free Pascal, GNU Pascal, MIDletPascal, Palm & Pascal, Turbo Pascal
Influenciou Ada, Component Pascal, Icon, Java, Modula-2, Oberon, Oberon-2, Object
Pascal, Oxygene
Pascal é uma linguagem de programação orientada por objetos, que recebeu este nome em
homenagem ao matemático e físico Blaise Pascal. Foi criada em 1970 pelo suíço Niklaus
Wirth,[2] tendo em mente encorajar o uso de código estruturado.
O próprio Niklaus Wirth diz que a linguagem Pascal foi criada simultaneamente para ensinar
programação estruturada e para ser utilizada na sua fábrica de software. Simultaneamente, a
linguagem reflete a libertação pessoal de Wirth das restrições impostas após seu envolvimento
com a especificação de ALGOL 68, e sua sugestão para essa especificação, o ALGOL W.
Pascal originou uma enorme gama de dialetos, podendo também ser considerada uma família
de linguagens de programação. Grande parte de seu sucesso se deve a criação, na década de
1980, da linguagem Turbo Pascal, inicialmente disponível para computadores baseados na
arquitetura 8086 (com versões para 8080 no seu início).
Pascal é normalmente uma das linguagens de escolha para ensinar programação, junto com
Scheme, C e Fortran. Comercialmente, a linguagem foi sucedida pela criação da linguagem
Object Pascal, atualmente utilizada nos IDEs Embarcadero Delphi (Object Pascal), Kylix e
Lazarus. Academicamente, seus sucessores são as linguagens subsequentes de Niklaus Wirth:
Modula-2[3] e Oberon. A partir da versão 2005, o Delphi passou a se referir a sua linguagem de
programação como Delphi Language.
Assim como a linguagem C, que foi padronizado pela ANSI (ANSI C), o Pascal possui padrões
pela ISO, como o Pascal Standard e o Advanced Pascal.
Índice
1 Implementações
2 Padrões/Normas
3 Sintaxe
4 Exemplos de código
4.3 Repetição
5 Compiladores Gratuitos
6 Referências
7 Ver também
8 Ligações externas
Implementações
Nos anos 80, Anders Hejlsberg desenvolveu o compilador Blue Label Pascal o Nascom-2.
Depois, ele foi trabalhar na Borland e reescreveu seu compilador transformando-o no Turbo
Pascal para a plataforma IBM PC (e também CP/M 80), que era vendido a US$ 49,95, muito
mais barato do que o Blue Label. Uma característica muito importante é que o Turbo Pascal é
uma linguagem compilada, que gera código de máquina real para a arquitetura Intel 8088,
tornando-a muito mais rápida do que as linguagens interpretadas.
Por ser mais barato, o Turbo Pascal passou a ter uma grande influência na comunidade Pascal,
que começou a se concentrar na plataforma IBM PC no fim dos anos 80. Muitos usuários de PC
da época migraram para o Turbo Pascal, em busca de uma linguagem estruturada que não
fosse interpretada, para substituir, por exemplo, o BASIC. Pode se afirmar que o sucesso
comercial de Turbo Pascal foi definitivo para a ampla divulgação da linguagem Pascal.[5]
Outra variante era o Super Pascal, que adicionava labels não numéricas, o comando return e
expressões como nomes de tipos.
Durante os anos 90, compiladores que podiam ser modificados para trabalhar com
arquiteturas diferentes tiveram grande destaque, incluindo nessa lista o Pascal.
O próximo grande passo para a linguagem, foi a implementação da orientação a objeto (OO ou
OOP em inglês) na sua estrutura, começando com a versão 5.5 do Turbo Pascal. Mais tarde, ao
projetar o Delphi, querendo funcionalidades mais elaboradas da orientação a objeto, a Borland
utilizou o conceito Object Pascal criado pela Apple Inc., utilizando-o como base para uma nova
linguagem, que nas versões iniciais era chamado de Object Pascal mas foi rebatizado como
Delphi Programming Language nas versões posteriores. As maiores diferenças em relação às
implementações OO das versões mais antigas foram a adição do conceito de objetos por
referência, construtores, destrutores e propriedades, entre outros.
Padrões/Normas
Em 1983, a linguagem foi padronizada, na norma internacional ISO / IEC 7185, assim como
vários padrões locais específicos de cada país, incluindo a norma americana
ANSI/IEEE770X3.97-1983, e ISO 7185:1983. A diferença entre as duas normas é que a padrão
ISO possui o “nível 1”, extensão do arrays conformantes, enquanto a ANSI não permitiu esta
extensão à linguagem original (versão Wirth). Em 1989, foi revista a ISO 7185 (ISO 7185:1990)
para corrigir vários erros e ambiguidades encontradas no documento original
Em 1990, foi criado uma norma ISO / IEC 10206 padronizando o Pascal. Em 1993, o padrão
ANSI foi substituído com um "ponteiro" para a norma ISO 7185:1990, que termina
efetivamente o seu estatuto como um padrão diferente.
A norma ISO 7185 foi indicada para ser uma clarificação de Wirth da linguagem como
detalhado em 1974 no Manual do Usuário/Utilizador e Relatório [Jensen e Wirth], mas
também foi notável pela inclusão de "Parâmetros de array conformantes" como um nível 1 da
norma, sendo nível 0 Pascal sem Conformantes Arrays.
Note que o próprio Niklaus Wirth se refere à linguagem 1974 como “o padrão”, por exemplo,
para diferenciá-la das características específicas de implementação em nível de máquina do
compilador CDC 6000. Esta linguagem foi documentada em "The Pascal Report", a segunda
parte do "Pascal users manual and report".
As versões da linguagem do IBM-PC começaram a divergir com a vinda da UCSD Pascal, uma
aplicação que implementou várias prorrogações para a linguagem, juntamente com várias
omissões e mudanças. Muitas características da linguagem UCSD sobrevivem atualmente,
inclusive em linguagens Borlands.
Sintaxe
A linguagem Pascal foi criada para incentivar a programação modular e estruturada, facilitando
a criação de procedimentos com baixo acoplamento e alta coesão. Um programa em Pascal é
composto de constantes e variáveis globais, procedimentos e funções re-entrantes e um
programa principal.[6]
Exemplos de código
Nota importante: Os programas foram desenvolvidos com o Turbo Pascal (Borland). Para
funcionarem com outros compiladores, devem ser feitas as seguintes alterações:
A directiva uses desaparece porque é própria do Turbo Pascal, bem como a biblioteca crt
A declaração string passa para array [1..255] of char (supondo que iriam ser usados até 255
caracteres) já que o Pascal não suporta strings nativamente.
As instruções readln para ler cadeias de caracteres, têm de estar todas dentro de ciclos, para
ler um caracter de cada vez.
program OlaMundo;
begin
WriteLn('Olá, Mundo!');
end.
Números perfeitos
program numerosPerfeitos;
uses crt;
var
clrscr;
x := 0;
Readln(ate);
repeat
x := x + 1;
soma := 0;
for i := 1 to x - 1 do
begin
if x mod i = 0 then
soma := soma + i;
end;
if soma = x then
begin
writeln(x);
end;
readkey;
end.
Repetição
program Soma_Pares;
uses crt;
var
begin
soma:=0;