Igor Zhirkov. Novatec

Tamanho: px
Começar a partir da página:

Download "Igor Zhirkov. Novatec"

Transcrição

1 Igor Zhirkov Novatec

2 Original English language edition published by Manning Publications Co, Copyright 2017 by Manning Publications. Portuguese-language edition for Brazil copyright 2018 by Novatec Editora. All rights reserved. Edição original em inglês publicada pela Manning Publications Co, Copyright 2017 pela Manning Publications. Edição em português para o Brasil copyright 2018 pela Novatec Editora. Todos os direitos reservados. Copyright 2018 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens PratesLIS Tradução: Lúcia A. Kinoshita Revisão gramatical: Tássia Carvalho Editoração eletrônica: Carolina Kuwabata ISBN: Histórico de impressões: Abril/2018 Primeira edição Novatec Editora Ltda. Rua Luís Antônio dos Santos São Paulo, SP Brasil Tel.: novatec@novatec.com.br Site: Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec LIS

3 Sumário Sobre o autor...15 Sobre o revisor técnico...16 Agradecimentos...17 Introdução...19 Parte I Linguagem Assembly e arquitetura de computadores Capítulo 1 Básico sobre arquitetura de computadores Arquitetura do núcleo Modelo de computação Arquitetura de von Neumann Evolução Desvantagens da arquitetura de von Neumann Arquitetura Intel Extensões da arquitetura Registradores Registradores de propósito geral Outros registradores Registradores de sistema Anéis de proteção Pilha de hardware Resumo Capítulo 2 Linguagem Assembly Configurando o ambiente Trabalhando com os códigos de exemplo Escrevendo Hello, world Entrada e saída básicas Estrutura do programa

4 6 Programação em Baixo Nível Instruções básicas Exemplo: exibindo o conteúdo de registradores Rótulos locais Endereçamento relativo Ordem de execução Chamadas de função Trabalhando com dados Endianness Strings Pré-processamento de constantes Ponteiros e diferentes tipos de endereçamento Exemplo: calculando o tamanho de uma string Exercício: biblioteca de entrada/saída Autoavaliação Resumo Capítulo 3 Legado Modo real Modo protegido Segmentação mínima em modo longo Acessando partes de registradores Um comportamento inesperado CISC e RISC Explicação Resumo...85 Capítulo 4 Memória virtual Caching Motivação Espaços de endereçamento Recursos Exemplo: acessando um endereço proibido Eficiência Implementação Estrutura dos endereços virtuais Tradução de endereços em detalhes Tamanhos de página Mapeamento de memória Exemplo: mapeando um arquivo na memória Nomes mnemônicos para constantes Exemplo completo Resumo

5 Sumário 7 Capítulo 5 Pipeline de compilação Pré-processador Substituições simples Substituições com argumentos Substituição condicional simples Condicionais sobre a definição Condicionais sobre a identidade de textos Condicionais sobre o tipo de argumento Ordem de avaliação: define, xdefine, assign Repetição Exemplo: calculando números primos Rótulos em macros Conclusão Tradução Ligação ELF (Executable and Linkable Format) Arquivos-objeto relocáveis Arquivos-objeto executáveis Bibliotecas dinâmicas Loader Exercício: dicionário Resumo Capítulo 6 Interrupções e chamadas de sistema Entrada e saída O registrador TR e o Task State Segment Interrupções Chamadas de sistema Registradores específicos de modelo syscall e sysret Resumo Capítulo 7 Modelos de computação Máquinas de estado finitas Definição Exemplo: paridade de bits Implementação em linguagem Assembly Importância prática Expressões regulares Máquina de Forth Arquitetura Trace de um exemplo de programa em Forth

6 8 Programação em Baixo Nível Dicionário Como as palavras são implementadas Compilador Exercício: compilador e interpretador de Forth Dicionário estático e interpretador Compilação Forth com bootstrap Resumo Parte II A linguagem de programação C Capítulo 8 Básico da linguagem C Introdução Estrutura do programa Tipos de dados Controle de fluxo if while for goto switch Exemplo: divisor Exemplo: é um número de Fibonacci? Instruções e expressões Tipos de instrução Construindo expressões Funções Pré-processador Resumo Capítulo 9 Sistema de tipos Sistema básico de tipos em C Tipos numéricos Casting de tipo Tipo booleano Conversões implícitas Ponteiros Arrays Arrays como argumentos de função Inicializadores designados em arrays Aliases de tipo Revendo a função main...228

