Itel, 2021 Tema 2. Linguagem de programação Sumário ◦ Objectivo ◦ Linguagem de Alto e Baixo Nível ◦ Programa fonte ◦ Programa objecto ◦ Programa tradutor ◦ Compilador ◦ Bibliografia Objectivo Compreender a linguagem de programação de alto, baixo nível e o processo de compilação dos códigos. Linguagens de baixo nível As linguagens de programação podem ser classificadas em níveis de linguagens, sendo que os níveis mais baixos são mais próximas da linguagem interpretada pelo processador e mais distante das linguagens naturais. Linguagem de Máquina: as instruções de linguagem de máquina são representadas por códigos que correspondem palavras binárias cuja extensão pode variar de 8 a 64 bits. Linguagem Hexadecimal: é uma simplificação de notação da linguagem de máquina, onde a sequência de bits é representada por números hexadecimais. Linguagem Assembly: esta linguagem não é composta de números binários ou hexadecimais como nas duas linguagens anteriores, também chamada linguagem intermediaria, a linguagem Assembly é na realidade uma versão legível da linguagem de máquina. Ela utiliza palavras abreviadas, chamadas de mnemônicos, indicando a operação. Linguagens de alto nível As linguagens de alto nível aproximam-se das linguagens utilizadas por humanos para expressar problemas e algoritmos. Cada declaração numa linguagem de alto nível equivale a várias declarações numa linguagem de baixo nível. As linguagens de alto nível podem oferecer muito mais vantagens que as linguagens de baixo nível. A principal motivação para o uso de linguagens de alto nível é que os problemas podem ser solucionados muito mais rapidamente e com muito mais facilidade, pois apresenta um considerável numero de tipos de dados definidos, além das facilidades da programação estruturada. C, C++, Java, PHP, Python, JavaScript, C# estão entre as linguagens de programação de alto nível mais amplamente utilizadas. Programa fonte Programa fonte: também chamado Código fonte é o conjunto de instruções escritas em determinada linguagem que tem a função de dizer ao computador o que ele deve fazer quando executada. Programa objecto Programa objecto ou código objecto é o produto de um compilador. O termo indica que o código é o resultado do processo de compilação, do código fonte, referindo-se ao código fonte como um "programa sujeito". Quando o código fonte é executado pelo compilador é gerado o código objecto, na prática é feita uma conversão das instruções contidas no código fonte para instruções que o computador entenda. O.B.S: Há linguagens que o código fonte não é compilado, ou seja, não é gerado um código objecto. Como por exemplo o JavaScript. Programa tradutor Programas tradutores: chamados assemblers convertem programas em linguagem assembly para a linguagem de máquina (binária). O objectivo deste programa tradutor é aceitar um conjunto de instruções escritas em uma linguagem de programação de alto nível, que é indepente da máquina, e fazer com que as actividades específicadas por estas instruções sejam executadas pelo computador. Programa tradutor Existem dois tipos fundamentais de tradutores: interpretadores e compiladores. No caso do interpretador, as instruções definidas na linguagem de alto nível são executadas directamente. Ele traduz um comando ou instrução do programa fonte de cada vez e então chama uma rotina para completar a execução do comando. Programa tradutor Já um compilador produz a partir do programa fonte, outro programa que é equivalente ao original, porém numa linguagem que é executável. Compilador O computador funciona com base na linguagem máquina de nível baixo, trata- se de impulsos electrícos com apenas duas instruções: ligado ou desligado, ou seja, 0 ou 1. Portanto, tudo o que é executado em uma máquina é traduzido para esse nível ou linguagem. No entanto, não precisamos escrever programas ou códigos em linguagem de máquina, pois existem softwares como os compiladores e o sistema operacional, que ajudam a traduzir as instruções para esse nível. Compiladores: convertem programas em linguagem de alto nível para a linguagem de máquina. Permitem aos programadores escrever instruções parecidas com o inglês cotidiano e contêm notações matemáticas comumente utilizadas. Compilador Fases da compilação Tabela de símbolos: contém uma entrada para cada símbolo definido pelo usuário ou identificador incluído no programa fonte. Análise Léxica: identifca símbolos que compõem o programa. Análise sintática: identica como estes símbolos se relacionam entre si. Análise semântica: identifica o significado destas relações. Geração de código: utiliza a representação interna produzida pelo analisador sintático e gera como saída uma sequência de código objecto. Também é responsável pela reserva de memória para dados e variáveis, geração de código para acessar tais posições, seleção de registradores. Bibliografia ◦ Algoritmo e programação. Santos, Jorge. Porto Editora. ◦ Técnicas de Linguagem de Programação 10. REDITEP. AP02 – Aula Prática 1. Mencione os tipos de linguagem de baixo nível. 2. Qual diferença entre a linguagem Assembly e a linguagem C#? 3. O Office é software de aplicação ou de sistema? 4. Qual tipo de programa tradutor gera o programa objecto e descreve o processo geração do programa objecto. 5. Qual linguagem é considerada intermediaria entre o nível baixo e alto. 6. Um programa com a instrução int n=0, depois tornou-se em 11000111010*. Diz que tipo de processo ocorreu.
*os digitos binários não correspondem a instrução, mas a título de exemplo estamos usa-lo. Fim
Maior nota 5 alunos tem e descreve de forma concisa e otimizada para o conteúdo do documento, que trata de um algoritmo para verificar a maior nota entre 5 alunos