O meio mais eficaz de comunicação entre pessoas é a linguagem (língua ou idioma). Na programação de computadores, uma linguagem de programação serve como meio de comunicação entre o indivíduo que deseja resolver um de terminado problema e o computador escolhido para ajudá-lo na solução.
[adrotate banner=”4″]
A linguagem de programação deve fazer a ligação entre o pensamento humano (muitas vezes, de natureza não estruturada) e a precisão requerida para o processamento pela máquina. (Price, Toscani, 2008, p.1).
O facilitador no desenvolvimento de software é a escolha de uma linguagem de programação próxima ao problema a ser tratado, em outras palavras, não adianta querer desenvolver uma solução (aplicação) para plataforma Web adotando Assembly como linguagem de programação.
Uma aplicação desta natureza exigiria uma linguagem de programação de alto nível (considerada mais próxima das linguagens naturais ou ao domínio da aplicação em questão).
Computadores entendem linguagem de máquina (linguagem de baixo nível), notações binarias, sequências de zeros e uns. Esse tipo de linguagem te permite comunicação direta com o computador em termo de “bits”.
Hoje em dia, o tipo de linguagem mais utilizada é a de alto nível. Para que esse tipo de linguagem se torne operacional, ela deve ser traduzida para linguagem de máquina.
Tais traduções são realizadas por meio de sistemas especializados, comumente conhecidos como compiladores ou interpretadores.
As linguagens de programação podem ser classificadas cronologicamente em cinco gerações:
1) Linguagem de Maquina: não aconselhada para desenvolvimento de algoritmos complexos, devido ao seu nível de complexidade há uma forte propensão ao erro, pois trabalha com sequências de zeros e uns e era utilizada nos primeiros computadores. Cada instrução de máquina é geralmente composta por um código de operação e um ou dois endereços de memória ou registradores;
2) Linguagens Simbólicas ou de Montagem (Assembly): projetadas com a intenção de diminuir as dificuldades da programação em Linguagem de Maquina. Sua principal característica é a substituição de códigos de operação em endereços binários, por mnemônicos (palavras que designam operações entre registros da Unidade Central de Processamento);
3) Linguagens Procedimentais também chamadas de “Procedurais” ou Imperativas e Linguagens Declarativas: as procedimentais descrevem uma sequência de passos a ser seguido para resolver um problema; que são uma descrição direta de como o problema será́ resolvido.
Caracteriza-se por instruções de entrada/saída, instruções de cálculos aritméticos ou lógicos e instruções de controle de fluxos de exceção. Exemplos: BASIC, ALGOL, PASCAL, C, etc.
As declarativas são baseadas na teoria das funções recursivas e de lógica matemática. Regras de dedução sem detalhamento dos passos a serem seguidos para chegar a uma conclusão, são definidos pelo programador.
As linguagens dessa geração foram desenvolvidas para uso de profissionais da área de processamento de dados, sua depuração demanda tempo, assim como seus sistemas complexos são de difícil manutenção;
4) Desenvolvidos para facilitar a programação de computadores, agilizar o processo de desenvolvimento de aplicações, facilitar e reduzir custos de manutenções em aplicações, diminuir os problemas na depuração e gerar códigos sem erros a partir de requisitos de expressão de alto nível;
5) São linguagens de representação do conhecimento, essenciais para simular comportamentos inteligentes. São utilizadas, principalmente, na área de Inteligência Artificial.
Claro que ainda há muito mais a se expor deste universo que compõe as linguagens de programação, todavia, como o intuito era apenas mostrar um pouco dessa história, do seu surgimento e evolução até os presentes dias, a fim de formar e compartilhar conhecimento com todos os programadores, ou aqueles que de alguma forma apreciam o mundo da programação, deixemos essa gama de informações para serem exploradas posteriormente.
Escrito por Flávio Apolinário de Souza
REFERÊNCIA BIBLIOGRÁFICA
PRICE, A. e TOSCANI, S.: Implementação de Linguagens de Programação: Compiladores, Editora: Sagra Luzzato, 2008.
[adrotate banner=”5″]
Autor