Projecto em destaque na comunidade P@P: Portugol+

Este projecto é um interpretador de uma linguagem de programação bastante simples, com uma sintaxe semelhante ao português, que permite uma fácil aprendizagem de algoritmia e programação.

De entre as muitas funcionalidades já implementadas, destacam-se as seguintes:

  • comentários em linha
    // comentário
  • criação de variáveis com os tipos de dados : booleano, inteiro, real, texto
    var1 : boolean
     var1 : inteiro
     var1 : real
     var1 : texto <- "HappyHippyHippo : "
  • estruturas de controlo: se, para, enquanto
    var1 <- inteiro
     para var de 10 até 1 então
         se var1 > 5 então
             var1 <- var1 + 2 * var
         senão
             var1 <- var1 + var
         fim de se
     fim de para
  • importação de ficheiros extra com código
    importar "codigo.portugol"

No exemplo seguinte, da autoria do criador do Portugol+ pode ver-se uma função recursiva do cálculo do factorial de um número. É de observar a simplicidade do programa e as semelhanças entre a linguagem de programação e a língua portuguesa.

/*
Função recursiva de calculo do factorial de um número 
> parâmetro[real] : n
    valor do qual o factorial irá ser calculado

> retorna[real]
    o factorial do parâmetro da função
*/

factorial : função(real n) retorna real
    // termo de paragem da função recursiva
    // - se o factorial for menor ou igual a 1 então o valor do factorial é 1
    se n <= 1 então
        retorna 1
    fim de se

    // retornar a multiplcação do valor base do factorial com o resultado do calculo
    // do factorial desse valor base menos 1
    //
    // n! = n * (n - 1)!
    retorna n * factorial(n - 1)
fim de função

Pela simplicidade e pelo roadmap ambicioso, iniciativa e empenho, este projecto merece-nos a atenção! Porque tal como dizia um velho publicitário “o que é nacional é bom”, este projecto é nacional, é um bom projecto e nesta edição, ganha o nosso destaque!

Código fonte: https://github.com/HappyHippyHippo/portugol

Publicado na edição 51 (PDF) da Revista PROGRAMAR.