Linguagem de Programação Ada.



     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. 

abortabsabstractacceptaccessaliasedall
andarrayatbeginbodycaseconstant
declaredelaydeltadigitsdoelseelsif
endentryexceptionexitforfunctiongeneric
gotoifinislimitedloopmod
newnotnulloforothersout
packagepragmaprivateprocedureprotectedraiserange
recordremrenamesrequeuereturnreverseselect
separatesubypetaggedtaskterminatethentype
untillusewhenwhilewithxor


 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
With Ada.Text_IO;


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 in 1 .. 10 loop
        New_Line;
        Put(" Tabuada do ");
        Put(A);
        New_Line;
        New_Line;
        for 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.




Share this:

JOIN CONVERSATION

1 Comentários:

  1. Obrigado pelo conteúdo, estou reunindo informação sobre essa linguagem.

    :)

    ResponderExcluir