Header Ads Widget

Responsive Advertisement

Linguagens de Alto Nível

Linguagens de Alto Nível

Em um microcomputador você necessita de recursos muito mais avançados do que a linguagem de máquina e o assembly - consideradas como linguagem de baixo nível pois trabalham intimamente com o microprocessador - podem oferecer. Assim surge um outro grupo de linguagens, as chamadas linguagens de alto nível. As linguagens de alto nível não estão tão íntimas do microprocessador, mas em compensação oferecem comandos, que são conjuntos de uma ou mais instruções, capazes de executar uma tarefa completa. Como exemplos de linguagens de alto nível, podemos citar BASIC, FORTRAN, Pascal e C, sendo esta última considerada uma linguagem de “médio nível”, por permitir tanto a programação em baixo nível como em alto nível. Mesmo sendo executadas em computadores - e conseqüentemente em microprocessadores - diferentes, as linguagens permanecem inalteradas. Isto porque você não estará programando o microprocessador diretamente: a linguagem será um programa sendo executado sobre o microprocessador. Logo, a linguagem de alto nível se encarregará de traduzir os comandos de seu programa em alto nível - que o microprocessador não conhece - para um programa de baixo nível - que o seu microprocessador conhece. Assim, temos a mesma linguagem de programação de alto nível para vários computadores diferentes, porém a maneira com que eles irão conversar com o microprocessador será diferente. E o mais importante: isto será transparente para o programador. Assim, um programa escrito em Turbo Pascal no Apple II será idêntico a um programa escrito em Turbo Pascal no IBM PC, salvo - é claro - alguns comandos que poderão existir ou não em virtude da exploração do máximo da potencialidade do computador, recursos que poderão existir em um computador porém em outro não, permanecendo a estrutura básica inalterada.

Imagem representando linguagens de alto nível

Dentro das próprias linguagens de alto nível existem linguagens "melhores" ou "piores" em termos de recursos e estruturação. Por exemplo, o BASIC não é tão bem estruturado como o Pascal e nem tão rígido em suas declarações, também. Mas já vimos que o BASIC era uma linguagem que foi adotada como "padrão" nos primórdios da micro-informática, pois os fabricantes colocavam esta linguagem em forma residente em seus microcomputadores. Assim, a linguagem BASIC tornou-se a linguagem de programação mais popular existente até hoje.

Mas mesmo sendo popular, o próprio BASIC difere-se de um microcomputador para o outro, dependendo, principalmente, do fabricante da linguagem (já que a linguagem será um programa sendo executado, como vimos) e do microprocessador que estava sendo utilizado. Por exemplo, o AppleSoft Basic (Apple II) difere-se totalmente do GWBasic (CP/M, MSX e IBM PC). Apesar da estrutura ser basicamente igual, certos comandos são simplesmente criados ou então excluídos em virtude das capacidades principalmente de Hardware e do próprio microprocessador do microcomputador.

Voltando à questão de existirem linguagens de alto nível com "maior nível" do que outras, peguemos o exemplo do BASIC vs. Pascal vs. C. Se quiséssemos limpar a tela do computador e escrever no canto superior esquerdo da tela a frase "Oi, tudo bem ?". Teríamos:

GWBasic       AppleSoft Basic
10 CLS          10 HOME
20 PRINT "Oi, tudo bem ?"  20 PRINT "Oi, tudo bem ?"

Comentários: CLS / HOME - Limpam a tela
              PRINT - Imprime a mensagem entre aspas

Turbo Pascal
PROGRAM ESCREVE;
USES CRT;
BEGIN
   CLRSCR;
   WRITE ('Oi, tudo bem ?');
END.

Comentários: USES CRT - Torna a tela disponível para uso
              CLRSCR - Limpa a tela
              WRITE - Imprime a mensagem entre apóstrofes

C
# include “stdio.h”
# include “conio.h”
void main ()
{
   clrscr();
   printf(“Oi, tudo bem ?”);
}

Comentários: INCLUDE - Incluem módulos, neste caso para utilização da tela
              CLRSCR - Limpa a tela
              PRINTF - Imprime a mensagem entre aspas
        

Nota-se claramente que tanto o Pascal quanto o C possuem uma estrutura muito mais rígida do que o BASIC, tornando o programa final muito melhor de ser lido por pessoas que não fizeram parte do processo de criação do mesmo - no BASIC, que não possui uma estrutura tão rígida, geralmente demora-se muito mais tempo até entendermos o funcionamento de um programa escrito por outra pessoa. Linguagens como Pascal e C são consideradas, portanto, linguagens estruturadas, por necessitarem de uma estrutura rígida de programação.

Imagem representando compiladores e interpretadores

Mas como o computador entende os comandos programados? Isto vai depender da forma que o microcomputador vai "encarar" a linguagem. Quando, por exemplo, a linguagem vem residente, como no caso do BASIC dos microcomputadores mais antigos, o microcomputador passa a dispor de um interpretador sendo esta linguagem considerada uma linguagem interpretada. Nas linguagens interpretadas, o interpretador faz com que o microprocessador "entenda" a linguagem como se fosse uma coisa "normal", ou seja, algo que já fizesse parte do microcomputador como um todo. Neste caso, a cada comando entrado, a linguagem (que é um programa, como já vimos) irá pegar o comando de alto nível, interpretá-lo e, caso tenha sido entrado com a sintaxe correta, será executado convertendo-o em um conjunto de instruções equivalentes em linguagem de máquina para que o microprocessador possa executar o que o programador deseje. Mas caso nós não tenhamos um interpretador, devemos nos utilizar de um compilador e neste caso a linguagem passa a ser considerada linguagem compilada. Nas linguagens compiladas, o compilador "converte" a linguagem de alto nível - que o microprocessador não entende - em linguagem de baixo nível. Um programa executado em linguagem compilada é muito mais rápido, pois está na verdade sendo executado integralmente em baixo nível, o que não acontece na linguagem interpretada. Em compensação durante o processo de criação e edição do programa toda vez que quisermos testar o programa deveremos compilá-lo antes, o que pode demorar um pouco - o que não acontece com as linguagens interpretadas, aonde o programa é executado na hora.

Postar um comentário

0 Comentários