7 Sumário Operador sizeof Tipos const Strings Tipos função Escrevendo um bom código Exercício: produto escalar Exercício: verificador de número primo Tipos com tags Estruturas Uniões Estruturas e uniões anônimas Enumerações Tipos de dados nas linguagens de programação Espécies de tipagem Polimorfismo Polimorfismo in C Polimorfismo paramétrico Inclusão Sobrecarga Coerções Resumo Capítulo 10 Estrutura do código Declarações e definições Declarações de função Declarações de estrutura Acessando código a partir de outros arquivos Funções de outros arquivos Dados em outros arquivos Arquivos de cabeçalho A biblioteca-padrão Pré-processador Guarda de inclusão Por que o pré-processador é maléfico? Exemplo: soma de um array dinâmico Uma espiada na alocação dinâmica de memória Exemplo Exercício: lista ligada Exercício Palavra reservada static Ligação Resumo...288

8 10 Programação em Baixo Nível Capítulo 11 Memória Revendo os ponteiros Por que precisamos de ponteiros? Aritmética de ponteiros Tipo void* NULL Uma palavrinha sobre ptrdiff_t Ponteiros de função Modelo de memória Alocação de memória Arrays e ponteiros Detalhes da sintaxe Strings literais String Interning Modelos de dados Streams de dados Exercício: funções de alta ordem e listas Funções de alta ordem comuns Exercício Resumo Capítulo 12 Sintaxe, semântica e pragmática O que é uma linguagem de programação? Sintaxe e gramáticas formais Exemplo: números naturais Exemplo: aritmética simples Descida recursiva Exemplo: aritmética com prioridades Exemplo: linguagem imperativa simples Hierarquia de Chomsky Árvore de sintaxe abstrata Análise lexical Resumo sobre o parsing Semântica Comportamento indefinido Comportamento não especificado Comportamento definido pela implementação Pontos de sequência Pragmática Alinhamento Preenchimento de estruturas de dados Alinhamento no C Resumo

9 Sumário 11 Capítulo 13 Boas práticas de programação Fazendo escolhas Elementos do código Nomenclatura em geral Estrutura de arquivos Tipos Variáveis Sobre variáveis globais Funções Arquivos e documentação Encapsulamento Imutabilidade Asserções Tratamento de erros Sobre a alocação de memória Sobre a flexibilidade Exercício: rotação de imagem Formato de arquivo BMP Arquitetura Exercício: alocador de memória personalizado Resumo Parte III Entre o C e o Assembly Capítulo 14 Detalhes sobre a tradução Sequência de chamadas de função Registradores XMM Convenção de chamadas Exemplo: uma função simples e sua pilha Zona vermelha Número variável de argumentos vprintf e seus companheiros volatile Alocação de memória em modo preguiçoso Código gerado Jumps não locais setjmp volatile e setjmp inline restrict Aliasing rigoroso Problemas de segurança Stack buffer overrun (transbordamento de buffer na pilha)

10 12 Programação em Baixo Nível return-to-libc Vulnerabilidades de formatação de saída Mecanismos de proteção Cookie de segurança Address Space Layout Randomization (Randomização do Layout do Espaço de Endereçamento) DEP Resumo Capítulo 15 Objetos compartilhados e modelos de código Carga dinâmica Relocações e PIC Exemplo: biblioteca dinâmica em C GOT e PLT Acessando variáveis externas Chamando funções externas Exemplo de PLT Pré-carga Resumo sobre o endereçamento de símbolos Exemplos Chamando uma função Sobre vários linkers dinâmicos Acessando uma variável externa Exemplo completo em Assembly Misturando C e Assembly Quais objetos são ligados? Otimizações Modelos de código Modelo de código pequeno (sem PIC) Modelo de código grande (sem PIC) Modelo de código médio (sem PIC) Modelo de código pequeno com PIC Modelo de código grande com PIC Modelo de código médio com PIC Resumo Capítulo 16 Desempenho Otimizações Mito sobre linguagens rápidas Conselhos gerais Omitindo o ponteiro do stack frame Recursão de cauda Eliminação de subexpressões comuns...463

11 Sumário Propagação de constantes Otimização de valores de retorno (nomeados) Influência da previsão de desvio Influência das unidades de execução Agrupando leituras e escritas no código Caching Como usar o cache de modo eficaz? Prefetching Exemplo: busca binária com prefetching Ignorando o cache Exemplo: inicialização de matriz Classe de instruções SIMD Extensões SSE e AVX Exercício: filtro sépia Resumo Capítulo 17 Multithreading Processos e threads O que deixa o multithreading complicado? Ordem de execução Modelos de memória fortes e fracos Exemplo de reordenação O que é e o que não é volátil Barreiras de memória Introdução à pthreads Quando usar multithreading Criando threads Gerenciando threads Exemplo: fatoração distribuída Mutexes Deadlocks Livelocks Variáveis de condição Spinlocks Semáforos Quão robusto é o Intel 64? O que é uma programação sem lock? Modelo de memória do C Visão geral Atômicos Ordenações de memória no C Operações Resumo...546

