Aula 00 - Ponto dos Concursos

Propaganda
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
Aula 00
IADES 2016 PCDF - Perito Criminal - Ciência da
Computação/Informática
Desenvolvimento de Sistemas
Montadores, compiladores, ligadores e interpretadores
Professor: Rogerão Araújo
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
1
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
Aula 00: Montadores, compiladores, ligadores e
interpretadores
Aula
00
01
02
03
04
05
06
07
08
09
Conteúdo Programático
Programação de computadores: Montadores,
compiladores, ligadores e interpretadores.
Programação de computadores: Noções de linguagens
procedurais e Estruturas de controle de fluxo de
execução.
Programação de computadores: Noções de linguagens
orientadas a objetos.
Programação de computadores: Estruturas de dados e
Estruturas de listas, filas, pilhas e árvores.
Programação de computadores: Métodos de acesso,
busca, inserção e ordenação e Complexidade de
algoritmos.
Programação de computadores: Desenvolvimento
seguro de aplicações.
Sistemas de Bancos de dados: Arquiteturas, modelos
lógicos e representação física e Mecanismos de banco
de dados relacionais.
Sistemas de Bancos de dados: Linguagem de consulta
estruturada (SQL).
Sistemas de Bancos de dados: Arquitetura, Log de
transação, Backup e restore e Segurança e auditoria.
Engenharia reversa: Técnicas de descompilação de
programas, Técnicas de compactação de código
executável, Análise de código malicioso e Ofuscação
de código.
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
Data
14/03
23/03
05/04
13/04
22/04
28/04
09/05
20/05
27/05
10/06
2
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
Sumário
Apresentações ...................................................................................................................................................... 4
O professor ................................................................................................................................................................... 4
O curso .......................................................................................................................................................................... 4
Informações de apoio .............................................................................................................................................. 5
1. Compilação, interpretação e execução de programas ................................................................ 7
1.1. Teoria .................................................................................................................................................................... 7
1.2. Memorex ............................................................................................................................................................ 11
1.3. Referências ....................................................................................................................................................... 12
1.4. Questões de concursos................................................................................................................................. 12
2. Lista de questões na aula .........................................................................................................................19
2.1. Compilação, interpretação e execução de programas ..................................................................... 19
3. Gabarito ............................................................................................................................................................21
3.1. Compilação, interpretação e execução de programas ..................................................................... 21
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
3
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
Apresentações
O professor
Sou o professor Rogerão Araújo. Trabalho na Secretaria do Tesouro
Nacional, em Brasília/DF, exercendo o cargo de Analista de Finanças e Controle.
Formei-me Bacharel em Ciência da Computação pela UESPI (Universidade
Estadual do Piauí) e especialista em Governança em TI pela Unieuro e em
Desenvolvimento de Sistemas Baseados em Software Livre pela UNAMA
(Universidade da Amazônia).
Atualmente exerço o cargo de Analista de Finanças e Controle no Tesouro
Nacional. Possui as certificações COBIT 4.1 Foundation Certified e SCJA (Sun
Certified Associate for J2SE). Sou autor de artigos no site do professor Walter
Cunha (www.waltercunha.com) e no canal ITnerante (www.itnerante.com.br).
Mantenho também o meu próprio blog (rogerioaraujo.wordpress.com).
Fui aprovado em alguns concursos, tais como: STN 2013, TST 2012, TSE
2012, TRE/PE 2011, TRT 19ª Região 2011, MPU 2010, STM 2010, SERPRO
2008, TRT 18ª Região 2008, MPU 2006, BACEN 2005, TRE/MA 2005, TRT 16ª
Região 2005, TCE/PI 2005 e MPU 2004.
O curso
Sejam bem vindos ao Curso de Exercícios na área de Desenvolvimento
de Sistemas para concurso do PCDF, para o cargo de Perito Criminal Ciência da Computação/Informática.
O foco deste curso é voltado principalmente para a banca IADES, podendo
haver questões de outras bancas semelhantes para complementar os assuntos
sugeridos em nosso cronograma. Este é um curso de questões comentadas,
desta forma, é necessário ter um conhecimento prévio para que possamos
acompanhar a resolução das questões de forma mais proveitosa. A ideia é que
através da resolução das questões teremos a capacidade de traçar um
direcionamento sobre os principais pontos que precisam ser estudados com
mais afinco.
Lembrem-se sempre que o material de questões comentadas é baseado no
conteúdo histórico cobrado pelas bancas, com os pontos que costumam cair
com mais frequência, porém apesar da probabilidade do tópico cair novamente
de forma semelhante ser muito grande, isto não é garantido, para isto
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
4
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
precisamos estudar também a parte teórica para entendermos os conceitos
necessários.
Informações de apoio
Para uma melhor revisão dos textos deste material, os itens importantes
serão destacados em cores. Por exemplo:
“O compilador traduz um programa escrito em uma linguagem de
alto nível em um programa-objeto não executável (módulo-objeto).
Apesar desse módulo-objeto ser em linguagem de máquina, ele não é
executável ainda”.
Para nos ajudar no entendimento das explicações, trago quadros
explicativos dos tipos:
 Quadros de observações (quadros de cor amarela): para
