Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Quando estamos codi�cando um sistema, nem sempre nos preocupamos com o trabalho feito por trás daquela programação.
No entanto, saber qual método de tradução será usado pode ajudar bastante na hora de distribuir um projeto, especialmente quando se trata
de portabilidade ou desempenho.
É nessas horas que um conhecimento prévio sobre qual técnica de implementação pode ser usada para a linguagem escolhida pode ajudar.
Linguagens compiladas e interpretadas têm muito por trás do que apenas converter o código para linguagem de máquina.
Lembrando que não existe uma “linguagem compilada” ou “linguagem interpretada” literalmente. Salvo alguma especi�cação, todas podem
passar por esses dois processos. No entanto, você pode usar esses termos, já que é subentendido por todos da área, só #�caadica.
Recado dado, podemos seguir para o artigo! A pergunta de hoje é: qual utilizar na minha aplicação?
Métodos de tradução: interpretador x compilador
De�nir corretamente qual método de tradução utilizar no seu projeto
pode ser extremamente útil, especialmente quando se trata de
portabilidade ou desempenho.
Compartilhar
junho 16, 2021 · 
XML vs JSON: Entenda como fazer a melhor escolha!
Full stack
0 Comments
 
https://geekblogti.wpengine.com/xml-vs-json-entenda-como-fazer-a-melhor-escolha/
https://blog.geekhunter.com.br/category/full-stack/
https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fblog.geekhunter.com.br%2Fmetodos-de-traducao-compiladores-ou-interpretadores%2F
https://twitter.com/intent/tweet?text=M%C3%A9todos%20de%20tradu%C3%A7%C3%A3o%3A%20interpretador%20x%20compilador&url=https%3A%2F%2Fblog.geekhunter.com.br%2Fmetodos-de-traducao-compiladores-ou-interpretadores%2F
https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fblog.geekhunter.com.br%2Fmetodos-de-traducao-compiladores-ou-interpretadores%2F&title=M%C3%A9todos%20de%20tradu%C3%A7%C3%A3o%3A%20interpretador%20x%20compilador
https://api.whatsapp.com/send?text=M%C3%A9todos%20de%20tradu%C3%A7%C3%A3o%3A%20interpretador%20x%20compilador%20https%3A%2F%2Fblog.geekhunter.com.br%2Fmetodos-de-traducao-compiladores-ou-interpretadores%2F
https://blog.geekhunter.com.br/
https://blog.geekhunter.com.br/
Conteúdo [ ocultar ]
1 O que é compilador
1.1 Exemplos de compiladores
2 O que é interpretador de código
3 Interpretador vs compilador
4 Qual deles eu devo usar
5 Compilada e Interpretada: vantagens e desvantagens
6 E quanto aos scripts?
7 Just in Time – JIT
8 Quando usar cada uma
O que é compilador
Antes de começar, vamos entender o que é um compilador. De modo geral, um compilador é um sistema capaz de traduzir outro sistema em
linguagem de alto nível para um de linguagem simbólica, mantendo uma semântica semelhante.
Para ser capaz de cumprir suas tarefas, o compilador deve conseguir desempenhar duas etapas de atividades fundamentais: análise e síntese.
A etapa de análise consiste em analisar o código fonte, reconhecendo a estrutura e o signi�cado da linguagem de alto nível a ser traduzida.
Aqui também são veri�cados possíveis erros de digitação do código, tipagem incorreta e até a sintaxe.
Após estar tudo ok na análise, a etapa de síntese começa. Ela consiste em sintetizar a linguagem, ou seja, de fato “traduzir” o programa que
anteriormente estava na linguagem complexa, que foi analisada, para assembly ou código binário.
Esse processo, no �m, gera um novo arquivo com todo o código compilado, em linguagem de máquina, pronto para ser executado pelo seu
computador, como se fosse um compactado .zip.
Veja esse vídeo caso tenha �cado alguma dúvida no conceito geral de um compilador. No geral, é algo simples de ser entendido, assim como o
exemplo que ele usa.
Exemplos de compiladores
O QUE É UM COMPILADOR?O QUE É UM COMPILADOR?
 