12 14 Programação em Baixo Nível Apêndice A Usando o gdb Apêndice B Usando o Make Apêndice C Chamadas de sistema Apêndice D Informações sobre testes de desempenho Bibliografia

Rodrigo de Barros Paes

Rodrigo de Barros Paes Rodrigo de Barros Paes Novatec Novatec Editora Ltda. 2016. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

Objective-C Fundamental Christopher K. Fairbairn Johannes Fahrenkrug Collin Ruffenach

Objective-C Fundamental Christopher K. Fairbairn Johannes Fahrenkrug Collin Ruffenach Objective-C Fundamental Christopher K. Fairbairn Johannes Fahrenkrug Collin Ruffenach Novatec Original English language edition published by Manning Publications Co., Copyright 2011 by Manning Publications.

Leia mais

Criando Relatórios com PHP Pablo Dall Oglio

Criando Relatórios com PHP Pablo Dall Oglio Criando Relatórios com PHP Pablo Dall Oglio Novatec Copyright 2011 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo

Leia mais

Aditya Y. Bhargava. Novatec

Aditya Y. Bhargava. Novatec Aditya Y. Bhargava Novatec Original English language edition published by Manning Publications Co., Copyright 2015 by Manning Publications. Portuguese-language edition for Brazil copyright 2017 by Novatec

Leia mais

Guia Mangá. Microprocessadores. Michio Shibuya, Takashi Tonagi e Office Sawa. Novatec

Guia Mangá. Microprocessadores. Michio Shibuya, Takashi Tonagi e Office Sawa. Novatec Guia Mangá Microprocessadores Michio Shibuya, Takashi Tonagi e Office Sawa Novatec The Manga Guide to Microprocessors is a translation of the japanese original, Manga de wakaru CPU, published by Ohmsha,

Leia mais

Luiz Eduardo Borges. Novatec

Luiz Eduardo Borges. Novatec Luiz Eduardo Borges Novatec Copyright 2014 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer

Leia mais

Allen B. Downey. Novatec

Allen B. Downey. Novatec Allen B. Downey Novatec Authorized Portuguese translation of the English edition of Think Python, 2nd Edition ISBN 9781491939369 2016 Allen B. Downey. This translation is published and sold by permission

Leia mais

Sumário. Parte I Elementos essenciais Sobre o autor Sobre o revisor técnico Prefácio... 14

Sumário. Parte I Elementos essenciais Sobre o autor Sobre o revisor técnico Prefácio... 14 Adeel Javed Novatec Original English language edition published by Apress, Copyright 2016 by Apress, Inc. Portugueselanguage edition for Brazil copyright 2017 by Novatec Editora. All rights reserved. Edição

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP 3ª Edição Juliano Niederauer Novatec Copyright 2009, 2011, 2017 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida

Leia mais

Indira Knight. Novatec

Indira Knight. Novatec Indira Knight Novatec Original English language edition published by Apress, Copyright 2018 by Apress, Inc.. Portuguese-language edition for Brazil copyright 2018 by Novatec Editora. All rights reserved.

Leia mais

Edécio Fernando Iepsen

Edécio Fernando Iepsen Edécio Fernando Iepsen Novatec Novatec Editora Ltda. 2018. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

Benjamin Bengfort Jenny Kim

Benjamin Bengfort Jenny Kim Benjamin Bengfort Jenny Kim Novatec Authorized Portuguese translation of the English edition of Data Analytics with Hadoop, ISBN 9781491913703 2016 Benjamin Bengfort, Jenny Kim. This translation is published

Leia mais

JavaScript. de Alto Desempenho. Nicholas C. Zakas. Novatec

JavaScript. de Alto Desempenho. Nicholas C. Zakas. Novatec JavaScript de Alto Desempenho Nicholas C. Zakas Novatec Authorized translation of the English edition of High Performance JavaScript ISBN 978-0-596-80279-0 2010, Nicholas C. Zakas. This translation is

Leia mais

Introdução às. Expressões Regulares. Michael Fitzgerald. Novatec

Introdução às. Expressões Regulares. Michael Fitzgerald. Novatec Introdução às Expressões Regulares Michael Fitzgerald Novatec Authorized Portuguese translation of the English edition of titled Introducing Regular Expressions, First Edition ISBN 9781449392680 2012 Michael

Leia mais

William Pereira Alves

William Pereira Alves William Pereira Alves Novatec Novatec Editora Ltda. 2017. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

PHP. Programando com Orientação a Objetos. Pablo Dall Oglio. Novatec

PHP. Programando com Orientação a Objetos. Pablo Dall Oglio. Novatec PHP Programando com Orientação a Objetos Pablo Dall Oglio Novatec Copyright 2007, 2009, 2016 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida

Leia mais

3ª Edição Nilo Ney Coutinho Menezes

3ª Edição Nilo Ney Coutinho Menezes 3ª Edição Nilo Ney Coutinho Menezes Novatec Copyright 2010, 2014, 2019 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra,

Leia mais

Osvaldo Santana Thiago Galesi

Osvaldo Santana Thiago Galesi Osvaldo Santana Thiago Galesi Novatec Copyright 2010 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial,

Leia mais

Adriano Pataro. Novatec

Adriano Pataro. Novatec Adriano Pataro Novatec Novatec Editora Ltda. 2019. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem

Leia mais

Introdução ao GitHub Peter Bell e Brent Beer

Introdução ao GitHub Peter Bell e Brent Beer Introdução ao GitHub Peter Bell e Brent Beer Novatec Authorized Portuguese translation of the English edition of Introducing GitHub, ISBN 9781491949740 2014 Pragmatic Learning, Inc. This translation is

Leia mais

4ª Edição Pablo Dall Oglio

4ª Edição Pablo Dall Oglio 4ª Edição Pablo Dall Oglio Novatec Copyright 2007, 2009, 2016, 2018 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra,

Leia mais

Arduino Básico. 2ª edição. Michael McRoberts. Novatec

Arduino Básico. 2ª edição. Michael McRoberts. Novatec Arduino Básico 2ª edição Michael McRoberts Novatec Original English language edition published by Apress, Copyright 2013 by Apress, Inc.. Portuguese-language edition for Brazil copyright 2015 by Novatec

Leia mais

Arduino Básico Michael McRoberts

Arduino Básico Michael McRoberts Arduino Básico Michael McRoberts Novatec Original English language edition published by Apress Inc., Copyright 2010 by Apress, Inc.. Portuguese-language edition for Brazil copyright 2011 by Novatec Editora.

Leia mais

Jody Culkin e Eric Hagan

Jody Culkin e Eric Hagan Jody Culkin e Eric Hagan Novatec Authorized Portuguese translation of the English edition of Make: Learn Electronics with Arduino ISBN 9781680453744 2017 Jody Culkin and Eric Hagan, published by Maker

Leia mais

Sumário. Prefácio Capítulo 1 Orientação e primeiras etapas Capítulo 2 Dados: trabalhando com texto e números... 40

Sumário. Prefácio Capítulo 1 Orientação e primeiras etapas Capítulo 2 Dados: trabalhando com texto e números... 40 David Sklar Novatec Authorized Portuguese translation of the English edition of Learning PHP, ISBN 9781491933572 2016 Davis Sklar. This translation is published and sold by permission of O'Reilly Media,

Leia mais

A Linguagem de Programação Go

A Linguagem de Programação Go A Linguagem de Programação Go Alan A. A. Donovan Google Inc. Brian W. Kernighan Princeton University Tradução Lúcia A. Kinoshita Revisão técnica Luciano Ramalho (ThoughtWorks, Inc.) Novatec Authorized

Leia mais

Novatec Editora Ltda

Novatec Editora Ltda C.J. Date Novatec Authorized Portuguese translation of the English edition of titled View Updating and Relational Theory, ISBN 9781449357849 2012 Chris Date. This translation is published and sold by permission

Leia mais

Shyam Seshadri & Brad Green

Shyam Seshadri & Brad Green Shyam Seshadri & Brad Green Novatec Authorized Portuguese translation of the English edition of Angular JS: Up and Running, ISBN 9781491901946 2014 Shyam Seshadri and Brad Green. This translation is published

Leia mais

Raspberry Pi Manual do Usuário

Raspberry Pi Manual do Usuário Raspberry Pi Manual do Usuário Eben Upton Gareth Halfacree Novatec All rights reserved. Authorized translation from the English language edition entitled Raspberry Pi User Guide, published by John Wiley

Leia mais

Jessey Bullock Jeff T. Parker

Jessey Bullock Jeff T. Parker Jessey Bullock Jeff T. Parker Novatec All rights reserved. This translation is published under license with the original publisher John Wiley & Sons, Inc. Copyright 2017 by John Wiley & Sons, Inc., Indianapolis,

Leia mais

Primeiros Passos com Sensores Kimmo Karvinen Tero Karvinen

Primeiros Passos com Sensores Kimmo Karvinen Tero Karvinen Primeiros Passos com Sensores Kimmo Karvinen Tero Karvinen Novatec Authorized Portuguese translation of the English edition of titled Getting Started with Sensors, ISBN 9781449367084 2013 Tero Karvinen,

Leia mais

Novatec Editora Ltda

Novatec Editora Ltda MARK GEDDES novatec Copyright 2016 by Mark Geddes. Title of English-language original: Arduino Project Handbook, ISBN 978-1-59327-690-4, published by No Starch Press. Portuguese-language edition copyright