observações gerais, mas que fogem do contexto da teoria;
 Quadros de memorex (quadros de cor laranja): para itens mais
importantes para revisão;
 Quadros de notas importantes (quadros de cor verde): para notas
importantes da teoria que precisam de um destaque melhor; e
 Quadros de exemplos (quadros de cor azul): para exemplos que
colocarão em prática a teoria explicada.
Exemplos dos quadros de observações:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
consequat placerat nibh, eu pulvinar lacus lacinia ut. Donec ultricies eleifend
luctus. Mauris luctus bibendum sapien.
Observação x.x: blá blá blá.
Exemplos dos quadros de memorex:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
consequat placerat nibh, eu pulvinar lacus lacinia ut. Donec ultricies eleifend
luctus. Mauris luctus bibendum sapien.
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
5
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
Exemplos dos quadros de notas importantes:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
consequat placerat nibh, eu pulvinar lacus lacinia ut. Donec ultricies eleifend
luctus. Mauris luctus bibendum sapien.
Nota x.x: blá blá blá.
Exemplos dos quadros de exemplos:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
consequat placerat nibh, eu pulvinar lacus lacinia ut. Donec ultricies eleifend
luctus. Mauris luctus bibendum sapien.
Exemplo x.x: blá blá blá.
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
6
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
1. Compilação, interpretação e execução de programas
1.1. Teoria
No nosso dia a dia, utilizamos programas de computadores para os mais
diversos fins, seja para nos auxiliar em nosso trabalho, seja para usos pessoais.
Um programa de computador é um conjunto de instruções que:
 Possui um determinado fim;
o Por exemplo, o Photoshop para edição de imagens; e
 É executado por um processador.
Mas para haja essa execução pelo processador, o programa precisa estar
em uma linguagem que o processador possa entender: a linguagem de
máquina. Ela é a linguagem que um processador é capaz de compreender e é
composta de apenas de números 0 e 1.
O conjunto de instruções que forma um programa é escrito em
linguagem de máquina. Dessa forma, o processador reconhecerá o programa e
irá executá-lo.
Nota 1.1.1: conjunto de instruções em linguagem de máquina.
- Pow, Rogerão, mas como vamos programar escrevendo apenas 0 e 1? Tu
é doido, macho?
Calma, pequeno gafanhoto! Não precisamos ter conhecimento de
linguagem de máquina para escrever nossos programas. Para nosso trabalho
como desenvolvedores de software, utilizamos linguagens de alto nível, como,
por exemplo, a própria linguagem Java.
Programar já não é uma tarefa tão fácil e programar escovando bits, é
extremamente complexo e trabalhoso, o que elevaria muito o custo de
desenvolvimento e da manutenção de softwares.
Aproveitando, temos que ter em mente que (figura 1.1.1):
 Quanto mais semelhante uma linguagem for da de máquina:
o Mais baixo é o nível dessa linguagem; e
o Menos legível é para o ser humano;
 Quanto mais “distante” uma linguagem for da de máquina:
o Mais alto é o nível dessa linguagem; e
o Mais legível é para o ser humano.
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
7
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
Figura 1.1.1: distância de uma linguagem em relação à linguagem de
máquina.
As linguagens de alto nível são linguagens mais semelhantes à
linguagem humana. Ela deixa o trabalho de desenvolvimento de softwares
muito mais fácil do que se programássemos em uma linguagem de baixo nível
ou linguagem de máquina. Porém, para que o processador possa entender os
programas feitos em linguagem de alto nível, é necessária sua tradução (ou
compilação) para linguagem que o processador possa entender, ou seja,
linguagem de máquina.
Nota 1.1.2: linguagem de alto nível.
O compilador traduz:
 Um programa escrito em uma linguagem de alto nível;
 Em um programa-objeto não executável;
o Também chamado de módulo-objeto.
Apesar do módulo-objeto ser em linguagem de máquina, ele não é
executável ainda.
Nota 1.1.3: módulo-objeto não é executável.
O editor de ligação (também chamado de linker ou de ligador) gera um
programa executável a partir de um ou mais módulos-objetos.
Apenas visualizando o que eu falei (figura 1.1.2):
 Um programa-fonte em linguagem de alto nível é compilado e
então gerado um programa-objeto em linguagem de máquina, porém
ainda não executável;
 O linker por sua vez recebe esse programa-objeto e gera um
programa em linguagem de máquina executável para uma
plataforma específica;
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
8
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores

Como uma linguagem de máquina de uma plataforma às vezes difere
de outra, precisaremos de um compilador e de um linker específicos
para que um programa-fonte possa ser traduzido em na linguagem
de máquina própria de uma plataforma.
Figura 1.1.2: compilação, ligação e execução de um programa.
Também temos outro sujeito: interpretador. Ele é uma instância de
hardware ou software que lê e executa diretamente as instruções
apresentadas.
Durante uma execução, o interpretador lê cada instrução a partir de um
programa-fonte escrito em linguagem de alto nível e executa-a imediatamente.
São exemplos de linguagens interpretadas: BASIC, Perl, PHP, Python,
JavaScript, Lisp, Ruby, etc.
Iremos fazer uma comparação entre a compilação e interpretação nos
seguintes tópicos:
 Tempo de execução;
 Consumo de memória;
 Repetição de interpretação; e
 Desenvolvimento de programas e depuração de erros.
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
9
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
Tempo de execução:
 Na interpretação, cada vez que um programa for executado, haverá
leitura e execução de cada instrução apresentada do programa;
 Na compilação, o tempo de execução do programa é reduzido,
porque todos os passos preliminares (compilação e ligação) foram
previamente feitos.
Consumo de memória:
 Na interpretação, o interpretador é um programa geralmente
grande e que precisa permanecer na memória durante todo o tempo
que durar a execução do programa, pois um programa necessita do
interpretador para ter traduzidos cada um dos seus comandos, um a
um, até o término de sua execução;
o O interpretador somente é descarregado depois do término da
execução do programa;
 Na compilação:
o O compilador é carregado e fica na memória apenas durante o
tempo de compilação, depois é descarregado;
o O ligador é carregado e fica na memória apenas durante o
tempo de ligação, depois é descarregado;
o Essas são funções realizadas pelo programador e executadas
apenas durante o desenvolvimento do programa;
o Quando o usuário for executar o programa, apenas o módulo
de carga (código executável) é carregado e fica na memória
durante a execução;
 Desta forma, vemos que o método de interpretação acarreta um
consumo de memória muito mais elevado durante a execução do
programa.
Repetição de interpretação:
 Na interpretação, em programas contendo alguma estrutura de
