05/07/2011

O B-A-BA da programação

 

Existem dois tipos de linguagens de programação: as de baixo nível e as de alto nível. Os computadores interpretam tudo como números em base binária, ou seja, só entendem zero e um. As linguagens de baixo nível são interpretadas diretamente pelo computador, tendo um resultado rápido, porém é muito difícil e incômodo se trabalhar com elas. Exemplos de linguagens de baixo nível são a linguagem binária e a linguagem Assembly.

Exemplo de código em Assembly:

MOV r0, #0C ;load base address of string into r0
LOAD: MOV r1,(r0) ;load contents into r1
CALL PRINT ; call a print routine to print the character in r1
INC r0 ;point to next character
JMP LOAD ;load next character

Como pode-se notar, é uma linguagem bastante complicada.

Já as linguagens de alto nível são mais fáceis de se trabalhar e de entender, as ações são representadas por palavras de ordem (exemplo faça, imprima, etc) geralmente em inglês, foram feitos assim para facilitar a memorização e a lógica. Elas não são interpretadas diretamente pelo computador, sendo necessário traduzí-las para linguagem binária utilizando-se de um programa chamado compilador.

Quando programamos em uma linguagem de programação de alto nível primeiramente criamos um arquivo de texto comum contendo a lógica do programa, ou seja, é onde falamos ao computador como deve ser feito o que queremos. Este arquivo de texto é chamado de código-fonte, cada palavra de ordem dentro do código-fonte é chamada de instrução. Após criarmos o código-fonte devemos traduzir este arquivo para linguagem binária usando o compilador correspondente com a linguagem na qual estamos programando. O compilador irá gerar um segundo arquivo que chamamos de executável ou programa, este arquivo gerado éinterpretado diretamente pelo computador.

Existem algumas linguagens de programação que não necessitam de compiladores, como o PHP, uma linguagem dedicada à produção de websites dinâmicos, como o InfoEscola. As instruções em PHP são compiladas e executadas ao mesmo tempo.

Exemplo de código PHP (alto nível)

print (“Bem vindos visitantes do InfoEscola!”);
print (” Vamos contar até 50:”);
for($x=1;$x<=50;$x++) {
print $x;
print ” “;
}

if(4 == 2) {
print (“Fim do mundo! 4 é igual a 2!”);
} else {
print (“Ufa! 4 é diferente de 2″);
}
?>

Cada linguagem de programação é diferente da outra, contendo palavras-chave próprias. Exemplos de linguagens de alto nível são C++, Java, C#, Delphi (Pascal), PHP, Visual Basic, etc.

 

Propriedades desejáveis em uma Linguagem de Programação (LP)

Legibilidade

Esta relacionada na facilidade de leitura dos códigos. Quanto mais fácil for conseguir ler o programa, mais fácil será entender o código e também descobrir erros na programação. Uma LP com baixa legibilidade torna o seu aprendizado mais difícil.

Alguns exemplos:

  • Linguagens que usam Goto normalmente reduzem a legibilidade porque nesse tipo de programação, os programas possuem fluxo de controle e não obedecem a padrões regulares. Tornando difícil acompanhar e entender o que eles fazem.
  • Uso de mesmo vocábulo da LP para denotar diferentes comportamentos dependendo do contexto é prejudicial à legibilidade e entendimento da LP

         Ex:

      • VISUAL BASIC:
        • Uso do operador "=" com sinal de atribuição e comparação.
        • Chamada a funções e procedimentos com passagem de parâmetros. De acordo com o contexto é necessário o uso de "(".
      • C/C++:
        • Uso do "*" denota diversas coisas, como sinal multiplicador, passagem por referencia, declaração de ponteiros.

 

  • Efeitos colaterais também são prejudicais à legibilidade. Eles causam mudanças adicionais no estado do programa durante a avaliação de uma determinada expressão ou a execução de um comando ou subprograma.

           Ex:

      • VISUAL BASIC:
        • A não necessidade de informa nos parâmetros de procedimentos e funções passagem por valor ou referência. Adotando como padrão passagem por referência podendo ocasionar efeito colateral indesejável.
        • Marcadores de blocos de comandos como o "Begin End" (Pascal e Delphi) e o "{ }" de C/C++ e JAVA, também podem causar confusões na leitura do programa quando existem vários comandos de repetição e seleção aninhados. Além disso, a não obrigatoriedade de usar um marcador específico para indicar onde o comando "if" do C se encerra possibilita a escrita de comando "ifs" aninhados difíceis de serem entendidos.
  • Algumas LP's adotaram postura altamente questionáveis com relação a legibilidade. FORTRAM, por exemplo, permite que identificadores especiais como DO, END, INTEGER e REAL sejam também nomes de variáveis.

Redigibilidade

Esta relacionada na facilidade em escrever programas. A redigibilidade de programas pode conflitar com a legibilidade. C permite a redação de comandos complexos, mas que podem não identificar de maneira muito clara a sua funcionalidade.

As LPs com tipos de dados limitados requerem o uso de estruturas complexas, o que acaba dificultando a redação de programas. A falta de declaração recursiva e ponteiro em Visual Basic acaba limitando o seu uso para implementar programas com uso de estruturas de árvores, listas e etc

Outro ponto na falta de redigibilidade no Visual Basic esta relacionado na declaração de variáveis, onde não é possível declarar várias variáveis de mesmo tipo especificando o tipo somente uma vez.

Ex: Dim i, j , soma as integer ( Nesta declaração somente a variável soma é do tipo integer, as demais i e j são variant, o que além de falta de redigibilidade também temos falta de legibilidade podendo ocasionar efeito colateral, onde i e j podem assumir qualquer tipo de valor).