Linguagens de Programação

Documentos relacionados
Linguagens de Programação Classificação

PROGRAMAÇÃO I. Introdução

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Introdução à Computação Parte 2

Introdução à Computação: Máquinas Multiníveis

Compiladores. Introdução à Compiladores

Programação de Computadores

Aula 08 Introdução à Algoritmos. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

ORGANIZAÇÃO DE COMPUTADORES

MC-102 Aula 01. Instituto de Computação Unicamp

Sâmia Rodrigues Gorayeb. Arquitetura de Computadores Linguagem de Máquina

Programação de Computadores

Introdução a Programação de Jogos

Construção de Compiladores. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2014.

Programação: Compiladores x Interpretadores PROF. CARLOS SARMANHO JR

Sistema Computacional

Métodos de implementação de linguagens. Kellen Pinagé

Programação de Computadores

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Linguagens de Programação

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

Introdução à Computação

Introdução à Computação

Programação de Computadores:

Informática I. Aula 14. Aula 14-10/10/2007 1

Programação Estruturada Aula - Introdução a Linguagem de Programação

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.

Introdução à Programação de Computadores Fabricação Mecânica

Aula teórica 7. Preparado por eng.tatiana Kovalenko

Noções de Algoritmos

Puca Huachi Vaz Penna

Algoritmos e Programação

INE5421 LINGUAGENS FORMAIS E COMPILADORES

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1

Algoritmos e Programação

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Algoritmos e Programação

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza

INTRODUÇÃO À PROGRAMAÇÃO. Introdução. Sérgio Carlos Portari Júnior

Introdução a Ciência da Computação

3. Linguagem de Programação C

Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores

DECivil Departamento de Engenharia Civil, Arquitectura e Georrecursos. Apresentação. Computação e Programação (CP) 2013/2014.

Sistemas Operacionais

Conceitos de Linguagens de Programação

Algoritmos. Prof. Jonatas Bastos Site:

Conversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação

GFM015 Introdução à Computação

Infraestrutura de Hardware. Funcionamento de um Computador

Estrutura e funcionamento básico de um computador

Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger

MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador

INF 1005 Programação I

Unidade 1. Introdução e histórico

Linguagens de máquina, linguagens simbólicas e linguagens de alto nível

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06

Programação Estruturada Aula - Introdução a Linguagem C

Introdução à Computação

CES-10 Introdução à Computação. Prof. Paulo André IEC - ITA

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

EA876 - Introdução a Software de Sistema

Informática I. Aula 9. Aula 9-17/05/2006 1

Aula de hoje. Programação. Comunicação com computadores. Comunicação com computadores. Comunicação com computadores. Comunicação com computadores

Olá pessoal, Hoje vamos entender os conceitos sobre linguagem de programação. Definição, tipos de linguagens e as linguagens mais utilizadas

Introdução ao Python. Programa Computacional

Projeto de Compiladores

a) Computador b) Estrutura do sistema i. Hardware ii.software c) Linguagens de Programação i. Paradigmas e Programação 1.

Conjunto de Instruções e Modelos de Arquiteturas

Memória. Arquitetura de Von Neumann. Universidade do Vale do Rio dos Sinos Laboratório I Prof.ª Vera Alves 1 CPU. Unidade de controle ULA

Informática I. Aula 9. Aula 9-27/09/2006 1

Estruturas de controle: Estrutura de DECISÃO

Laboratório de Programação 1 Algoritmos e a Lógica de Programação

Desenvolvimento de Aplicações Desktop

Disciplina de Algoritmos e Programação

Lic. Engenharia de Sistemas e Informática

Computação Eletrônica

II.1 Conceitos Fundamentais. Uma delas é programar o =>

INFORMÁTICA APLICADA AULA 01 LINGUAGEM DE PROGRAMAÇÃO C++

Fundamentos de Programação 1

Arquitetura e Organização de computadores

Aula 23: Noções de Compilação, Montagem, Link-edição, e Interpretação

Arquitetura e Organização de Computadores

Aula 2 - Programação de Computadores - CI208 1/21

AJProença, Sistemas de Computação, UMinho, 2017/18 1

Organização de Computadores

Algoritmos Computacionais

1.1 Linguagens de Programação

Introdução à Programação

Programação Python. Nesta aula... 1 Programação. 2 Python. Operadores e Operandos Variáveis, Expressões, Instruções Funções Ciclos Comentários

Informática I. Aula Aula 18-29/10/2007 1

Noções de compilação

Fundamentos de Sistemas Operacionais

Classificação das linguagens de programação

Noções de compilação

LAPRO I. Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática - FACIN. Prof. Dr. Rafael Garibotti

Introdução ao Fortran 90

Arquitectura de Computadores

Introdução a Programação

INFORMÁTICA: Informação automática

Transcrição:

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