repetição, as partes do código que pertencem a uma estrutura de
repetição serão várias vezes repetidas e terão que ser interpretadas
tantas vezes quantas a estrutura tiver que ser percorrida;
 Na compilação, a tradução do código de uma estrutura de repetição
se faz uma única vez, em tempo de compilação e ligação;
 Estas características levam a um maior consumo de tempo na
interpretação, que é, portanto, mais lento.
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
10
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
Desenvolvimento de programas e depuração de erros:
 Na compilação, a identificação de erros durante a fase de execução
fica sempre difícil, pois não há mais relação entre comandos do
código fonte e instruções do executável;
 Na interpretação:
o Cada comando é interpretado e executado individualmente, a
relação entre código fonte e executável é mais direta e o efeito
da execução (certa ou errada) é direta e imediatamente
sentido;
o Quando a execução de um comando acarreta erro, quase
sempre o erro pode ser encontrado no comando que acabou de
ser executado;
 Assim, o interpretador pode informar o erro, indicando o
comando ou variável causador do problema.
Resumo da comparação entre a compilação e interpretação:
 Menor tempo de execução: compilação;
 Menor consumo de memória: compilação;
 Maior tempo na execução de loop’s: interpretação; e
 Menor dificuldade de identificação de erros: interpretação.
Nota 1.1.4: diferenças entre compilação e interpretação.
1.2. Memorex
Um programa de computador é um conjunto de instruções que:
 Possui um determinado fim;
o Por exemplo, o Photoshop para edição de imagens; e
 É executado por um processador.
As linguagens de alto nível sãolinguagens mais semelhantes à
linguagem humana. Ela deixa o trabalho de desenvolvimento de softwares
muito mais fácil do que se programássemos em uma linguagem de baixo nível
ou linguagem de máquina. Porém, para que o processador possa entender os
programas feitos em linguagem de alto nível, é necessária sua tradução (ou
compilação) para linguagem que o processador possa entender, ou seja,
linguagem de máquina.
O compiladortraduz:
 Um programa escrito em uma linguagem de alto nível;
 Em um programa-objeto não executável;
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
11
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
o Também chamado de módulo-objeto.
O editor de ligação(também chamado de linker ou de ligador) gera um
programa executável a partir de um ou mais módulos-objetos.
O interpretador é uma instância de hardware ou software que lê e
executa diretamente as instruções apresentadas.
Resumo da comparação entre a compilação e interpretação:
 Menor tempo de execução: compilação;
 Menor consumo de memória: compilação;
 Maior tempo na execução de loop’s: interpretação; e
 Menor dificuldade de identificação de erros: interpretação.
1.3. Referências
[1] Arquitetura e organização de computadores: Ligação, relocação e carga de
programas: www.professordiovani.com.br/arquitetura/aula16_arquitetura.ppt;
[2] Interpretação e Compilação de Linguagens de Programação:
http://moodle.fct.unl.pt/pluginfile.php/213715/mod_label/intro/01overview.pdf;
[3] MACHADO, Francis Berenger e MAIA, Luiz Paulo. Arquitetura de Sistemas
Operacionais. 4ª Edição. Editora LTC, 2007.
1.4. Questões de concursos
[FCC 2012 TJ/PE – Técnico Judiciário – Suporte Técnico – Questão 40]
No contexto do módulo executável de um programa de computador, menor
tempo de execução, menor consumo de memória, maior tempo na execução de
loop’s, e menor dificuldade de identificação de erros estão associados,
respectivamente, aos métodos
[A] compilação, interpretação, compilação, interpretação.
[B] interpretação, interpretação, interpretação, compilação.
[C] interpretação, interpretação, compilação, compilação.
[D] interpretação, compilação, interpretação, compilação.
[E] compilação, compilação, interpretação, interpretação.
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
12
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
Comentário:
Como vimos no resumo da comparação entre a compilação
interpretação:
 Menor tempo de execução: compilação;
 Menor consumo de memória: compilação;
 Maior tempo na execução de loop’s: interpretação; e
 Menor dificuldade de identificação de erros: interpretação.