https://www.youtube.com/watch?v=7KUDh1HCJJI
https://blog.geekhunter.com.br/
https://blog.geekhunter.com.br/
Para exempli�car, vou trazer alguns exemplos de compiladores para você saber mais ou até mesmo fazer o download.
O primeiro é o GCC. Ele é um pacote de programas responsáveis por fazer a compilação do seu código em C, C++, Objective-C, Fortran, Ada, Go,
and D.
O NetBeans é uma IDE mas também compilador de códigos em diversas linguagens, como C, C++ e PHP.
Uma alternativa online e que também vai servir é o Ideone. Suporta mais de 60 linguagens.
Em resumo, a maioria das IDEs possuem compilador na sua estrutura de ferramentas, provavelmente a que vocÊ usa também!
compilador de linguagem banner
O que é interpretador de código
Agora vamos para o interpretador. Diferente do compilador, ao utilizarmos um interpretador para transformar nosso código em linguagem de
máquina, não “traduzimos” o programa inteiro, gerando outro arquivo.
O interpretador funciona, de certa forma, em tempo real. Ao executar o código através de um interpretador, você estará convertendo seu
código fonte em código alvo (ou linguagem de máquina) linha por linha.
Já em seguida, a sua máquina irá executar o que foi convertido e não será criado nenhum tipo de arquivo posterior.
Isso ocorre através de um software interpretador, que controla o �uxo de trabalho e garante que tudo sairá como planejado.
Dessa forma, é possível detectar erros no momento em que eles passam pelo interpretador. Você saberá onde está esse problema e poderá
debugar o código mais facilmente.
Por outro lado, como é trabalhado linha por linha, você deve imaginar que a performance não é a mesma que executar um código que já está
100% compilado, certo? Certo.
interpretador de linguagem banner
Interpretador vs compilador
 
https://gcc.gnu.org/
https://netbeans.apache.org/
https://ideone.com/
https://blog.geekhunter.com.br/
https://blog.geekhunter.com.br/
Basicamente, um compilador traduz todas as suas linhas de código para outra linguagem – normalmente, uma de alto nível para outra de
baixo nível (Assembly ou linguagem de máquina). Delphi, Rust, C++ e Swift �guram na lista de compiladas.
O interpretador faz esse trabalho de conversão aos poucos, sempre que uma declaração ou função é executada, por exemplo. MATLAB,
Lisp, Perl e PHP são apontadas como interpretadas.
Embora isso dê a sugestão de que essa interpretação leve muito tempo para �car pronta, o compilador também caminha bastante para ser
convertido.
Alguns dos passos são: Análise léxica e semântica, pré-processamento, análise e otimização de código e, ao �m, geração do produto �nal.
Porém, uma vez compilado, ele não precisará fazer mais essa tradução – a menos que o código precise ser alterado.
Beleza, entendi os conceitos e sei o que cada um faz. Qual eu devo escolher?
Qual deles eu devo usar
 
https://geekblogti.wpengine.com/boas-praticas-de-programacao-em-php/
https://blog.geekhunter.com.br/
https://blog.geekhunter.com.br/
Interpretador ou compilador, então? Pode parecer descuidada ou sem preocupação com as peculiaridades especí�cas de um sistema, mas a
resposta básica é assustadoramente simples e completa: tanto faz. Quê?
Isso mesmo, tanto faz. Na verdade, qualquer linguagem pode ser compilada ou interpretada, pois esses conceitos não são próprios de uma
linguagem em si, ou seja, não é um atributo ou característica intrinsecamente ligada a ela.
Ambos são técnicas de implementação para executar (ou, melhor ainda, traduzir) o seu código fonte e podem ser aplicados para qualquer
linguagem, desde que se tenha o tradutor necessário para tal.
Uma atitude comum a alguns programadores que reforça essa ideia é construir seu código em um editor de texto comum, tipo o bloco de
notas. Depois de construído, o arquivo era usado em um programa para executado (quem nunca montou um HTML dessa forma?).
 
