Baixe o app para aproveitar ainda mais
Prévia do material em texto
- -1 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). • - -2 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. - -3 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, - -4 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). 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 , como: sintaxe, que indicaprojeto de linguagem 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. 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. 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. 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. - -5 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 ( em inglês) foram desenvolvidos para converter expressõesassemblers mnemônicas em linguagem de máquina. • • • - -6 A linguagem montadora ficou conhecida como Apesar da maior facilidade em programar e entender osassembly. 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 e , levando para um ponto específico do programa (COELHO,goto jump 2007). São exemplos desse tipo de linguagem a (BASIC) e o COmmonBeginners All-purpose Symbolic Instruction Code Business Oriented Language (COBOL), geralmente utilizados em aplicações comercias, ambos com grande divulgação na década de 1980 (GUDWIN, 1997). 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. 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 linguagensde , de Robert Sebesta (2011).programação - -7 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 –, originada a partir da linguagem ALGOL, no final da década de 1960 e início da década de 1970, e Blaise Pascal da FORTRAN (IBM ). Em 1972, foi criada a linguagem C, sendo elaMathematical FORmula TRANslating system 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. - -8 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 - -9 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 que estruturam e detalham as características de cada linguagem e queprojetos de linguagem 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. : dados eletrônicos. Porto Alegre: Editora da ULBRA, 2004.Manual da linguagem C COELHO, F. C. . Petrópolis, RJ: [S. e.], 2007. Disponível em: <Programação Científica como Python http://complex.if.uff.br/_media/python_flavio.pdf>. Acesso em: jan. 2019. GUDWIN, R. R. : notas de aula para a disciplina EA877 mini e microcomputadores:Linguagens de programação 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.; , M. . 5.ed. São Paulo: Bookman, 2011. MOHER Sistemas de Comunicação O´BRIEN, J. A. . 3. ed. São Paulo: Saraiva,Sistemas de informação e as decisões gerenciais na era da internet 2010. RICARTE, I. . Rio de Janeiro: Elsevier Brasil, 2012.Introdução à compilação SEBESTA, R. W. . Tradução de Eduardo Kessler Piveta. 9. ed. PortoConceitos de linguagens de programação Alegre: Bookman, 2011. TUCKER, A.; NOONAN, R. princípios e paradigmas. Porto Alegre: AMGH, 2010.Linguagens de Programação: http://complex.if.uff.br/_media/python_flavio.pdf> http://www3.dsi.uminho.pt/iiee/repos/ling_prog.pdf http://www3.dsi.uminho.pt/iiee/repos/ling_prog.pdf Introdução Introdução a linguagem de máquina Código binário. Alfabeto em código binário. Linguagem de alto nível Linguagem de programação e linguagem de máquina. Linguagens não estruturadas Linguagens procedurais Genealogia das linguagens de alto nível. Fechamento Referências
Compartilhar