e
Gabarito: letra E.
[FCC 2011 TRT 4ª Região – Técnico Judiciário – Tecnologia da
Informação – Questão 31] Em relação à organização e arquitetura de
computadores, é correto afirmar:
[A] A linguagem de máquina é um conjunto ilimitado de instruções que um
circuito de um computador pode reconhecer e executá-las diretamente.
[B] A linguagem de máquina é a forma mais primitiva de linguagem para se
comunicar com o computador.
[C] A arquitetura define os componentes do computador e a maneira como eles
estão interligados.
[D] A organização não define os componentes do computador, mas apenas o
seu comportamento e a maneira como eles estãointerligados.
[E] O Interpretador é um programa de nível 1 (L1) que substitui cada instrução
de nível 2 (L2) por um conjunto equivalente de L1.
Comentário:
Letra A: “a linguagem de máquina é um conjunto ilimitado de instruções
que um circuito de um computador pode reconhecer e executá-las
diretamente”.
Letra incorreta. A linguagem de máquina [1] é constituída pelo
conjunto básico de instruções que são reconhecidaspelo hardware e, para a
qual todo programa precisa ser convertido para que possa ser executado.
Corrigindo a letra: “a linguagem de máquina é um conjunto ilimitado de
instruções que um circuito de um computador pode reconhecer e executá-las
diretamente”.
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
13
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
Letra B: “a linguagem de máquina é a forma mais primitiva de linguagem
para se comunicar com o computador”.
Letra correta. A explicação da letra A também ajuda nesta letra.
Letra C: “a arquitetura define os componentes do computador e a maneira
como eles estão interligados”.
Letra incorreta. Há uma diferença entre a arquitetura e a organização
de computadores.
A arquitetura de um computador [2] corresponde aos aspectos
visíveis a um programador em linguagem de máquina, tais como:
 Repertório de instruções;
 Número de bits utilizado para representar vários tipos de
dados;
 Mecanismo de E/S; e
 Modos de endereçamento.
Por sua vez, a organização de computadores [2] diz respeito às
unidades operacionais (UCP, unidade de memória, barramentos, sinais de
controle, etc) necessárias para implementar as especificações de uma
arquitetura.
A organização
programador.
de
computadores
é
em
geral
transparente
ao
Nota 1.4.1: organização de computadores.
Considere por exemplo a
arquitetônico do computador em
computador provê uma instrução
organizacional tem a ver como essa
operação de multiplicação. O aspecto
relação a essa operação é saber se o
para esta operação; enquanto o aspecto
operação é implementada” (meu grifo).
Corrigindo a letra: “a organização não define os componentes do
computador e a maneira como eles estão interligados”.
Letra D: “a organização não define os componentes do computador, mas
apenas o seu comportamento e a maneira como eles estãointerligados”.
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
14
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
Letra incorreta. Leiam o comentário da letra C. A correção da letra é
igual à correção da letra C.
Letra E: “o interpretador é um programa de nível 1 (L1) que substitui cada
instrução de nível 2 (L2) por um conjunto equivalente de L1”.
Letra incorreta. Em uma arquitetura em camada [3] ou modelo
multi-nível [1], temos as seguintes camadas ou níveis:
 Nível 5: nível das linguagens orientadas para solução de problemas
(compilador);
 Nível 4: nível da linguagem do montador (montador);
 Nível 3: nível do sistema operacional (sistema operacional)
 Nível 2: nível da arquitetura do conjunto de instruções (microprograma ou execução direta);
 Nível 1: nível da micro-arquitetura (executados diretamente pelo
hardware); e
 Nível 0: nível da lógica digital.