Leia mais

Ben Vinegar Anton Kovalyov

Ben Vinegar Anton Kovalyov Ben Vinegar Anton Kovalyov Novatec Original English language edition published by Manning Publications Co., Sound View CT.#3B, Greenwich, CT 06830 USA. Copyright 2013 by Manning Publications. Portuguese-language

Leia mais

jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI Maurício Samy Silva Novatec

jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI Maurício Samy Silva Novatec jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI Maurício Samy Silva Novatec Copyright 2012 da Novatec Editora Ltda. Todos os direitos reservados

Leia mais

Ademir Cristiano Gabardo. Novatec

Ademir Cristiano Gabardo. Novatec Ademir Cristiano Gabardo Novatec Novatec Editora Ltda. 2012. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

PLANO DE UNIDADE DIDÁTICA- PUD

PLANO DE UNIDADE DIDÁTICA- PUD Professor: Marcus Vinícius Midena Ramos Coordenação: Ricardo Argenton Ramos Data: 03/08/2010 Página: 1 de 5 EMENTA: Conceitos básicos de linguagens. Histórico, classificação e principais aplicações de

Leia mais

Stephen Samuel Stefan Bocutiu

Stephen Samuel Stefan Bocutiu Stephen Samuel Stefan Bocutiu Novatec Copyright Packt Publishing 2017. First published in the English language under the title Programming Kotlin (9781787126367). Copyright Packt Publishing 2017. Publicação

Leia mais

Ryan Mitchell. Novatec

Ryan Mitchell. Novatec Ryan Mitchell Novatec Authorized Portuguese translation of the English edition of titled Web Scraping with Python, ISBN 9781491910290 2015 Ryan Mitchell. This translation is published and sold by permission

Leia mais

André Gugliotti. Novatec

André Gugliotti. Novatec André Gugliotti Novatec Novatec Editora Ltda. 2014. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem

Leia mais

John Resig Bear Bibeault

John Resig Bear Bibeault John Resig Bear Bibeault Tradução Rafael Zanolli Novatec Original English language edition published by Manning Publications Co., Sound View CT.#3B, Greenwich, CT 06830 USA. Copyright 2009 by Manning Publications.

Leia mais

Matheus Marabesi Michael Douglas

Matheus Marabesi Michael Douglas Matheus Marabesi Michael Douglas Novatec Novatec Editora Ltda. 2017. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer

Leia mais

Modelo de plano analitico

Modelo de plano analitico Modelo de pla analitico Disciplina: Algoritmização e Programação Curso: Licenciatura em Ensi de Informática A/Semestre: 1º A/2º Semestre Carga horária: 4 h/semana; Docente: Célio Sengo Introdução A linguagem

Leia mais

Primeiros Passos com o Netduino

Primeiros Passos com o Netduino Primeiros Passos com o Netduino Chris Walker Novatec Authorized Portuguese translation of the English edition of titled Getting Started with Netduino, First Edition ISBN 9781449302450 2012 Secret Labs

Leia mais

Construindo Aplicações Node com MongoDB e Backbone Mike Wilson

Construindo Aplicações Node com MongoDB e Backbone Mike Wilson Construindo Aplicações Node com MongoDB e Backbone Mike Wilson Novatec Authorized Portuguese translation of the English edition of titled Building Node Applications with MongoDB and Backbone ISBN 9781449337391

Leia mais

Guia Mangá. Álgebra Linear. Shin Takahashi, Iroha Inoue e Trend-Pro Co., Ltd. novatec

Guia Mangá. Álgebra Linear. Shin Takahashi, Iroha Inoue e Trend-Pro Co., Ltd. novatec Guia Mangá Álgebra Linear Shin Takahashi, Iroha Inoue e Trend-Pro Co., Ltd. novatec The Manga Guide to Linear Algebra is a translation of the Japanese original, Manga de wakaru senkeidaisuu, published

Leia mais

Christopher Duffy. Novatec

Christopher Duffy. Novatec Christopher Duffy Novatec Copyright Packt Publishing 2015. First published in the English language under the title Learning Penetration Testing with Python (9781785282324) Copyright Packt Publishing 2015.

Leia mais

Métricas. Como melhorar os principais resultados de sua empresa. Martin Klubeck. Novatec

Métricas. Como melhorar os principais resultados de sua empresa. Martin Klubeck. Novatec Métricas Como melhorar os principais resultados de sua empresa Martin Klubeck Novatec Original English language edition published by Apress Inc., copyright 2011 by Martin Klubeck. Portugueselanguage edition

Leia mais

Análise de Regressão