https://blog.geekhunter.com.br/
https://blog.geekhunter.com.br/
Compilada e Interpretada: vantagens e desvantagens
Uma das grandes vantagens dos compiladores é sua velocidade de execução, muito em função do que já falamos sobre traduzir todo o código
de uma vez. Não precisar fazer a conversão toda vez que o sistema é executado dá uma e�ciência muitomaior do que um interpretador.
Uma compilação costuma dar resultados mais con�áveis graças às suas diversas etapas de validação e otimização. Uma checagem de tipos
estáticos, por exemplo, é comum em compiladores, e identi�ca diversos erros de programação antes do executável ser gerado.
Que tal: As melhores linguagens de programações pro dev iniciante aprender! 
https://geekblogti.wpengine.com/melhores-linguagens-de-programacao-para-devs-iniciantes/
https://blog.geekhunter.com.br/
https://blog.geekhunter.com.br/
Por sua vez, enquanto uma linguagem compilada precisa fazer essa tradução para cada plataforma destinada (como versões especí�cas do
Adobe Photoshop para Windows, Linux e Mac), a interpretação, por poder rodar em tempo de execução, é independente.
Não importa se é Linux ou Mac; basta ter o Python instalado na máquina que ela vai rodar seu código em Python.
Além disso, a capacidade de execução em runtime permite utilizar re�exão (ou seja, examinar e modi�car sua própria estrutura em tempo de
execução) e tipagem dinâmica (capacidade de escolher dinamicamente o tipo de uma variável, não exigindo uma declaração), uma
característica básica do PHP, por exemplo.
Veri�car e modi�car o código de uma linguagem interpretada também é mais fácil, já que basta abrir o arquivo e ver o que tem escrito. Para
fazer o mesmo com uma biblioteca compilada, é preciso utilizar um descompilador (o Java Decompiler já salvou minha vida quando precisei
abrir uma biblioteca de um projeto herdado).
Isso, no entanto, também pode ser visto como uma desvantagem, pois qualquer pessoa com um mínimo de conhecimento pode ver a
implementação de um JavaScript embutido numa página web ou até mesmo realizar uma injeção de código.
Por isso mesmo, a segurança é sempre uma preocupação em momentos assim.
E quanto aos scripts?
Bitbucket vs GitHub: quem vence a batalha?
 
http://thesocietea.org/2016/02/programming-concepts-type-introspection-and-reflection/
http://jd.benow.ca/
https://geekblogti.wpengine.com/bitbucket-vs-git-quem-vence-a-batalha/
https://blog.geekhunter.com.br/
https://blog.geekhunter.com.br/
Essa preocupação com a segurança e com a �exibilidade das aplicações, entre outros motivos, foram responsáveis a dar vida para aqueles
pequenos trechos de código (ou scripts) baseados em Java, transformando-os em uma linguagem propriamente dita (linguagem de script)
como o JavaScript.
Por outro lado, sua principal característica ainda é a interpretação do código pelo lado do cliente, através do navegador (sim, uma das funções
básicas de um browser é interpretação), sem que precise ser executado no servidor.
Mesmo assim, isso não impede que um script seja compilado. Na verdade, os games fazem uso disso com certa frequência, seja para adicionar
novas funcionalidades ou corrigir problemas com a aplicação de atualizações.
Lua também é uma linguagem de script extremamente poderosa, bem famosa pela construção de macros e add-ons compilados por jogadores
de World of Warcraft. Porém, como ela gera bytecodes como resultado, além de ter tipagem dinâmica e gerenciamento automático de
 
http://www.tecmundo.com.br/programacao/1185-o-que-e-script-.htm
http://books.google.com.br/books?id=rAmNCqpmunIC&dq=compiling+addon+lua&hl=pt-BR
https://blog.geekhunter.com.br/
https://blog.geekhunter.com.br/
memória, é mais comum sua associação com interpretadores.
Just in Time – JIT
Por terem características diferentes (e, de certa forma, complementares), algumas linguagens fazem uso de compliadores e de interpretadores,
sendo Java o maior exemplo disso.
Git, SVN e CVS — comparação dos principais VCS
 
https://geekblogti.wpengine.com/git-svn-e-cvs-comparacao-dos-principais-vcs/
https://blog.geekhunter.com.br/
https://blog.geekhunter.com.br/
Implementações do Java costumam compilar o código a �m de gerar um bytecode, ao invés de instruções em linguagem de máquina. A partir
dessa conversão, o bytecode pode ser interpretado por uma JVM (Java Virtual Machine), que pode ser instalada em qualquer máquina. Assim, o
Java combina a con�abilidade e a otimização da compilação com a �exibilidade da interpretação.
Uma evolução desse modelo está no conceito de compilação just-in-time (JIT). O JIT nada mais é que uma compilação feita em tempo de
execução, ao invés de antes de rodar a aplicação (ahead-of-time). Ela pode ser feita por arquivo, função ou até fragmentos de código,
traduzindo dinamicamente essas partes e executando diretamente na memória.
Ou seja, o JIT mescla os dois tipos de tradutores. Ele compila apenas parte do código que será usado na execução e interpreta essa fração. Os
ganhos de performance são notáveis.
Mas essa técnica ainda apresenta algumas desvantagens como o atraso na inicialização (“startup delay”), pois ainda é necessário carregar os
primeiros blocos do código para serem compilados.
Assim, quanto mais o JIT for otimizado, melhor o código gerado, mas também esse atraso �ca maior.
Uma boa dica para conhecer mais sobre o assunto está no artigo “Compilação Just-In-Time: Histórico, Arquitetura, Princípios e Sistemas“,
escrito pelos então estudantes George Souza Oliveira e Anderson Faustino da Silva, da Universidade Federal do Maringá.
Quando usar cada uma
 
