Sistemas Embarcados. GNU toolchain. Introdução. Mas o compilador sozinho não adianta muito... Compilador. Aula 07
|
|
- Bruna Coradelli Espírito Santo
- 6 Há anos
- Visualizações:
Transcrição
1 Sistemas Embarcados Ferramentas de desenvolvimento GNU toolchain Introdução Projetistas de software empregam várias ferramentas durante o ciclo de desenvolvimento de um software E.g.: editores, compiladores, ligadores, interpretadores, depuradores, analisadores de traços (profilers) etc Ambientes de desenvolvimento integram várias ferramentas e.g.: visual C++, eclipse,.net etc Sistemas embarcados tem a mesma característica Diferença: as ferramentas executam em uma plataforma enquanto as aplicações se destinam a outra Desenvolvimento cruzado (cross-development) Aula 07 2 Compilador Mas o compilador sozinho não adianta muito... É um programa que recebe arquivos fontes e gera objetos Nativo: o objeto é para processador da plataforma que compila Cross: o objeto é para um processador diferente daquele da plataforma que compila Linguagem intermediária é independente de plataforma O backend é que torna um compilador dependente de plataforma Pré-processador Back end É necessário ainda: Bibliotecas de funções Ligadores Carregadores Ferramentas auxiliares para manipular programas objetos e executáveis Tools chains Produtos comerciais ou soluções open-source fonte Linguagem intermediária Código assembly (dependente de arquitetura) 3 4
2 GNU toolchain GNU Compiler Collection (gcc) Conjunto de ferramentas destinado ao desenvolvimento de programas aplicativos e de sistemas GNU make GNU Compiler Collection GNU binutils GNU debbuger GNU build system (autoconf, automake, libtool e gnulib) Além disso: Necessidade de um editor Biblioteca (glibc) Conjunto de compiladores para diferentes linguagens Originalmente denominado de GNU C compiler (gcc) Oferece suporte para vários tipos de processadores Arquitetura: Pré-processador cpp fonte - Retirada comentários - Diretivas de compilação - Expansão de macros Arquivo C intermediário front end Compilador Back end Código assembly (dependente de arquitetura) 5 6 GNU make GNU Debugger (gdb) Ferramenta para automatizar a compilação de aplicações com grande quantidade de arquivos Permite determinar uma árvore de dependências Alterações em um arquivo força a compilação de todos os outros que dele dependem Desvantagem: programadores necessitam definir isso!! Baseado em um arquivo texto que define as dependências Conjunto de linhas contendo regras Permite a definição de variáveis e a inclusão de outros arquivos Depurador padrão do sistema GNU Características principais: Interface em modo textual, mas possui front-ends gráficos (ddd, Eclipse CDT, Xcode e GUDmode do emacs) Visualizar e alterar valor de variáveis Rastrear a execução de programas Oferece mecanismo de fazer depuração remota Interessante para sistemas embarcados 7 8
3 GNU Binary Utilities (binutils) GNU build system (autotools) Coleção de ferramentas de programação para manipulação de código objeto em vários formatos ferramenta as ld gprof addr2line ar c++filter dlltool nlmconv nm assembler linker profiler Descrição sumária Traduz end. Para arquivos e linhas Cria, modifica, extrai arquivos Filtros para simbolos C++ Criação de bibliotecas dinâmicas (windows) Conversor de formato Lista símbolos de arq. objetos ferramenta objcopy objdump ranlib readlf size strings strip windmc windres Descrição sumária Copia arq. objetos Informações sobre arq. objetos Gera índices para arquivos Visualiza arquivos ELF Lista seções e tamanhos de objetos Lista strings de arq. objetos Remove tabela de símbolos Mensagens de recursos windows Compila arq. recursos windows Conjunto de ferramentas para auxiliar o desenvolvimento e o porte de aplicações (entre sistemas Unix) Inclui: GNU autoconf Usado para gerar arquivos de configuração para makefiles GNU automake Auxilia a criação de arquivos makefiles portáveis GNU libtool Permite a criação de bibliotecas estáticas e dinâmicas GNU portability library (Gnulib) Coleção de rotinas projetadas para serem usadas em vários sistemas operacionais 9 10 Cross desenvolvimento Geração de uma cross-toolchain Plataforma de desenvolvimento IA32/AMD + linux Plataforma-alvo ARM Objetivo: Desenvolver aplicações em plataforma diferente da plataforma alvo (target) Motivação: Contornar restrições de memória do target Compensar ausência de dispositivos práticos para E/S Maior disponibilidade de recursos (hardware e software) Necessário gerar código para a plataforma alvo (mínimo) Compilador C que gere código para processador alvo Conjunto de ferramentas binutils para alvo Biblioteca C (uclibc*, glibc, newlib ou similar) Requisitos básicos: Possuir um compilador C funcional Código fonte das ferramentas do toolchain ( Cópia dos arquivos header para a plataforma alvo ( * A ser usada na plataforma ARM ** Necessário para gerar aplicações, porém para gerar o núcleo são necessários todos os fontes
4 Por onde começar? Geração do gcc e da glibc Dependências entre as ferramentas gcc binutils glibc Gerar um compilador gcc simples, que não precise usar a libc Compilador bootstrap Gerar a glibc com o compilador bootstrap Compilar o compilador usando a glibc Lembrete: o compilador é um programa e como tal se compila binutils é independente dos demais e necessário para estes Fácil: é o prìmeiro a ser gerado gcc e glibc (ou similar): problema do ovo e da galinha! Para compilar a biblioteca é necessário ter o compilador Para ter o compilador é necessário ter a biblioteca Certos elementos do compilador dependem da libc binutils gcc -bootstrap gcc glibc glibc uclibc Biblioteca C dentro do projeto GNU Desenvolvida para oferecer desempenho, portabilidade e atender os principais padrões Incluída em todos os sistemas GNU/Linux Licença LGPL Não tem o problema da contaminação Grande para sistemas embarcados e.g: aproximadamente 1.7 MB (libc: 1.2 MB e libm 500 KB) Versão enxuta para sistemas embarcados Desenvolvido por CodePoet Consulting Licença LGPL Alta compatibilidade com a glibc Em processador ARM é cerca de 4 vezes menor que a glibc uclibc: aprox. 400 KB (libuclibc: 300 KB, libm: 55KB) glibc: aprox 1700 KB (libc: 1.2 MB, libm: 500 KB) Usada em várias soluções comerciais de linux embarcado e.g.: MontaVista, TimeSys e Wind River
5 Para dar uma idéia. diet libc C program Compiled with shared libraries Compiled statically glibc uclibc glibc uclibc Plain hello world 4.6 K 4.4 K 475 K 25 K Biblioteca C otimizada para ter tamanho reduzido Projetado para ser usada em programas relativamente pequeno Tamanho da diet libc é aproximadamente de 70 KB Busybox 245 K 231 K 843 K 311 K newlib Métodos para gerar cross-toolchain Biblioteca C mínima Destinada a sistemas embarcados bastante pequenos Suporte para uma variada gama de processadores Possui funções de ponto flutuante de precisão simples Melhor desempenho que a do padrão IEEE Versão simplificada de funções como printf Dois métodos para gerar Faça você mesmo Geração através de ferramentas automáticas Outras formas: Obter uma toolchain já pronta (googleg e paciência!) Aquisição de uma plataforma de desenvolvimento 19 20
6 Faça você mesmo Tarefa trabalhosa e árdua Pode levar muitas horas (dias) Muito detalhes de configuração e geração de vários componentes Há vários relatos e how-tos na web Requisitos fundamentais: Preciso ter os arquivos headers do kernel (arquivos.h) Ser familiar com funcionamento do gcc, de patches, makefiles, comandos Unix e comandos (ld, ar, readelf etc) Fontes necessários estão em Para ter uma idéia da dificuldade Versões gcc / glibc / binutils / kernel Crosstool reports: Auxilia a encontrar uma combinação adequada d entre as versões de gcc, glibc, binutils e headers do kernel para gerar uma toolchains com sucesso! Obter uma versão pré-compilada Algumas referências... Possível encontrar em vários locais Basta saber onde e se são adaptadas ao seu caso Atenção: Várias toolchains são geradas para funcionar em paths fixos Necessário instalar onde elas esperam estar (/usr/local/<arch>) Verificar o modelo específico do processador, big/little endian, versões da biblioteca C e do compilador ARM Disponível para GNU/Linux, EABI e uclinux Também disponível para ambientes windows MIPS (vários links úteis) Coldfire Disponível para ELF, GNU/Linux and uclinux PowerPC Disponível para GNU/Linux e EABI 23 24
7 Geração automática de toolchain Leituras complementares Buildroot Scripts (makefiles) para gerar uma toolchain baseada em uclibc Baixa os fontes e patches necessários Permite também definir um root file system Crosstol Scripts (makefiles) para gerar uma toolchain baseada em glibc Baixa os fontes e patches necessários P. Ragavahn, A. Lad, S. Neelakandan. Embedded Linux System Design and Developement. Auerbach, C. Hallinan. Embedded Linux Primer: A Practical Real-World Approach. Prentice Hall, K. Yaghmour. Building Embedded Linux Systems. Oreilly,
Laboratório de Microprocessadores Compilação Cruzada
Laboratório de Microprocessadores Compilação Cruzada Giovani Gracioli giovani@lisha.ufsc.br Março 2010 Mar 2010 Giovani Gracioli (http://www.lisha.ufsc.br/~giovani) 1 Roteiro Visão geral sobre compilação
Leia maisCOMPILAÇÃO. Ricardo José Cabeça de Souza
COMPILAÇÃO Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Programas Código-fonte escrito em linguagem de programação de alto nível, ou seja, com um nível de abstração muito grande, mais próximo
Leia maisArquitetura e Organização de Computadores. Compiladores e processamento
Arquitetura e Organização de Computadores Compiladores e processamento Verificar a existência dos pacotes: - GCC (Gnu C Compiler); - GDB (Gnu Debuger); - Libc (blibliotecas C); - nano, vi, emacs ou outro
Leia mais16. Compilação no Linux
16. Compilação no Linux 16.1 Compilador X Interpretador Um código fonte pode ser compilado ou interpretado. Compiladores e interpretadores tratam o código de maneira diferente. Interpretador: Lê o código
Leia maisEA876 - Introdução a Software de Sistema
A876 - Introdução a Software de Sistema Software de Sistema: conjunto de programas utilizados para tornar o hardware transparente para o desenvolvedor ou usuário. Preenche um gap de abstração. algoritmos
Leia maisOpenWrt: modelagem do
Instituto Federal do Ceará Essas apresentação possui um acumulado de informações de mais de 9 meses de pesquisa e desenvolvimento em redes mesh utilizando o firmware Openwrt. OpenWrt: modelagem do 1 código
Leia maisUSP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal:
Leia maisIntrodução à Lógica de Programação
Sistemas Operacionais e Introdução à Programação Introdução à Lógica de Programação Programação Tradução de um algoritmo para uma linguagem de programação Cada linguagem de programação possui sua sintaxe
Leia maisCompiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores
Motivação Prof. Sérgio Faustino Compiladores Conhecimento das estruturas e algoritmos usados na implementação de linguagens: noções importantes sobre uso de memória, eficiência, etc. Aplicabilidade freqüente
Leia maisIntrodução à Programação Aula 04. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Introdução à Programação Aula 04 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação QUAL LINGUAGEM IREMOS ESTUDAR? 2 Introdução à Programação Linguagens
Leia maisUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores
Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores 1 Objetivo Roteiro de Laboratório 2 Ambiente de Desenvolvimento
Leia maisPuca Huachi Vaz Penna
BCC201 Introdução à Computação Turmas 31, 32 e 33 Puca Huachi Vaz Penna Departamento de Computação Universidade Federal de Ouro Preto http://www.decom.ufop.br/puca puca@iceb.ufop.br Aula 2 Introdução:
Leia maisIDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias
1 IDES E PROGRAMAÇÃO Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias {claudio,macdias}@icmc.usp.br 2 Agenda Conceitos Instalação e Configuração Compilação e Execução de Código IDEs Exemplo
Leia maisLaboratório de Introdução à Ciência da Computação I
Laboratório de Introdução à Ciência da Computação I Aula 1 - Estrutura Sequencial Professor: Jó Ueyama Estagiário PAE: Bruno S. Faiçal 1 Sumário Estrutura de programas (sequenciais) Tipos de dados simples
Leia maisLinguagens de Programação Sistemas de Linguagens
Linguagens de Programação Sistemas de Linguagens Andrei Rimsa Álvares Sumário Introdução A sequência clássica Sobre o;mizações Variações da sequência clássica Depuradores (Debuggers) Suporte em tempo de
Leia maisFerramentas Programação. UDESC - Prof. Juliano Maia 1
Ferramentas Programação UDESC - Prof. Juliano Maia 1 Índice Seção 1 Linguagens de Programação Seção 2 Interpretador Seção 3 Compilador / Linkeditor Seção 4 Ambientes de Desenvolvimento UDESC - Prof. Juliano
Leia maisFerramenta para Desenvolvimentode Sistemas EmbarcadosUtilizando Linguagem de Alto Nível p.1/25
Universidade Federal do Rio Grande do Sul Escola de Engenharia - Instituto de Informática Graduação em Engenharia de Computação Ferramenta para Desenvolvimento de Sistemas Embarcados Utilizando Linguagem
Leia maisDisciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2015 - BSI Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal:
Leia maisUSP - ICMC - SSC SSC o. Semestre BSI. Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2015 - BSI Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal:
Leia maisIntrodução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan
Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada
Leia maisProgramação de Periféricos
Programação de Periféricos Componentes Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Apresentação Raspberry pi Sistema Operacional embarcado Atividade Raspberry pi Sistema computacional
Leia maisAmbiente de Desenvolvimento
Ambiente de Desenvolvimento Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04008 Sistemas de Tempo Real Copyright
Leia maisLinguagens de Programação Classificação
Classificação Classificação A proximidade que a linguagem de programação tem com a humana determina sua classe (o nível): Linguagem de máquina (primeira geração) Linguagem assembly - de montagem (segunda
Leia maisPROGRAMAÇÃO I. Introduçã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
Leia maisAlgoritmos e Programação
ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA ELÉTRICA
Leia maisLaboratório de Introdução à Ciência da Computação I
Laboratório de Introdução à Ciência da Computação I Aula 1 - Estrutura Sequencial Professores: Vanderlei Bonato (responsável) - vbonato@icmc.usp.br Luiz Henrique Kiehn (aluno PAE) - lhkiehn@icmc.usp.br
Leia maisAlgoritmos e Programação
ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS Algoritmos e Programação
Leia maisLaboratório de Introdução à Ciência da Computação I
Laboratório de Introdução à Ciência da Computação I Aula 1 - Estrutura Sequencial Professores: Vanderlei Bonato (responsável) - vbonato@icmc.usp.br Roberto de M. F. Filho (aluno PAE) - rmdff@icmc.usp.br>
Leia maisGetting Started. Pedro Garcia de Janeiro de Assembly Working Party
Pedro Garcia http://www.sawp.com.br 22 de Janeiro de 2010 Assembly Working Party Laboratório de Cálculos Científicos, Instituto de Física, Universidade de Brasília, Brasil Motivação Tópicos 1 Motivação
Leia maisDesenvolvimento para Sistemas Embarcados (CEA 513) Sistema de Arquivos Raiz & Componentes do Kernel
Universidade Federal de Ouro Preto Departamento de Computação e Sistemas - DECSI Desenvolvimento para Sistemas Embarcados (CEA 513) Sistema de Arquivos Raiz & Vicente Amorim vicente.amorim.ufop@gmail.com
Leia maisConstrução de Compiladores. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2014.
Construção de Compiladores Capítulo 1 Introdução José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2014.2 1/22 1 Linguagens de programação 2 Compilação 2/22 Tópicos 1
Leia maisNoções de compilação
Noções de compilação Compilador: o que é, para que serve e estrutura geral Parentes do compilador e programas correlatos Prof. Thiago A. S. Pardo 1 Compilação: por que estudar? (parte 1) Compiladores:
Leia maisNoções de compilação
Noções de compilação Compilador: o que é, para que serve e estrutura geral Parentes do compilador e programas correlatos Prof. Thiago A. S. Pardo 1 Exercício em duplas Para esquentar... 2 1 Compilação:
Leia maisAula 08 Ferramentas de desenvolvimento. Alessandro Garcia Alexander Chávez Eduardo Fernandes Leonardo Sousa LES/DI/PUC-Rio Setembro 2017
Aula 08 Ferramentas de desenvolvimento Alessandro Garcia Alexander Chávez Eduardo Fernandes Leonardo Sousa LES/DI/PUC-Rio Setembro 2017 Especificação Objetivo dessa aula Apresentar algumas das ferramentas
Leia maisDisciplina de Introdução à Ciência da Computação Laboratório de ICC (Estatística)
USP - ICMC - SSC SSC 0801-1o. Semestre 2013 Disciplina de Introdução à Ciência da Computação Laboratório de ICC (Estatística) Prof. Fernando Santos Osório (Prática) / Prof. Cláudio Toledo (Teoria) Email:
Leia maisEstrutura dos Sistemas Operacionais. Adão de Melo Neto
Estrutura dos Sistemas Operacionais Adão de Melo Neto 1 Sistema Operacional - Formas de acessar o KERNEL do SISTEMA OPERACIONAL (SO) - A linguagem de comandos faz parte do SO O Sistema Operacional é formado
Leia maisDisciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]
USP - ICMC - SSC SSC 0300-2o. Semestre 2013 Disciplina de [ Eng. Elétrica / Automação ] Prof. Dr. Fernando Santos Osório / PAE: Rafael Klaser (LRM / ICMC) LRM - Laboratório de Robótica Móvel do ICMC /
Leia maisALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal
ALGORITMOS AULA 01 Baseado nas aulas do Prof. Jorgiano Vidal LINGUAGEM C Uma das grandes vantagens do C é que ele possui tanto caracterìsticas de "alto nìvel" quanto de "baixo nìvel". Linguagem de propósito
Leia maisProgramação I A Linguagem C. Prof. Carlos Alberto
Programação I A Linguagem C Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br 2 Origem A linguagem C foi desenvolvida em 1972, nos Laboratórios Bell, por Dennis Ritchie. Implementada
Leia maisUSP - ICMC - SSC SSC o. Semestre Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]
USP - ICMC - SSC SSC 0300-2o. Semestre 2013 Disciplina de [ Eng. Elétrica / Automação ] Prof. Dr. Fernando Santos Osório / PAE: Rafael Klaser (LRM / ICMC) LRM - Laboratório de Robótica Móvel do ICMC /
Leia maisIntrodução à Programação Aula 04. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Introdução à Programação Aula 04 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação QUAL LINGUAGEM IREMOS ESTUDAR? 2 Introdução à Programação Linguagens
Leia maisUniversidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Introdução geovanegriesang@unisc.br Processadores de linguagem Linguagens de programação são notações para se descrever
Leia maisIntrodução à Computação: Máquinas Multiníveis
Introdução à Computação: Máquinas Multiníveis Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,
Leia maisCompiladores. Introdução
Compiladores Introdução Apresentação Turma Noite Continuada I 20/03 Continuada II 22/05 Atividades Regimental 05/06 Total 1 Ponto 1 Ponto 1 Ponto 7 Pontos 10 Pontos Aulas expositivas teórico-práticas Exercícios
Leia mais1/16 MAKEFILES Makefiles Programação II
1/16 MAKEFILES Definição 2/16 Definição O makefile - é um arquivo para configuração de compilação utilizado pelo programa make, - a ideia é simplificar e agilizar a compilação de programas. Vantagens e
Leia maisEstrutura do SO. Prof. Paulo Cesar F. de Oliveira, BSc, PhD
Estrutura do SO Prof. Paulo Cesar F. de Oliveira, BSc, PhD 1 Seção 1.1 Introdução 2 Usuários Aplicações Utilitários Linguagem de Comandos Núcleo do Sistema ou kernel Rotinas do Sistema Operacional Hardware
Leia maisTutorial Ultra-rápido: desenvolvendo programas C em Unix
Tutorial Ultra-rápido: desenvolvendo programas C em Unix Jerônimo C. Pellegrini 1 Introdução Este é um breve guia para programação em C em Unix. O texto está longe de ser completo (na verdade nem tem estrutura
Leia maisLigação e Relocação. Noemi Rodriguez Ana Lúcia de Moura Raúl Renteria.
Ligação e Relocação Noemi Rodriguez Ana Lúcia de Moura Raúl Renteria http://www.inf.puc-rio.br/~inf1018 Compilação e Ligação hello.c Preprocessador hello.i programa fonte expandido (texto) Compilador hello.s
Leia maisArquitetura e Organização de Computadores. Compiladores e processamento
Arquitetura e Organização de Computadores Compiladores e processamento Verificar a existência dos pacotes: - GCC (Gnu C Compiler); - GDB (Gnu Debuger); - Libc (blibliotecas C); - nano, vi, emacs ou outro
Leia maisAmbiente de Desenvolvimento de Programas
Ambiente de Desenvolvimento de Programas Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica Programa de Pós-Graduação
Leia maisApresentação da disciplina. Programação em ambiente Linux prof: Taisy Silva Weber
Apresentação da disciplina Programação em ambiente Linux prof: Taisy Silva Weber Página da disciplina endereço http://www.inf.ufrgs.br/~taisy/disciplinas/ conteúdo da página: listas de exercícios conceitos
Leia maisMakefiles O que é mak a efi f le make
O que é O makefile é um arquivo para configuração de compilação utilizado pelo programa make, cuja ideia é simplificar e agilizar a compilação de programas. Vantagens e uso Evita a compilação de arquivos
Leia maisMIEI Sistemas de Computação 2017/18. Níveis de Abstração. TPC5 e Guião laboratorial. Luís Paulo Santos e Alberto José Proença
MIEI Sistemas de Computação 2017/18 Níveis de Abstração TPC5 e Guião laboratorial Luís Paulo Santos e Alberto José Proença ------------------------------------------------------------------------------------------------------------------------------------------------
Leia maisBibliotecas são arquivos que contêm módulos reutilizáveis pré-compilados que serão usados por desenvolvedores de aplicações.
19. - Biblioteca de funções Os arquivos.c estão associados aos headers correspondentes, logo tem-se que: arquivo.h + arquivo.c = arquivo.o Bibliotecas são arquivos que contêm módulos reutilizáveis pré-compilados
Leia maisMétodos de implementação de linguagens. Kellen Pinagé
Métodos de implementação de linguagens Kellen Pinagé Sumário Métodos de implementação de linguagens Compilação Interpretação pura Híbrido Métodos de implementação de linguagens Principais componentes de
Leia maisUSP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental
USP - ICMC - SSC SSC 0301-2o. Semestre 2013 Disciplina de Introdução à Computação para Engenharia Ambiental Prof. Dr. Fernando Santos Osório LRM - Laboratório de Robótica Móvel do ICMC / CROB-SC Email:
Leia maisEstrutura dos Sistemas Operacionais. Adão de Melo Neto
Estrutura dos Sistemas Operacionais Adão de Melo Neto 1 Sistema Operacional -São partes do SO -São ferramentas de apoio ao usuário -São formas de acessar as rotinas do kernel O Sistema Operacional é formado
Leia maisInstalação e Configuração de Servidores Linux Server. Prof. Alex Furtunato
Instalação e Configuração de Servidores Linux Server Prof. Alex Furtunato alex.furtunato@academico.ifrn.edu.br Roteiro Definições Histórico Características Principais Distribuições Shell Partições Sistemas
Leia maisINSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Introdução Copyright 2014 IFRN Agenda Conceitos básicos ANSI C Hello World Funções em C Exercícios 2 /26 A linguagem
Leia maisde Redes de Computadores Linux
Curso de Formação Continuada de Configuração de Redes de Computadores Linux Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello
Leia maisLinguagens de Programaçã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
Leia maisIntrodução à Programação Aula 16. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Introdução à Programação Aula 16 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação COMO UM PROGRAMA C É COMPILADO? 2 Compilação de um Programa A compilação
Leia maisIntrodução à Computação
Introdução à Computação Jordana Sarmenghi Salamon jssalamon@inf.ufes.br jordanasalamon@gmail.com http://inf.ufes.br/~jssalamon Departamento de Informática Universidade Federal do Espírito Santo Agenda
Leia maisLABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO
LABORATÓRIO DE SISTEMAS OPERACIONAIS PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO Sistema Operacional Conteúdo retirado do livro Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo
Leia maisIntrodução à plataforma Java
Introdução à plataforma Java Apresentação: Professor: Galvez Gonçalves prof.gago@gmail.com O que estudaremos 1. Os conceitos de programação orientada a objetos através de uma linguagem de programação que
Leia maisProgramação de Sistemas (Sistemas de Programação) Semana 10, Aula 17
PCS3616 Programação de Sistemas (Sistemas de Programação) Semana 10, Aula 17 Linguagens e Compiladores Programação em linguagem de alto nível Escola Politécnica da Universidade de São Paulo Roteiro 1.
Leia maisGprof Avaliação de desempenho. Prof: Paulo Maciel Instrutor: Jamilson Dantas
Gprof Avaliação de desempenho Prof: Paulo Maciel prmm@cin.ufpe.br Instrutor: Jamilson Dantas jrd@cin.ufpe.br Agenda Porque medir a eficiência de um Algoritmo? Como Medir O que é o Gprof? Por que usar um
Leia maisEstrutura do Sistema Operacional
Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 04 Estrutura do Sistema Operacional 2 1 Estrutura do Sistema Operacional
Leia maisINFORMÁTICA: Informação automática
INTRODUÇÃO INFORMÁTICA: Informação automática Definição: é a ciência que estuda o tratamento automático e racional da informação (encarregada pelo estudo e desenvolvimento de máquinas e métodos para processar
Leia maisMC-102 Aula 01. Instituto de Computação Unicamp
MC-102 Aula 01 Introdução à Programação de Computadores Instituto de Computação Unicamp 2016 Roteiro 1 Por que aprender a programar? 2 Hardware e Software 3 Organização de um ambiente computacional 4 Algoritmos
Leia maisUniversidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação
Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação Especificação da Projeto de Laboratório de Programação Parte 1 Salvador, 2009 Universidade Federal da Bahia Instituto
Leia maisAula 23: Noções de Compilação, Montagem, Link-edição, e Interpretação
Aula 23: Noções de Compilação, Montagem, Link-edição, e Interpretação Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Compilação, Montagem, Link-edição,
Leia maisDesenvolvimento de Aplicações Desktop
Desenvolvimento de Aplicações Desktop Conceitos Básicos de Programação Professor: Charles Leite O Desenvolvimento de Programas A programação consiste em indicar como o computador (hardware) deve trabalhar
Leia maisLinguagens e Compiladores
Linguagens e Compiladores Aula 1: a) Critérios b) Noções de Compiladores e Interpretadores c) Usos da tecnologia de compilação d) Compiladores, filtros e pré-processadores e) Estruturação lógica de compiladores
Leia maisProgramação para Servidores. Cassio Diego
Programação para Servidores Cassio Diego contato@cassiodiego.com Unidade 1 1. INTRODUÇÃO 1.1. Definição de shell script 1.2. Programação script 1.3. Scripts versus linguagens compiladas 1.4. Caracteres
Leia maisFerramentas de automação
Ferramentas de automação LABI Manuel Costa, Henrique Ferreira Ferramentas de automação DETI Manuel Costa, Henrique Ferreira manuel.alejandro@ua.pt, henriqueferreira@ua.pt Entregue dia 29/11/2015 Contents
Leia maisUma breve introdução a C++ no Eclipse
Uma breve introdução a C++ no Eclipse J.P. Kerr Catunda #USP: 2961692 IME-USP 8 de fevereiro de 2009 Este documento, junto com seu fonte, é distribuido sob a licença Creative Commons, que pode ser vista
Leia maisCompiladores I Prof. Ricardo Santos (cap 1)
Compiladores I Prof. Ricardo Santos (cap 1) Compiladores Linguagens de programação são notações que permitem descrever como programas devem executar em uma máquina Mas, antes do programa executar, deve
Leia maisEstrutura dos Sistemas Operacionais. Adão de Melo Neto
Estrutura dos Sistemas Operacionais Adão de Melo Neto 1 2 3 SISTEMA OPERACIONAL(SO) DEFINIÇÃO É um conjunto de rotinas ou processos (executado pelo processador) que controla o funcionamento do computador
Leia maisIntrodução. Nível da Linguagem de Montagem. Linguagem de Montagem (2) Linguagem de Montagem (1) Linguagem de Montagem
Nível da Linguagem de Montagem (Aula 15) Linguagem de Montagem Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Introdução Tradutores Programas que convertem um programa
Leia mais3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Linguagem de programação C 3.1. Conceitos
Leia maisAula 2 - Programação de Computadores - CI208 1/21
Aula 2 - Programação de Computadores - CI208 Professor: Leonardo Gomes leonardog@inf.ufpr.br Universidade Federal do Paraná Brazil 2016 - Segundo semestre Aula 2 - Programação de Computadores - CI208 1/21
Leia maisProf. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior
Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior Meio pelo qual se pode indicar os passos que devem ser realizados pelo computador para resolver problemas; Através da linguagem,
Leia maisProgramação 2010/2011 MEEC
Programação 2010/2011 MEEC Code::Blocks Criação de projectos O Code::Blocks é um IDE (ambiente de desenvolvimemnto integrado) que permite a escrita do codigo, compilação, correcção de erros e depuração
Leia maisIntrodução à Computação
UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Introdução à Computação Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Histórico da Computação Prof. Yandre
Leia maisIntrodução à Computação
UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Introdução à Computação Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Histórico da Computação Prof. Yandre
Leia maisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais Sistemas Operacionais - Tópicos Componentes do Sistema Serviços de Sistemas Operacionais Chamadas ao Sistema Estrutura do Sistema Máquinas Virtuais Chamadas ao Sistema
Leia maisAula 1 Apresentação do Curso
Departamento de Sistemas de Computação Universidade de São Paulo SSC 502 Laboratório de Introdução a Ciência de Computação I Aula 1 Apresentação do Curso Responsável Prof. Seiji Isotani (sisotani@icmc.usp.br)
Leia maisLinguagem C. Produção de programas em C (Ligação estática) Centro de Cálculo Instituto Superior de Engenharia de Lisboa
Capítulo 7, secções.1-.9 Capítulo 4, secções.5-.11 Linguagem C Produção de programas em C (Ligação estática) Centro de Cálculo Instituto Superior de Engenharia de Lisboa João Pedro Patriarca (jpatri@cc.isel.ipl.pt)
Leia maisProgramação para Servidores. Cassio Diego
Programação para Servidores Cassio Diego contato@cassiodiego.com 1 Unidade 1 1. INTRODUÇÃO 1.1. Definição de shell script 1.2. Programação script 1.3. Scripts versus linguagens compiladas 1.4. Caracteres
Leia maisEstrutura de Programas e Tipos de Dados Simples
SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Estrutura de Programas e Tipos de Dados Simples Prof. Vanderlei Bonato: vbonato@icmc.usp.br Prof. Claudio Fabiano Motta Toledo: claudio@icmc.usp.br
Leia maisAULA 03: FUNCIONAMENTO DE UM COMPUTADOR
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 03: FUNCIONAMENTO DE UM COMPUTADOR Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE É UM COMPUTADOR?
Leia maisEditor Eclipse para Programas F
Editor Eclipse para Programas F Guia de instalação e utilização Instalação Comece por descarregar a aplicação de instalação CP_setup.exe do endereço http://www.math.ist.utl.pt/~jabr/cp/ Uma vez descarregada,
Leia maisComputadores podem ser úteis em problemas que envolvem: Grande número de dados. Grande número de cálculos. Complexidade. Precisão.
O uso do computador Computadores podem ser úteis em problemas que envolvem: Grande número de dados. Grande número de cálculos. Complexidade. Precisão. Exemplos: Modelos meteorológicos. Cálculo estrutural.
Leia maisConversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação
Conversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação Para executar uma tarefa qualquer, um computador precisa receber instruções precisas sobre o que fazer. Uma seqüência adequada
Leia maisDepartamento de Engenharia Informática. Sistemas Operativos 1. Utilitário Make
Departamento de Engenharia Informática Sistemas Operativos 1 Utilitário Make Março 2003 1. Modelo de Compilação da Linguagem C Compilar um programa muito simples em C requer, pelo menos, o ficheiro de
Leia maisAmbiente de desenvolvimento
Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa
Leia mais