Análise de Regressão Guia Mangá Análise de Regressão Shin Takahashi, Iroha Inoue e Trend-Pro Co., Ltd. Novatec The Manga Guide to Regression Analysis is a translation of the japanese original, Manga de wakaru tōkei-gaku kaiki

Leia mais

Aravind Shenoy Anirudh Prabhu

Aravind Shenoy Anirudh Prabhu Aravind Shenoy Anirudh Prabhu Novatec Original English language edition published by Apress, Copyright 2016 by Apress, Inc.. Portugueselanguage edition for Brazil copyright 2016 by Novatec Editora. All

Leia mais

Ademir C. Gabardo. Novatec

Ademir C. Gabardo. Novatec Ademir C. Gabardo Novatec Copyright 2017 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer

Leia mais

A Arte de Escrever Programas Legíveis

A Arte de Escrever Programas Legíveis A Arte de Escrever Programas Legíveis Técnicas simples e práticas para a elaboração de programas fáceis de serem lidos e entendidos Dustin Boswell Trevor Foucher Novatec Authorized Portuguese translation

Leia mais

WordPress 3 Básico Stephanie Leary

WordPress 3 Básico Stephanie Leary WordPress 3 Básico Stephanie Leary Novatec Original English language edition published by Apress Inc., Copyright 2010 by Apress, Inc.. Portugueselanguage edition for Brazil copyright 2010 by Novatec Editora.

Leia mais

Uma introdução visual à programação com jogos, arte, ciência e matemática

Uma introdução visual à programação com jogos, arte, ciência e matemática Aprenda a Programar com Scratch Uma introdução visual à programação com jogos, arte, ciência e matemática Majed Marji novatec Copyright 2014 by Majed Marji. Title of English-language original: Learn to

Leia mais

Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático

Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático Java Básico Objetivo: Os assuntos apresentados no decorrer do curso Java Básico incluem os conceitos gerais desta linguagem assim como a definição e utilização de seus recursos diversos, tais como: tipos

Leia mais

Hélio Engholm Jr. Novatec

Hélio Engholm Jr. Novatec Hélio Engholm Jr. Novatec Copyright 2013 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer

Leia mais

Capítulo 5. Nomes, Vinculações e Escopos

Capítulo 5. Nomes, Vinculações e Escopos Capítulo 5 Nomes, Vinculações e Escopos Tópicos do Capítulo 5 Introdução Nomes Variáveis O conceito de vinculação Escopo Escopo e tempo de vida Ambientes de referenciamento Constantes nomeadas Introdução

Leia mais

Miguel Grinberg. Novatec

Miguel Grinberg. Novatec Miguel Grinberg Novatec Authorized Portuguese translation of the English edition of Flask Web Development ISBN 9781491991732 2018 Miguel Grinberg. This translation is published and sold by permission of

Leia mais

Dmitry Jemerov e Svetlana Isakova. Novatec

Dmitry Jemerov e Svetlana Isakova. Novatec Dmitry Jemerov e Svetlana Isakova Novatec Original English language edition published by Manning Publications Co, Copyright 2017 by Manning Publications. Portuguese-language edition for Brazil copyright

Leia mais

Guia Mangá Circuitos Eletrônicos

Guia Mangá Circuitos Eletrônicos Guia Mangá Circuitos Eletrônicos Autor: Kenichi Tanaka Arte: Yama Takayama Produção: Trend-Pro, co., ltd novatec Original Japanese edition Manga de Wakaru Denshi Kairo by Kenichi Tanaka and TREND-PRO Co.,

Leia mais

jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI 2a Edição Maurício Samy Silva Novatec

jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI 2a Edição Maurício Samy Silva Novatec jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI 2a Edição Maurício Samy Silva Novatec Copyright 2012, 2013 da Novatec Editora Ltda. Todos os direitos

Leia mais

Allan Liska e Timothy Gallo. Novatec

Allan Liska e Timothy Gallo. Novatec Allan Liska e Timothy Gallo Novatec Authorized Portuguese translation of the English edition of Ransomware, ISBN 9781491967881 2017 Allan Liska, Timothy Gallo. This translation is published and sold by

Leia mais

16. Compilação no Linux

16. 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 mais

Universidade 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. 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 mais

Editor: Rubens Prates PY Editoração eletrônica: Carolina Kuwabata Revisão gramatical: Patrizia Zagni Capa: Edinei Gonçalves/Carolina Kuwabata

Editor: Rubens Prates PY Editoração eletrônica: Carolina Kuwabata Revisão gramatical: Patrizia Zagni Capa: Edinei Gonçalves/Carolina Kuwabata 5ª Edição Novatec Copyright 2008, 2013, 2017 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer

Leia mais

Programando para. iphone e ipad. Aprenda a construir aplicativos para o ios. André Milani. Novatec