http://www.javaworld.com/article/2077233/core-java/bytecode-basics.html
https://pdfs.semanticscholar.org/914d/b8a17227605384dff1133888ed843915c463.pdf
https://blog.geekhunter.com.br/
https://blog.geekhunter.com.br/
Como dito acima, as linguagens podem ser tanto interpretadas quanto compiladas, então vai da necessidade da aplicação o método de
execução, independentemente da linguagem escolhida.
Sistemas web frequentemente usam linguagens interpretadas para serem feitos pela facilidade de manutenção e pela necessidade de
portabilidade.
Um problema que até recentemente afetava bastante essas páginas era a falta de padronização do mercado: um site que era bem visualizado
no Google Chrome podia �car com um layout esquisito no Internet Explorer.
Muitas vezes, os programadores tinham que recorrer a scripts, alterações de layout ou de código diversas vezes, então imagina só ter que lidar
com diversas distribuições de compilação.
 
https://blog.geekhunter.com.br/
https://blog.geekhunter.com.br/
Ao contrário, realizar as modi�cações necessárias e vê-las aplicadas pouco tempo depois é bem mais interessante para desenvolvedores e
usuários.
Em contrapartida, aplicações compiladas são bem mais seguras e rápidas, e são recomendadas para quem exige um desempenho
considerável. Mas também traz alguns incômodos, como ter que reinstalar o sistema quando uma versão mais atualizada �ca disponível.
Além disso, várias das linguagens mais aceitas atualmente utilizam podem gerar bytecode como formato intermediário – como Java, C#, Python
e Ruby – sem problemas. Assim, é possível �car em um meio-termo, garantindo as melhores vantagens de cada um para seu sistema.
Entendeu o que é e o que faz cada um dos métodos de tradução? Se �cou alguma dúvida, pode comentar abaixo que iremos responder!
interpretador vs compilador banner
Compartilhar
YOU MAY ALSO LIKE
0 Comentários geekhunter 🔒 Disqus' Privacy Policy 1 Entrar
t Tweet f Compartilhar Ordenar por Mais votados
FAZER LOGIN COM OU REGISTRE-SE NO DISQUS 
Nome
Iniciar a discussão...
?
Seja o primeiro a comentar.
Inscreva-se✉ Adicione o Disqus no seu siteAdicionar DisqusAdicionard Do Not Sell My Data⚠
 Favorite
Redação GeekHunter
Artigos escritos pela equipe de conteúdo da GeekHunter.
Full stack
 
https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fblog.geekhunter.com.br%2Fmetodos-de-traducao-compiladores-ou-interpretadores%2F
https://twitter.com/intent/tweet?text=M%C3%A9todos%20de%20tradu%C3%A7%C3%A3o%3A%20interpretador%20x%20compilador&url=https%3A%2F%2Fblog.geekhunter.com.br%2Fmetodos-de-traducao-compiladores-ou-interpretadores%2F
https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fblog.geekhunter.com.br%2Fmetodos-de-traducao-compiladores-ou-interpretadores%2F&title=M%C3%A9todos%20de%20tradu%C3%A7%C3%A3o%3A%20interpretador%20x%20compiladorhttps://api.whatsapp.com/send?text=M%C3%A9todos%20de%20tradu%C3%A7%C3%A3o%3A%20interpretador%20x%20compilador%20https%3A%2F%2Fblog.geekhunter.com.br%2Fmetodos-de-traducao-compiladores-ou-interpretadores%2F
https://disqus.com/
https://disqus.com/home/forums/geekhunter/
https://help.disqus.com/customer/portal/articles/466259-privacy-policy
https://disqus.com/home/inbox/
https://publishers.disqus.com/engage?utm_source=geekhunter&utm_medium=Disqus-Footer
https://disqus.com/data-sharing-settings/
https://blog.geekhunter.com.br/author/geekhunter/
https://blog.geekhunter.com.br/biometria-na-nuvem-seguranca-na-palma-da-mao/
https://blog.geekhunter.com.br/category/full-stack/
https://blog.geekhunter.com.br/
https://blog.geekhunter.com.br/
Biometria na nuvem: segurança na palma da mão
Redação GeekHunter agosto 30, 2016
As principais questões que circundam as interações com biometria em aplicações online, os desa�os ainda a serem enfrentados e as perspectivas
para desenvolvedores e engenheiros de software.
Compartilhar
Full stack
 
