Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Linguagens de Programação DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1
Tópicos da aula Linguagens de programação. Linguagem de máquina. Linguagem de baixo nível. Linguagem de alto nível. Compiladores e Interpretadores. Linguagens compiladas e interpretadas. Ranking das linguagens de programação. 2
Como as máquinas conversam? Como os humanos conversam com as máquinas? 3
Máquinas só entendem símbolos do conjunto de binário (0 ou 1) 4
Programar uma máquina! 5
Introdução à Programação Programar uma máquina é escrever um conjunto de instruções que o computador deve executar. Voltando ao conceito do computador: É uma máquina de calcular que processa dados através de um conjunto de instruções e produz resultados, com o mínimo de intervenção humana. O que são essas instruções? Quem entende essas instruções? 6
Introdução à Programação Instruções são sequências de bits definidas para que o computador realiza uma determinado ação. Operações matemáticas ou lógicas. Manipulação de dados. Operações com dispositivos de entrada e saída. Instruções de máquinas / Códigos de máquinas 7
Linguagem de máquina Para programar um computador é necessário definir instruções baseadas numa linguagem de máquina. Linguagem de máquina = Conjunto de instruções do processador. 8
Surgimento das Linguagens de Programação Devido a dificuldade na definição dos códigos de máquina (códigos de 0s e 1s), foi criado uma linguagem para programar a máquina através de comandos textuais, a linguagem assembly. ADD 1F, AB; INC 1E; Soma os conteúdos dos registradores 1F e AB, e armazena no registrador 1F. Adiciona 1 ao conteúdo do registrador 1E. MOV AE, 13; Move o conteúdo do registrador AE para o registrador 13. 9
Linguagem de Programação: Assembly As máquinas continuavam entendendo apenas programas escritos em linguagem de máquina. É necessidade um tradutor. Linguagem de programação Assembly Tradutor (Assembler) Linguagem de máquina (0s e 1s) Devido a proximidade com a linguagem de máquina, a linguagem assembly é considerada uma linguagem de programação de baixo nível. 10
Linguagem de Programação: Assembly Cada processador pode conter seu conjunto de instruções. Cada conjunto de instruções tem sua linguagem assembly. Processadores diferentes Conjuntos de instruções diferentes Linguagens assembly diferentes. Programação de computador baseadas em linguagens de baixo nível são bastante complexas. 11
Linguagens de Programação de Alto Nível Os programadores queriam que os computadores fossem capazes de falar línguas parecidas com as línguas dos humanos e, nesse sentido, criaram as linguagens de programação de alto nível. Linguagens de programação de alto nível: Independentes do processador. Códigos mais complexos. Descrição próxima da lógica humana pensamento humano. 12
Linguagens de Programação de Alto Nível Primeira linguagem de programação de alto nível foi Fortran. 13
Linguagens de Programação 14
Programas de Alto Nível em 0s e 1s Da mesma forma que a linguagem Assembly precisou de um tradutor para converter o programa em código de máquina, as linguagens de alto nível precisam de tradutores para montarem seus códigos de máquinas. Tradutores das linguagens de alto nível: Compiladores Interpretadores 15
Compiladores x Interpretadores O compilador gera um código de máquina a partir do código em linguagem de alto nível (código fonte), assim gerando a tradução de todas instruções do programa. Código fonte Compilador Código de máquina O interpretador traduz as instruções da linguagem de alto nível em instruções de máquina em tempo de execução. Código fonte Interpretador Código intermediário Código de máquina Em tempo de execução 16
Compiladores x Interpretadores Tradutor Vantagens Desvantagens Compilador Interpretador Execução mais veloz. Programas mais complexos, com mais funcionalidades. Permite otimização do códigofonte. Depuração mais simples. Menor consumo de memória. Resultado imediato da execução das instruções por ser passo a passo. Várias etapas de tradução. Maior consumo de memória para a execução, uma vez que o programa final é maior. Processo de depuração de cada linha é mais demorado. Execução mais lenta. Programas mais simples. É necessário que a máquina possua o programa fonte. 17
Exemplos de linguagens Linguagens de programação compiladas C / C++ Linguagens de programação interpretadas Java C# Python 18
Rankings das Linguagens de Programação 19
Ranking 2015 IEEE Spectrum The 2015 Top Ten Programming Languages. Referência: http://spectrum.ieee.org/computing/software/the-2015-topten-programming-languages/ 20
Ranking 2015 IEEE Spectrum: WEB 21
Ranking 2015 IEEE Spectrum: Mobile 22
Ranking 2015 IEEE Spectrum: Enterprise 23
Ranking 2015 IEEE Spectrum: Embedded 24
Referências Stephen Cass. The 2015 Top Ten Programming Languages. IEEE Spectrum. Acesso em: http://spectrum.ieee.org/computing/software/the-2015-top-tenprogramming-languages/. Rita, Sandra. Treinamento em Lógica de Programação. 1 ed. Digerati Books, 2009. 25
Dúvidas? Dúvidas por email: heitorm@dca.ufrn.br 26