PROGRAMAÇÃO I. Introdução



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

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

Programação de Computadores

Programação de Computadores

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

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

Linguagens de Programação

Linguagens de Programação Classificação

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

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

Linguagem de Programação

Algoritmos e Programação

Algoritmos e Programação

Algoritmos Computacionais

Introdução à Computação

Sistemas Operacionais

Introdução (Aula 2) Introdução Arquitetura de Hardware. Organização Estruturada de Computadores. Introdução Conceitos (2) Introdução Conceitos (1)

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Algoritmos e Programação

Introdução. (Aula 2) Organização Estruturada de Computadores

Computadores podem ser úteis em problemas que envolvem: Grande número de dados. Grande número de cálculos. Complexidade. Precisão.

Programação de Computadores

16. Compilação no Linux

Compiladores. Introdução à Compiladores

3. Linguagem de Programação C

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

4 O conceito de variável

Introdução ao Fortran 90

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

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

Procedimentos. Sistemas de Computação

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

Ferramentas Programação. UDESC - Prof. Juliano Maia 1

Programação I A Linguagem C. Prof. Carlos Alberto

Introdução a Programação de Jogos

Linguagens de Programação

INF 1005 Programação I

Sistema Computacional

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

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

Fundamentos de Programação 1

Algoritmos. Prof. Jonatas Bastos Site:

1.1 Linguagens de Programação

Arquitetura de Von Neumann

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

COMPILAÇÃO. Ricardo José Cabeça de Souza

Introdução à Programação

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

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

Projeto de Compiladores

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E DO DESPORTO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS CEFET-MG UNIDADE DE ENSINO

Máquinas. Visão geral O que você precisa Fatores de sucesso O futuro. realizar algo, precisa que alguém m lhe indique o que fazer V.V.

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

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

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

Conceitos básicos sobre computadores (continuação)

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

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

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

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

Estrutura e funcionamento básico de um computador

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

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

Programação de Computadores:

Programação Básica. Introdução à programação de computadores

TÉCNICO DE INFORMÁTICA - SISTEMAS

Paradigmas de Linguagem de Programação. Aspectos Básicos

Montador (assembler)

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

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

Puca Huachi Vaz Penna

Conceitos de Linguagens de Programação

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

Desenvolvimento de Aplicações Desktop

Ambiente de desenvolvimento

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

Compiladores I Prof. Ricardo Santos (cap 1)

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

INE5421 LINGUAGENS FORMAIS E COMPILADORES

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

Conceitos Básicos de Programação

Introdução à Computação

Introdução a Lógica de Programação

Infraestrutura de Hardware. Funcionamento de um Computador

Introdução à Computação

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

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

Compiladores. Prof. Bruno Moreno

Programação de Computadores I Introdução PROFESSORA CINTIA CAETANO

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

ORGANIZAÇÃO DE COMPUTADORES

Programação de Computadores I

TÉCNICO EM MANUTENÇÃO E SUPORTE EM INFORMÁTICA FORMA SUBSEQUENTE. Professora: Isabela C. Damke

Fundamentos de Programação 1

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

USP - ICMC - SSC SSC o. Semestre BSI. Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

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

Transcrição:

PROGRAMAÇÃO I Introdução

Introdução 2 Princípios da Solução de Problemas Problema 1 Fase de Resolução do Problema Solução na forma de Algoritmo Solução como um programa de computador 2 Fase de Implementação (ou codificação) do Algoritmo em alguma Ling. de Programação

Introdução 3 Princípios da Solução de Problemas Entendimento do problema Criação de uma sequência de operações (ou ações) que, quando executadas, produzem a solução do problema Descrição desse conjunto de ações Codificação (uso de uma linguagem de programação) Resolução de Problema Programação

Processamento de Dados 4 Entrada Processamento Saída Qualquer atividade ou conjunto de atividades ordenadamente realizadas que, utilizando informações (ou dados) básicos, efetua transformações para obter novas informações (ou dados) como resultado

Programa 5 Dispositivo de Entrada Processamento Dispositivo de Saída Teclado, Mouse, etc Linguagem de Programação Programa Instruções (comandos) a serem executadas pelo computador Impressora, Video, Disco, etc

Algoritmo X Programa 6 Algoritmo É uma sequência de passos que visa atingir um objetivo Codificação Programa Instruções (comandos) passo a passo para ser executado pelo computador Converter as declarações de um algoritmo em um conjunto de instruções numa linguagem de programação específica Código

Linguagem de Programação Linguagem de Alto Nível Linguagem de Montagem Linguagem de Máquina 7

Linguagem de Máquina Código na forma binária (ou hexadecimal) Necessidade de conhecer as instruções da máquina e seus respectivos códigos de operação Necessidade de conhecer os componentes (registradores) do processador (UCP) e os endereços de memória Ex: Programa para calcular 23 + 100 8 0010 0001 0000 0000 0001 0111 0000 0001 0000 0000 0110 0100 0000 1001

Linguagem de Montagem Assembly Language Instruções escritas através de símbolos Cada instrução corresponde a uma única instrução em linguagem de máquina Necessidade de converter o programa para a linguagem de máquina Processo chamado de Montagem realizado por um programa chamado Montador (ou Assembler) Ex: programa para calcular 23+100 9 LD HL,23 LD BC, 100 ADD HL, BC

