Você está na página 1de 9

Tipos de Linguagem

Georgia Maria Ferro Benetti e Ilan Chamovitz

Introdução
A programação de computadores é um campo de saber que pode ser considerado novo e as linguagens de
programação são conhecimentos que estão em constante evolução e se desenvolvendo, por isso demanda
aprendizagem continuada (SEBESTA, 2011). Você já parou para pensar em quantas linguagens de programação
diferentes existem? Já refletiu sobre os modos como elas se estruturam e como se modificaram ao longo do
tempo?
Em vista disso, este tema faz uma iniciação às linguagens de programação, com a finalidade de que você
compreenda os principais conceitos e seus processos, de forma que aprenda a escolhê-las e utilizá-las para
construir sistemas de informação ou em outras situações profissionais em que precisar utilizar esse
conhecimento.
Ao final desta aula, você será capaz de:
• Definir a linguagem de programação, entendendo-a como instrumento para a construção de sistemas de
informação.

Introdução a linguagem de máquina


Os computadores atuais trabalham com código binário, que é um arranjo de símbolos que compreende um
conjunto discreto. Em relação ao caso do código binário adotado para dispositivos digitais, esse conjunto é
composto de dois valores que costumam ser 0 e 1 (HAYKIN; MOHER, 2011).

-1-
Figura 1 - Código binário.
Fonte: Laborant. Shutterstock, 2019.

Mediante ao uso de códigos, um computador armazena dados em estruturas que representam sinais elétricos
que a máquina entende em termos de ligado ou desligado. Por meio dessa tecnologia, é possível criar estruturas
nas quais se formam sequências que representam letras e outros caracteres que conhecemos. Essa linguagem de
máquina é parecida com a representação numérica de dados. Diante disso, o código binário representa bem esse
tipo de estrutura, podendo considerar o zero (0) como desligado e o um (1) como ligado. Assim, o alfabeto em
código binário ficaria como indicado a seguir.

-2-
Figura 2 - Alfabeto em código binário.
Fonte: Elaborada pelos autores.

Agora, imagine que para escrever o seu nome e sobrenome fosse necessário digitar uma sequência de oito (8)
dígitos para cada letra. Assim seria para os comandos de atribuição de valores para variáveis.

Isso torna o trabalho de programar pouco prático, demorado e, devido à semelhança dos símbolos utilizados,

-3-
Isso torna o trabalho de programar pouco prático, demorado e, devido à semelhança dos símbolos utilizados,
sujeito a erros de difícil identificação e correção. Além disso, a programação é feita quase que diretamente na e
para a máquina em questão (RICARTE, 2012).

FIQUE ATENTO
As linguagens de máquina trabalham com endereçamento absoluto. Quer dizer, as instruções
ficam armazenadas em pontos específicos da memória, de modo que uma instrução direciona
para um ponto específico de sequência do programa. Ao inserir outra instrução, impactará as
instruções que fazem referência aos endereços que estão localizados depois da adição.

A partir dessas dificuldades e da necessidade de criar alternativas mais flexíveis e dinâmicas para programar,
criaram-se as linguagens de mais alto nível.

Linguagem de alto nível


As linguagens de programação são componentes importantes da Tecnologia da Informação (O’BRIEN, 2010). As
que utilizamos atualmente, baseiam-se no código binário para estabelecer uma comunicação com os dispositivos
digitais, interligando ações humanas e dos computadores.
Seres humanos e máquinas trabalham e se comunicam com linguagens diferentes. Para que isso ocorra, cada
linguagem deve especificar os princípios que compõem um projeto de linguagem, como: sintaxe, que indica
como elaborar a estrutura correta de um programa; nomes e tipos, que é o vocabulário específico da linguagem;
e semântica, que especifica os efeitos de cada comando (TUCKER; NOONAN, 2010).
Posto isso, existem linguagens que estão mais próximas das máquinas e são chamadas de linguagens de baixo
nível, que são formadas por instruções que correspondem, quase que diretamente, ao código que será
processador da máquina para execução.

