Bom, há um tempo atrás falei sobre a Linguagem de Programação Ruby aqui no blog e sobre a apresentação que fizemos na faculdade (Eba, tiramos 10 \o/). E ontem o professor acabou passando a data para o próximo trabalho/apresentação. Se não me engano ficamos com a Linguagem Ada desta vez, e como vai virar costume aqui no blog postar sobre esse assunto, lá vai mais um post, agora da Linguagem Ada.
*O conteúdo abaixo foi retirado de demais sites.
O que é Ada?
Ada é uma linguagem de programação de alto nível, imperativa, tipicamente compilada (embora haja interpretadores) e baseada em Pascal, que foi criada através de um concurso realizado pelo DoD (U. S. Departament of Defense) sendo o principal projetista o francês Jean Ichbiah. Tal concurso foi realizado para por ordem na situação em que o DoD se encontrava pois eles em 1974 usavam cerca de 450 linguagens ou dialetos de programação e não havia uma linguagem adequada. A linguagem foi primeiramente padronizada em 1983 pelo ANSI e em 1985 pela ISO (Organização Internacional de Padronização) e em 1995 a ISO padronizou uma versão melhorada conhecida como Ada 95. Ada 95 foi a primeira linguagem de programação orientada ao objeto padronizada internacionalmente.
O nome Ada é homenagem a condessa de Lovelace, Augusta Ada Byron, filha de Lord Byron e que trabalhou com Charles Babage sendo considerada a primeira programadora de computadores da Hístoria. Veja que o correto é Ada e não ADA.
Estrutura Básica de Um Programa em Ada.
--Declaracoes de bibliotecas |
Procedure nome_do_programa is |
--Declaracoes de variaveis |
begin |
--Corpo do programa |
end nome_do_programa; |
Ada é uma linguagem não sensível a case, ou seja, tanto faz escrever em maiúsculo ou minusculo.
Palavras reservadas.
De acordo com o "Ada 95 Reference Manual" essas são as palavras reservadas em Ada. Tanto faz letras maiúsculas ou minúsculas. Umas 47 1 dessas são abordadas nesse manual ou são de uso óbvio.
abort | abs | abstract | accept | access | aliased | all |
and | array | at | begin | body | case | constant |
declare | delay | delta | digits | do | else | elsif |
end | entry | exception | exit | for | function | generic |
goto | if | in | is | limited | loop | mod |
new | not | null | of | or | others | out |
package | pragma | private | procedure | protected | raise | range |
record | rem | renames | requeue | return | reverse | select |
separate | subype | tagged | task | terminate | then | type |
untill | use | when | while | with | xor |
Declarações de Bibliotecas
Como ocorre na maioria das linguagens modernas os procedimentos de entrada e saída não são definidos na linguagem propriamente dita mas sim em bibliotecas especiais. São muito importantes em Ada as seguintes bibliotecas: Ada.Text_IO (ou simplesmente Text_IO), Ada.Integer_Text_IO e Ada.Float_Text_IO que servem para fornecer procedimentos de entrada e saída e para trabalhar com textos, números inteiros e números reais de ponto flutuante respectivamente. Para declarar a biblioteca Ada.Text_IO basta fazer assim
Exemplo de um pequeno programa
--Esse e' um programa que escreve a tabuada. |
With Ada.Text_IO; Use Ada.Text_IO; |
With Ada.Integer_Text_IO; Use Ada.Integer_Text_IO; |
Procedure Tabuada is |
A, B: Integer; |
begin |
for A in 1 .. 10 loop |
New_Line; |
Put(" Tabuada do "); |
Put(A); |
New_Line; |
New_Line; |
for B in 1 .. 10 loop |
Put(A); |
Put(" X"); |
Put(B); |
Put(" ="); |
Put(A*B); |
New_Line; |
end loop; |
New_Line; |
end loop; |
end Tabuada; |
Tipos Pré-definidos em Ada
Integer:Valores inteiros de no mínimo -32767..32767 ou seja (-2**15+1..2**15-1). Long_Integer: Valores inteiros de no mínimo -2147483647..2147483647ou seja (-2**31+1..2**31-1).
O RM sugere a existencia dos tipos Long_Long_Integer, Short_Integer, Short_Short_Integer, etc, mas não obriga a existencia deles e deixa para as implementações determinarem o range. Apenas diz que que o que tiver Long deve ter um range maior, o que tiver Short menor, etc. O tipo integer admite basicamente as operações +, -, *, /, abs, mod, ** (potencia), entre outras. Os operadores de comparação admitidos são: =, /= (diferente), < , > , < =, > =.
Natural: É um subtipo do Integer que não possui números negativos.
Positive: É um subtipo do Integer que não possui zero e números negativos.
Float: Tipo real de ponto flutuante de no mínimo -10.0**(4D)..10.0**(4D) onde D é a precisão decimal. O RM sugere o Long_Float com D=11 no mínimo e no que diz respeito aos Long_Long_Float, Short_Float, etc, se existirem a situação é a mesma da do Integer. As operações admitidas são +, -, *, /, abs, ** mas essa última deve ter o segundo nmero (expoente) inteiro embora o resultado seja float. Os operadores de comparação são os mesmos do interger.
Character: Assume os valores de caracteres correspondente aos 256 valores de codigo do Row00 também conhecido como latim 1. Os operadores de comparação são os mesmos.
String: É um array(lista) de Characters.
Boolean: Assume os valores true e false. Os operadores de comparação são os mesmos já citados. Permite as operações lógicas and, or, xor(or exclusivo), not.
Existe diversas bibliotecas padrões que podem ampliar o quadro visto. A Ada.Numerics.Elementary_Functions permite fazer as operações Sin, Cos, Tan, ArcSin, ArcCos, ArcTan, SinH, CosH, Exp, Log, Sqrt com o tipo Float além definir Pi e e, etc. A Ada.Calendar define o tipo Time com subtipos tais como Year_number, etc. Você também pode criar seus próprios tipos.
Este comentário foi removido pelo autor.
ResponderExcluirMAIS FÁCIL DE APRENDER QUE O PASCAL E TÃO FÁCIL DE APRENDER QUANTO O BASIC... O CRIADOR DESTA LINGUAGEM DE PROGRAMAÇÃO ESTÁ DE PARABÉNS!!!!!!! É UMA VERSÃO EVOLUÍDA E SIMPLIFICADA DO PASCAL!!!!!!!
ResponderExcluir