Processo de Montagem 10 Código Fonte Programa original em linguagem de montagem Montagem Montador Código Objeto Programa resultante em linguagem binária

Linguagem de Alto Nível 11 Estruturadas de acordo com a compreensão do programador Cada instrução pode corresponder a dezenas de instruções de máquina orientada ao problema Necessidade de converter o programa para linguagem de máquina Processo chamado de Compilação realizado por um programa chamado Compilador Ex. Linguagens: Fortran, Pascal, C, Java Ex: Programa para calcular 23+100 A=23 B=100 TOTAL=A+B

Processo de Compilação 12 Código Fonte Programa original em linguagem de alto nivel Compilação Compilador Código Objeto Programa em linguagem binária

Funções do Compilador Compilação é semelhante a montagem porém é é um processo mais complexo e demorado (diferente da relação 1:1 das linguagens de montagem) Também chamada de tradução Realiza várias tarefas: Análise léxica Análise sintática Análise semântica Criação do código binário 13

Funções do Compilador Análise léxica Verificar se todos os símbolos (comandos ou não) utilizados são permitidos pela linguagem (Ex: atribuição em Pascal é :=, em C é = ) Análise sintática Verifica a estrutura de cada comando Análise semântica Análise semântica estática (regras de compilação) dos comandos Ex: Desvio para uma linha que não existe 14

Ligação ou Linkedição Facilidade criada para evitar que o programador precise codificar todas as operações Algumas operações já são disponibilizadas (no sistema) em código binário pelas linguagens 15 O código é buscado e integrado ao programa que está sendo desenvolvido Processo chamado de linkedição (ou ligação) realizado por um linkeditor (ou ligador)

Ligação ou Linkedição Exemplo de códigos (funções) existentes: Impressão, raiz quadrada, comparação de dois nomes, etc. 16 Esses códigos objetos (rotinas) são organizados em Bibliotecas Identificados pelo nome da rotina Incorporados no programa a partir de uma chamada de biblioteca

Processo de Linkedição 17 Código Fonte Programa original em linguagem de alto nível Compilação Compilador Código Objeto Programa em linguagem binária (arquivos.obj ) Ligação Ligador/ Linkeditor Biblioteca 1 Biblioteca 2 Biblioteca... Código Executável Programa resultante em linguagem binária (arquivos.exe ou.com )

Funções do Linkeditor 18 Quando o compilador encontra uma chamada à rotina de biblioteca, cria uma referência externa não resolvida Linkeditor analisa todo o código objeto procurando por referência externa não resolvida Para cada referência externa não resolvida Procura na biblioteca a rotina correspondente Quando encontra, substitui a linha de comando pelo código objeto encontrado na biblioteca

Execução 19 Execução propriamente dita do código executável Existem bibliotecas dinâmicas que são carregadas somente na execução Processo realizado por um programa chamado carregador (ou loader) Existem carregadores (loaders) que fazem toda a linkedição e execução ao mesmo tempo (sem armazenar código executável, ou seja, o código é gerado mas não armazenado)

Processo de Execução Completa 20 Código Fonte Programa original em linguagem de alto nível Compilação Compilador Código Objeto Programa em linguagem binária Ligação Ligador/ Linkeditor Biblioteca 1 Biblioteca 2 Biblioteca... Código Executável Programa resultante em linguagem binária Ligação Carregador

Interpretação 21 Usado por linguagens de alto nível Execução das três fases (compilação, linkedição e execução) de uma só vez Processo chamado de interpretação realizado por um programa chamado interpretador Lê comando converte em código executável executa (antes que o comando seguinte seja lido) Ex. linguagens: PHP, Python, Perl

Compilação X Interpretação Compilação Menor consumo de memória Utilização de partes comuns (rotinas de repetição) uma única vez 22 Interpretação Maior consumo de memória Necessidade de partes comuns (rotinas de interpretação) várias vezes Necessidade de carregar o código fonte na memória durante a execução Execução mais lenta (necessidade de tradução, linkedição e execução)

Etapas de desenvolvimento e execução de um programa Desenvolver o algoritmo Elaborar como solucionar passo a passo o problema Envolve o que chamamos de lógica de programação Codificar o algoritmo Escrever o algoritmo em uma linguagem de programação Interpretar ou Compilar Linkeditar Executar o programa 23

Linguagem C 24 É uma linguagem de alto nível com uma sintaxe bastante estruturada e flexível tornando sua programação bastante simplificada. Programas em C são compilados, gerando programas executáveis. O C compartilha recursos tanto de alto quanto de baixo nível, pois permite acesso e programação direta do microprocessador (rotinas podem ser facilmente implementadas usando instruções em Assembly).

Compiladores de C 25 Os mais famosos são os softwares da Borland e da Microsoft, que são bons e oferecem muitos recursos. O problema é que estes compiladores são caros e voltados principalmente para programadores experientes, que podem fazer uso dos recursos avançados destes programas.

Compiladores de C 26 Existem muitos compiladores de C/C++ no mercado. Para quem está ainda aprendendo existem várias opções de compiladores freeware (software livre, de graça ), por exemplo: Dev-C++, CodeBlocks, Borland C++ Compiler, etc GNU C/C++ - gcc Para nos ajudar a aprender a programar em C utilizaremos um dos mais populares compiladores freeware, o DevC++.