Em [3], temos que a compilação ou tradução“... consiste em substituir
todas as instruções do programa escrito em L2 por umasequência de instruções
em L1. O programa resultante é formado somente por instruções L1 eé
executado pelo computador. L2 não é mais necessário”.
Ainda em [3], na interpretação, o interpretador “... pegacada instrução
de
L2
e
transforma
em
um
conjunto
de
instruções
em
L1
executandodiretamente sem a geração de um programa em L1”.
Corrigindo a letra: “o interpretador compilador é um programa de
nível 1 (L1) que substitui cada instrução de nível 2 (L2) por um conjunto
equivalente de L1”.
Referências:
[1] Organização de Computadores:
http://equipe.nce.ufrj.br/thome/grad/so/mataux/Arquitetura_apst.pdf;
[2] EA-869 - Dúvidas Frequentes:
http://www.dca.fee.unicamp.br/~ting/Courses/ea869/faq2.html#item1; e
[3] https://leticiasuemi.files.wordpress.com/2011/08/resumo-livro1.pdf.
Gabarito: letra B.
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
15
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
[FCC 2010 TRF 4ª Região – Analista Judiciário – Informática – Questão
34] Sobre as linguagens de programação, é correto afirmar:
[A] Linguagens de alto nível cumprem tarefas mais substanciais com um
número menor de comandos, mas exigem programas tradutores denominados
compiladores para converter programas em linguagem de alto nível para
linguagem de máquina.
[B] Um computador pode entender qualquer linguagem de máquina, pois a
linguagem de máquina não é definida pelo projeto de hardware do computador.
[C] Programadores podem escrever instruções em várias linguagens de
programação e todas são entendidas diretamente pelos computadores sem a
necessidade de tradução.
[D] Softwares escritos em linguagens de máquina são portáveis.
[E] Interpretadores são programas que convertem códigos escritos em
linguagem de alto nível para programa sem linguagem de máquina.
Comentário:
Letra A: “linguagens de alto nível cumprem tarefas mais substanciais com
um número menor de comandos,mas exigem programas tradutores
denominados compiladores para converter programas em linguagem de alto
nível para linguagem de máquina”.
Letra correta. Como estudamos, as linguagens de alto nível são
linguagens mais semelhantes à linguagem humana. Ela deixa o trabalho
de desenvolvimento de softwares muito mais fácil do que se programássemos
em uma linguagem de baixo nível ou linguagem de máquina. Porém, para que o
processador possa entender os programas feitos em linguagem de alto nível, é
necessária sua tradução (ou compilação) para linguagem que o processador
possa entender, ou seja, linguagem de máquina.
Letra B: “um computador pode entender qualquer linguagem de máquina,
pois a linguagem de máquina não é definida pelo projeto de hardware do
computador”.
Letra incorreta. Em [1], temos que qualquer computador pode entender
diretamente apenas sua própria linguagem de máquina. Essa é a linguagem
natural do computador, definida pelo projeto de hardware, ou seja, uma
linguagem de máquina é específica e só pode ser utilizada em um tipo de
computador.
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
16
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
Corrigindo a letra: “um computador pode entender apenas suaprópria
linguagem de máquina, pois a linguagem de máquina é definida pelo projeto de
hardware do computador”.
Letra C: “programadores podem escrever instruções em várias linguagens
de programação e todas são entendidas diretamente pelos computadores sem a
necessidade de tradução”.
Letra incorreta. Os processadores
programas em linguagem de máquina.
podem
apenas
entender
Letra D: “softwares escritos em linguagens de máquina são portáveis”.
Letra incorreta. Como estudado na letra B, um software, se compilado
para uma linguagem de máquina e uma linguagem de máquina é específica,
então esse software só pode ser utilizado em um tipo de computador.
Letra E: “interpretadores são programas que convertem códigos escritos
em linguagem de alto nível para programas em linguagem de máquina”.
Letra incorreta. Quem faz essa tradução são os compiladores. Para
revisarmos novamente: O compilador traduz:
 Um programa escrito em uma linguagem de alto nível;
 Em um programa-objeto não executável;