https://blog.geekhunter.com.br/biometria-na-nuvem-seguranca-na-palma-da-mao/
https://blog.geekhunter.com.br/author/geekhunter/
https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fblog.geekhunter.com.br%2Fbiometria-na-nuvem-seguranca-na-palma-da-mao%2F
https://twitter.com/intent/tweet?text=Biometria%20na%20nuvem%3A%20seguran%C3%A7a%20na%20palma%20da%20m%C3%A3o&url=https%3A%2F%2Fblog.geekhunter.com.br%2Fbiometria-na-nuvem-seguranca-na-palma-da-mao%2F
https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fblog.geekhunter.com.br%2Fbiometria-na-nuvem-seguranca-na-palma-da-mao%2F&title=Biometria%20na%20nuvem%3A%20seguran%C3%A7a%20na%20palma%20da%20m%C3%A3o
https://api.whatsapp.com/send?text=Biometria%20na%20nuvem%3A%20seguran%C3%A7a%20na%20palma%20da%20m%C3%A3o%20https%3A%2F%2Fblog.geekhunter.com.br%2Fbiometria-na-nuvem-seguranca-na-palma-da-mao%2F
https://blog.geekhunter.com.br/biometria-na-nuvem-seguranca-na-palma-da-mao/
https://blog.geekhunter.com.br/conheca-o-projeto-amp-e-supere-o-mobile-convencional/
https://blog.geekhunter.com.br/category/full-stack/
https://blog.geekhunter.com.br/
https://blog.geekhunter.com.br/
Conheça o Projeto AMP e supere o Mobile convencional
Gustavo Kerezi outubro 11, 2016
Saiba como funciona a aceleração de páginas mobile com o Projeto AMP do Google e saia na frente com projetos otimizados!
Compartilhar
Receba nossa newsletter
Nome *
Email *
Ao informar meus dados, eu concordo com a Política de Privacidade.
Prometemos não utilizar suas informações de contato para enviar qualquer tipo de SPAM.
 Eu concordo em receber comunicações.
INSCREVA-SE
 
https://blog.geekhunter.com.br/conheca-o-projeto-amp-e-supere-o-mobile-convencional/
https://blog.geekhunter.com.br/author/gustavokerezi/
https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fblog.geekhunter.com.br%2Fconheca-o-projeto-amp-e-supere-o-mobile-convencional%2F
https://twitter.com/intent/tweet?text=Conhe%C3%A7a%20o%20Projeto%20AMP%20e%20supere%20o%20Mobile%20convencional&url=https%3A%2F%2Fblog.geekhunter.com.br%2Fconheca-o-projeto-amp-e-supere-o-mobile-convencional%2F
https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fblog.geekhunter.com.br%2Fconheca-o-projeto-amp-e-supere-o-mobile-convencional%2F&title=Conhe%C3%A7a%20o%20Projeto%20AMP%20e%20supere%20o%20Mobile%20convencional
https://api.whatsapp.com/send?text=Conhe%C3%A7a%20o%20Projeto%20AMP%20e%20supere%20o%20Mobile%20convencional%20https%3A%2F%2Fblog.geekhunter.com.br%2Fconheca-o-projeto-amp-e-supere-o-mobile-convencional%2F
https://bit.ly/calcPJCLT
https://blog.geekhunter.com.br/conheca-o-projeto-amp-e-supere-o-mobile-convencional/
https://www.geekhunter.com.br/politicas-de-privacidade
https://blog.geekhunter.com.br/
https://blog.geekhunter.com.br/
NOVOS ARTIGOS
Os 10 melhores cursos Python para você aprender
Está em início de carreira na plataforma da GeekHunter? Esse artigo é para você!
Passo a passo para uma carta de apresentação perfeita
Como negociar meu salário de programador
Ada Lovelace: a primeira programadora da história
 
https://bit.ly/35Wa3h1
https://blog.geekhunter.com.br/cursos-python/
https://blog.geekhunter.com.br/baby-yoda/
https://blog.geekhunter.com.br/carta-de-apresentacao-perfeita-como-programador/
https://blog.geekhunter.com.br/como-negociar-meu-salario-de-programador/
https://blog.geekhunter.com.br/ada-lovelace/
https://blog.geekhunter.com.br/
https://blog.geekhunter.com.br/

Mais conteúdos dessa disciplina