FIQUE ATENTO
O processador é o componente principal do computador, sendo responsável por executar as
instruções contidas nos programas de computador. Cada tipo de processador congrega dois
conjuntos de instruções específicas: o da linguagem de máquina e o das linguagens simbólicas.
Logo, determinados processadores se comunicam de modo mais eficiente com determinados
programas.

Por outro lado, linguagens de alto nível estão mais próximas do entendimento e necessidades humanas, por isso,
precisam, geralmente, ser traduzidas por um programa compilador para que a máquina opere com elas.

-4-
Figura 3 - Linguagem de programação e linguagem de máquina.
Fonte: Alphaspirit. Shutterstock, 2019.

Os compiladores são programas que atuam como uma espécie de tradutor. Existem diversos compiladores que
podem ser utilizados para cada linguagem. Eles convertem os programas em linguagem de alto nível para
linguagem de baixo nível, que, diferente de uma linguagem interpretada – executada imediatamente –, pode
tomar um tempo considerável do computador.
Isso porque o processo de compilação geralmente ocorre em três passos:
• a) análise do código, que é a verificação da sintaxe e correção de erros que não sejam de lógica;
• b) criação de arquivo com código-objeto que contém comandos em linguagem da máquina;
• c) criação de um arquivo executável, a partir do código-objeto, que pode funcionar independentemente
do compilador.
O desenvolvimento de linguagens de alto nível foi uma consequência das necessidades de evolução da
computação. Quando os primeiros computadores foram criados, as instruções eram codificadas apenas como
dígitos numéricos. Escrever programas nessa linguagem resultava em muitos erros, com muita dificuldade para
serem localizados e corrigidos.
Por volta de 1940, pesquisadores desenvolveram um sistema pelo qual instruções numéricas poderiam ser
representadas por mnemônicos.
A partir desse sistema, montadores (assemblers em inglês) foram desenvolvidos para converter expressões
mnemônicas em linguagem de máquina.

-5-
EXEMPLO
A adoção de mnemônicos simplificou a elaboração de instruções. Para realizar a seguinte
operação que movia valores entre endereços de memória ficaria assim: mova o conteúdo do
registrador 2 para o registrador 4. Já em linguagem de máquina seria expressa com algo
semelhante a 2054. Entretanto, em um sistema mnemônico a instrução ficaria um pouco mais
simples: MOV R4, R2.

A linguagem montadora ficou conhecida como assembly. Apesar da maior facilidade em programar e entender os
códigos, ainda havia a necessidade de serem utilizados muitos comandos para realizar uma única operação.
Assim, alguns comandos precisavam ser compactados em um só, sendo que as linguagens com vários comandos
são conhecidas como linguagens de alto nível.

Linguagens não estruturadas


Conforme estudamos até aqui, ao longo da evolução das linguagens de programação vários paradigmas foram
sendo desenvolvidos. A programação não estruturada organizou-se em torno de listas de instruções sequenciais
que a Unidade Central de Processamento (CPU) deveria executar (COELHO, 2007).
As linguagens não estruturadas são as primeiras chamadas de alto nível, que caracterizam por incluir a
possibilidade de dar comandos como o goto e jump, levando para um ponto específico do programa (COELHO,
2007).

SAIBA MAIS
A história da evolução dos paradigmas e linguagens de computação é rica em detalhes. Desde
1940, quando os primeiros computadores digitais surgiram, sucederam diferentes paradigmas
de programação, do qual emergiram dezenas de linguagens com características e aplicações
específicas. Para conhecer essa história em detalhes leia o livro Conceitos de linguagens de
programação, de Robert Sebesta (2011).

São exemplos desse tipo de linguagem a Beginners All-purpose Symbolic Instruction Code (BASIC) e o COmmon
Business Oriented Language (COBOL), geralmente utilizados em aplicações comercias, ambos com grande
divulgação na década de 1980 (GUDWIN, 1997).

-6-
Linguagens procedurais
Depois das linguagens não estruturadas surgem as linguagens procedurais. De acordo com Gudwin (1997, p. 3),
elas caracterizam-se:

[...] pela existência de estruturas de controle, que entre outras coisas promovem o teste de condições
(if-then-else), controlam a repetição de blocos de código (for, while, do), fazem a seleção de
alternativas (switch, case), e dividem o código do programa em módulos chamados de funções ou
procedimentos (GUDWIN, 1997, p. 3).

Como exemplos dessas linguagens, apresentamos o PASCAL – nome em homenagem ao matemático e físico
Blaise Pascal –, originada a partir da linguagem ALGOL, no final da década de 1960 e início da década de 1970, e
da FORTRAN (IBM Mathematical FORmula TRANslating system). Em 1972, foi criada a linguagem C, sendo ela
compilada, estruturada, imperativa, procedural e padronizada pela Organização Internacional de Normatização
(ISO).
Diante disso, diversas linguagens foram surgindo, como representado no gráfico a seguir.

-7-
Figura 4 - Genealogia das linguagens de alto nível.
Fonte: Sebesta (2011, p. 58).

O Gráfico mostra o surgimento das várias linguagens de programação em uma perspectiva de linha de tempo e
como elas estão conectadas entre si. Embora não estejamos abordando detalhes de cada uma delas, é importante
saber que cada linguagem nova pode introduzir elementos originais que solucionam problemas não resolvidos

pela anterior. Com o desenvolvimento das linguagens de alto nível, chegamos a um ponto em que quase todas as

-8-
pela anterior. Com o desenvolvimento das linguagens de alto nível, chegamos a um ponto em que quase todas as
linguagens podem nos levar ao mesmo resultado, porém, algumas fazem isso de modo mais eficiente do que
outras (COCCIAN, 2004).
Nesse contexto, o fator decisivo em relação à escolha da melhor linguagem para cada caso acaba sendo o tipo de
aplicação com a qual estamos trabalhando. É também importante salientar que as linguagens são desenvolvidas
mediante os projetos de linguagem que estruturam e detalham as características de cada linguagem e que
estão inseridos em contextos históricos específicos.

Fechamento
A computação é uma tecnologia cujas aplicações na vida humana não param de crescer e de se diversificar.
Computadores são equipamentos que precisam de ações humanas para funcionar e ocorre, entre outras ações,
mediante o fornecimento de instruções que, atualmente, assumem o formato de programas elaborados em
linguagens específicas.
Essa realidade vem aportando novos usos e demandas para as Tecnologias da Informação, o que motiva o
surgimento de diferentes linguagens de programação que foram se desenvolvendo com o passar do tempo.
Problemas e necessidades particulares que emergem da utilização da computação motivam mudanças e
inovações nas linguagens de computação. Isso pode abranger desde a atualização de versão de uma linguagem já
existente, até o surgimento de um paradigma totalmente novo de estruturação de linguagens.

Referências
COCIAN, L. F. E. Manual da linguagem C: dados eletrônicos. Porto Alegre: Editora da ULBRA, 2004.
COELHO, F. C. Programação Científica como Python. Petrópolis, RJ: [S. e.], 2007. Disponível em: <
http://complex.if.uff.br/_media/python_flavio.pdf>. Acesso em: jan. 2019.
GUDWIN, R. R. Linguagens de programação: notas de aula para a disciplina EA877 mini e microcomputadores:
software. Campinas: DCA/FEEC/UNICAMP, 1997. Disponível em: <http://www3.dsi.uminho.pt/iiee/repos
/ling_prog.pdf>. Acesso em: 27 jan. 2019.
HAYKIN, S.; MOHER, M. Sistemas de Comunicação. 5.ed. São Paulo: Bookman, 2011.
O´BRIEN, J. A. Sistemas de informação e as decisões gerenciais na era da internet. 3. ed. São Paulo: Saraiva,
2010.
RICARTE, I. Introdução à compilação. Rio de Janeiro: Elsevier Brasil, 2012.
SEBESTA, R. W. Conceitos de linguagens de programação. Tradução de Eduardo Kessler Piveta. 9. ed. Porto
Alegre: Bookman, 2011.
TUCKER, A.; NOONAN, R. Linguagens de Programação: princípios e paradigmas. Porto Alegre: AMGH, 2010.

-9-

Você também pode gostar