o Também chamado de módulo-objeto.
Apesar do módulo-objeto ser em linguagem de máquina, ele não é
executável ainda.
Há também o editor de ligação (também chamado de linker ou de
ligador), que gera um programa executável a partir de um ou mais
módulos-objetos.
Já interpretador. Ele é uma instância de hardware ou software que lê
e executa diretamente as instruções apresentadas.
Ele não produz módulo-objeto. Apenas executa as instruções contidas
no programa-fonte, não necessariamente em linguagem de alto nível.
Durante uma execução, o interpretador lê cada instrução a partir de um
programa-fonte e executa-a imediatamente.
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
17
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
Referência:
[1] Construção de Compiladores - Capítulo 1:
http://www.decom.ufop.br/romildo/2012-2/bcc328/slides/01-introducao.pdf.
Gabarito: letra A.
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
18
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
2. Lista de questões na aula
2.1. Compilação, interpretação e execução de programas
[FCC 2012 TJ/PE – Técnico Judiciário – Suporte Técnico – Questão 40]
No contexto do módulo executável de um programa de computador, menor
tempo de execução, menor consumo de memória, maior tempo na execução de
loop’s, e menor dificuldade de identificação de erros estão associados,
respectivamente, aos métodos
[A] compilação, interpretação, compilação, interpretação.
[B] interpretação, interpretação, interpretação, compilação.
[C] interpretação, interpretação, compilação, compilação.
[D] interpretação, compilação, interpretação, compilação.
[E] compilação, compilação, interpretação, interpretação.
[FCC 2011 TRT 4ª Região – Técnico Judiciário – Tecnologia da
Informação – Questão 31] Em relação à organização e arquitetura de
computadores, é correto afirmar:
[A] A linguagem de máquina é um conjunto ilimitado de instruções que um
circuito de um computador pode reconhecer e executá-las diretamente.
[B] A linguagem de máquina é a forma mais primitiva de linguagem para se
comunicar com o computador.
[C] A arquitetura define os componentes do computador e a maneira como eles
estão interligados.
[D] A organização não define os componentes do computador, mas apenas o
seu comportamento e a maneira como eles estãointerligados.
[E] O Interpretador é um programa de nível 1 (L1) que substitui cada instrução
de nível 2 (L2) por um conjunto equivalente de L1.
[FCC 2010 TRF 4ª Região – Analista Judiciário – Informática – Questão
34] Sobre as linguagens de programação, é correto afirmar:
[A] Linguagens de alto nível cumprem tarefas mais substanciais com um
número menor de comandos, mas exigem programas tradutores denominados
compiladores para converter programas em linguagem de alto nível para
linguagem de máquina.
[B] Um computador pode entender qualquer linguagem de máquina, pois a
linguagem de máquina não é definida pelo projeto de hardware do computador.
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
19
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
[C] Programadores podem escrever instruções em várias linguagens de
programação e todas são entendidas diretamente pelos computadores sem a
necessidade de tradução.
[D] Softwares escritos em linguagens de máquina são portáveis.
[E] Interpretadores são programas que convertem códigos escritos em
linguagem de alto nível para programa sem linguagem de máquina.
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
20
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
3. Gabarito
3.1. Compilação, interpretação e execução de programas
[FCC 2012 TJ/PE – Técnico Judiciário – Suporte Técnico – Questão 40]
Gabarito: letra E.
[FCC 2011 TRT 4ª Região – Técnico Judiciário – Tecnologia da
Informação – Questão 31] Gabarito: letra B.
[FCC 2010 TRF 4ª Região – Analista Judiciário – Informática – Questão
34] Gabarito: letra A.
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
21
IADES 2016 PCDF - Perito Criminal - Ciência da Computação/Inf.
Desenvolvimento de Sistemas
Aula 00: Montadores, compiladores, ligadores e interpretadores
www.pontodosconcursos.com.br | Prof. Rogerão Araújo
22
Download