Programando para. iphone e ipad. Aprenda a construir aplicativos para o ios. André Milani. Novatec Programando para iphone e ipad Aprenda a construir aplicativos para o ios André Milani Novatec Copyright 2012 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998.

Leia mais

Expressões Regulares Cookbook Jan Goyvaerts Steven Levithan

Expressões Regulares Cookbook Jan Goyvaerts Steven Levithan Expressões Regulares Cookbook Jan Goyvaerts Steven Levithan Novatec Authorized Portuguese translation of the English edition of Regular Expressions Cookbook ISBN 9780596520687 2009, Jan Goyvaerts and Steve

Leia mais

Primeiros Passos com o Arduino

Primeiros Passos com o Arduino Primeiros Passos com o Arduino 2ª Edição Massimo Banzi e Michael Shiloh Novatec Authorized Portuguese translation of the English edition of Make: Getting Started with Arduino, 3rd Edition 2014 Massimo

Leia mais

Linguagens de Programação Classificação

Linguagens 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 mais

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

Compiladores. 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 mais

Web Interativa com Ajax e PHP

Web Interativa com Ajax e PHP Web Interativa com Ajax e PHP Juliano Niederauer Novatec Copyright 2007, 2013 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta

Leia mais

Karl Matthias Sean P. Kane

Karl Matthias Sean P. Kane Karl Matthias Sean P. Kane Novatec Authorized Portuguese translation of the English edition of titled Docker: Up and Running, ISBN 9781491917572 2015 Karl Matthias, Sean P. Kane. This translation is published

Leia mais

Jonathan Weber e a equipe da LunaMetrics

Jonathan Weber e a equipe da LunaMetrics Jonathan Weber e a equipe da LunaMetrics Novatec Original English language edition published by Apress, Copyright 2015 by Apress, Inc.. Portugueselanguage edition for Brazil copyright 2016 by Novatec Editora.

Leia mais

Simon Holmes. Novatec

Simon Holmes. Novatec Simon Holmes Novatec Original English language edition published by Manning Publications Co., Copyright 2014 by Manning Publications. Portuguese-language edition for Brazil copyright 2016 by Novatec Editora.

Leia mais

Maurício Samy Silva. Novatec

Maurício Samy Silva. Novatec Maurício Samy Silva Novatec Copyright 2014 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer

Leia mais

Linguagem de Programação. Thiago Leite Francisco Barretto

Linguagem de Programação. Thiago Leite Francisco Barretto Linguagem de Programação Thiago Leite Francisco Barretto SCHILDT, H. C Completo e Total. 3ª Edição. São Paulo: Makron, 1997. Bibliografia Ementa

Leia mais

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

COMPILAÇÃ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 mais

Wolfram Donat. Novatec

Wolfram Donat. Novatec Wolfram Donat Novatec Original English language edition published by Apress, Copyright 2018 by Apress, Inc.. Portuguese-language edition for Brazil copyright 2018 by Novatec Editora. All rights reserved.

Leia mais

Projeto de Compiladores

Projeto de Compiladores Projeto de Compiladores FIR Faculdade Integrada do Recife João Ferreira 26 e 27 de fevereiro de 2007 Agenda da Aula Revisão Linguagem de Programação Tradutores Compilador As Fases de Um Compilador Linguagem

Leia mais

Blender 3D jogos e animações interativas Allan Brito

Blender 3D jogos e animações interativas Allan Brito Blender 3D jogos e animações interativas Allan Brito Novatec Copyright 2011 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra,

Leia mais

Nomes, vinculações e escopos

Nomes, vinculações e escopos Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

Aprenda a Programar com Minecraft

Aprenda a Programar com Minecraft Aprenda a Programar com Minecraft Transforme seu mundo com o poder do Python Craig Richardson novatec Copyright 2015 by Craig Richardson. Title of English-language original: Learn to Program with Minecraft,

Leia mais

Guia Mangá Motores elétricos

Guia Mangá Motores elétricos Guia Mangá Motores elétricos Autor: Masayuki Morimoto Arte: Ren Shimazu Produção: Trend-pro Co., Ltd novatec Original Japanese edition Manga de Wakaru Motors by Masayuki Morimoto and TREND-PRO Co., Ltd.

Leia mais

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

#include <stdio.h> Void main() { printf( Cheguei!\n); } INTRODUÇÃO A LINGUAGEM C #include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que

Leia mais

Autômatos e Linguagens

Autômatos e Linguagens Autômatos e Linguagens Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Agosto, 2016 1 / 41 Sumário 1 Compiladores 2 Linguagens de programação 3 Ciência dos compiladores

Leia mais

Pedro Monteiro da Silva Eleutério Marcio Pereira Machado. Novatec

Pedro Monteiro da Silva Eleutério Marcio Pereira Machado. Novatec Pedro Monteiro da Silva Eleutério Marcio Pereira Machado Novatec Copyright 2011 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta

Leia mais

Universidade Católica de Pelotas Bacharelado em Ciência da Computação Linguagens Formais e Autômatos TEXTO 6 Introdução à Compilação

Universidade Católica de Pelotas Bacharelado em Ciência da Computação Linguagens Formais e Autômatos TEXTO 6 Introdução à Compilação Universidade Católica de Pelotas Bacharelado em Ciência da Computação 364018 Linguagens Formais e Autômatos TEXTO 6 Introdução à Compilação Prof. Luiz A M Palazzo Maio de 2011 Um COMPILADOR é um programa

Leia mais

Procedimentos. Sistemas de Computação

Procedimentos. Sistemas de Computação Procedimentos Chamada de Procedimentos Utilização de procedimentos: Facilitar entendimento do programa Reutilização de código Passos necessários para execução de um procedimento: Os parâmetros a serem

Leia mais

Ademir Ribeiro dos Passos

Ademir Ribeiro dos Passos Ademir Ribeiro dos Passos Novatec Novatec Editora Ltda. 2018. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

Compiladores Geração de Código

Compiladores Geração de Código Compiladores Geração de Código Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp O Back-end Até agora vimos as fases do front-end do compilador: Análise Léxica Análise Sintática Análise Semântica

Leia mais

Web site. Profa. Patrícia Dockhorn Costa.

Web site.  Profa. Patrícia Dockhorn Costa. Estruturas de Dados Aula 1: Introdução e conceitos básicos Web site http://www.inf.ufes.br/~pdcosta/ensino/ Profa. Patrícia Dockhorn Costa Email: pdcosta@inf.ufes.br Monitoria: Alexandro alexandrosouzaramos@gmail.com

Leia mais

Sumário. Capítulo 1 Introdução 29. Capítulo 2 Utilizando Objetos 59

Sumário. Capítulo 1 Introdução 29. Capítulo 2 Utilizando Objetos 59 Sumário Capítulo 1 Introdução 29 1.1 O que é programação? 30 1.2 A anatomia de um computador 31 1.3 Traduzindo programas legíveis pelo homem em código de máquina 36 1.4 A linguagem de programação Java

Leia mais

Projeto de Compiladores

Projeto de Compiladores Projeto de Compiladores FIR Faculdade Integrada do Recife João Ferreira 12 e 13 de fevereiro de 2007 Questionário 1. Em quais linguagens de programação você já programou? 2. O que você sabe sobre compiladores?

Leia mais

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Conceitos de Linguagens de Programação - Características. Paavo Soeiro Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o

Leia mais

Adrian Pruteanu. Novatec

Adrian Pruteanu. Novatec Adrian Pruteanu Novatec Copyright Packt Publishing 2019. First published in the English language under the title Becoming the Hacker (9781788627962) Copyright Packt Publishing 2019. Publicação original

Leia mais

1 Elementos Básicos da Linguagem C Parte 1: Revisão da Linguagem C

1 Elementos Básicos da Linguagem C Parte 1: Revisão da Linguagem C Conteúdo Resumido... v Tabela de Conteúdo... vii Lista de Figuras... xvii Lista de Tabelas... xxiii Lista de Algoritmos... xxv Prefácio... xxvii Objetivos e Público-alvo Organização do Livro Material Complementar

Leia mais

Shelley Powers. Novatec

Shelley Powers. Novatec Shelley Powers Novatec Authorized Portuguese translation of the English edition of Learning Node, 2nd Edition, ISBN 9781491943120 2016 Shelly Powers. This translation is published and sold by permission

Leia mais

Compiladores II. Fabio Mascarenhas

Compiladores II. Fabio Mascarenhas Compiladores II Fabio Mascarenhas 2018.1 http://www.dcc.ufrj.br/~fabiom/comp2 Máquinas Virtuais Uma máquina virtual é uma técnica de implementação de linguagens de programação que é um meio termo entre

Leia mais

Ferramenta para Desenvolvimentode Sistemas EmbarcadosUtilizando Linguagem de Alto Nível p.1/25

Ferramenta 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 mais

Loiane Groner. Novatec

Loiane Groner. Novatec Loiane Groner Novatec Copyright Packt Publishing 2016. First published in the English language under the title Learning JavaScript Data Structures and Algorithms - Second Edition (9781785285493) Copyright

Leia mais

Plano de Ensino. Ementa

Plano de Ensino. Ementa JOINVILLE Curso: SIJ-TEC - Tecnologia em Sistemas de Informação Departamento: DCC - Ciência da Computação Disciplina: LINGUAGEM DE PROGRAMAÇÃO Código: LPG0002 Carga horária: 72 Período letivo: 2015/1 Professor:

Leia mais