Pergunta

Agora estou aprendendo Perl. Quais são os prós e contras das linguagens interpretadas?

Foi útil?

Solução

flagrante copiar a partir wikipedia então eu vou fazer isso wiki comunidade.

Vantagens de linguagens interpretadas

Linguagens interpretadas dão programas certa flexibilidade extra sobre linguagens compiladas. Características que são mais fáceis de implementar em intérpretes do que em compiladores incluem (mas não estão limitados a):

  • independência de plataforma (código de bytes do Java, por exemplo)
  • reflexão e uso reflexiva do avaliador (por exemplo, uma função de primeira ordem Eval)
  • tipagem dinâmica
  • facilidade de depuração (é mais fácil obter informações código-fonte em linguagens interpretadas)
  • tamanho pequeno programa (desde linguagens interpretadas têm flexibilidade para escolher código de instrução)
  • escopo dinâmico
  • gerenciamento automático de memória

Desvantagens de linguagens interpretadas

Uma execução por um intérprete é geralmente muito menos eficiente do que a execução normal do programa. Isso acontece porque ou cada instrução deve passar uma interpretação em tempo de execução ou como em implementações mais recentes, o código tem de ser compilado para uma representação intermediária antes de cada execução. A máquina virtual é uma solução parcial para o problema de desempenho como o de língua intermediária definido é muito mais perto de linguagem de máquina e, portanto, mais fácil de ser convertidos em tempo de execução. Outra desvantagem é a necessidade de um intérprete na máquina local para fazer a execução possível.

Outras dicas

Pros:

  • Prototipagem rápida (sem escrever, compilar, executar ciclo)
  • Cross-plataforma (assumindo que existem intérpretes para cada plataforma)

Contras:

  • Desempenho (não será tão rápido como linguagens compiladas)

Maior problema? A maioria diria velocidade de execução, mas nem sempre é necessariamente verdade. A maioria das linguagens interpretadas modernas estes dias converter os arquivos para ser interpretado em um estado intermediário sobre a construção, que quando executado é transformado em código de máquina, assim como qualquer outra língua. Com o cache inteligente sendo principalmente prevalente dentro destes linguagem VMs nos dias de hoje, não deve ser demasiado de um problema. Este é certamente não quer dizer que o desempenho não é um problema com linguagens interpretadas, só que muitas vezes não é tão ruim quanto a maioria iria sugerir.

Tenha em mente que, mesmo com os problemas de desempenho, porém, muitas vezes é mais fácil de conseguir as mesmas tarefas que uma linguagem compilada em código menos e mais eficiente, tornando a perda de desempenho durante insignificante compilação sobre o tempo de execução de um programa.

Pessoalmente para mim, a maior desvantagem é a necessidade do intérprete estar sempre presente antes da execução pode ocorrer. Isso muitas vezes reduz a portabilidade, especialmente porque linguagens interpretadas nem sempre são multiplataforma.

Con:

  • A maior desvantagem é, provavelmente, a velocidade de execução

Pro:

  • A maior cabeça é, provavelmente, o tempo de rotação ou seja, ciclo de código-teste iteração

Para colocar para o ponto óbvio e amplo, linguagens compiladas tendem a ter um desempenho mais elevado do que os interpretados, pois compilar opõe-se a necessidade de um intérprete de tempo de execução.

Linguagens compiladas são mais adequados para o software de desktop comercial, uma vez que o código fonte não é fornecido junto com ele.

Linguagens interpretadas tendem a ser um pouco mais rápido para aprender, na medida em que permitem que você rapidamente editar / run / repetição sem esperar em um compilador. Em minha experiência, eles também tendem a ser de nível superior, o que os torna mais fácil também.

Wikipedia tem uma página sobre as vantagens e desvantagens. Qualquer idioma avançado significativamente interpretada pode ser real compilado em um binário nativo borrar, assim, as linhas entre os prós e contras de uma linguagem interpretada.

PERL é uma daquelas línguas que desfoca as linhas. Enquanto o seu famoso por ser uma poderosa linguagem de script, você pode compilá-lo para ser nativo.

O "lentidão" de Linguagens Dinâmicas como Perl não pode ser um problema por mais tempo. Aqui está uma excelente apresentação sobre as últimas tendências na área de linguagem dinâmica:

http: //steve-yegge.blogspot .com / 2008/05 / dinâmicos-línguas-strike-back.html

A linguagem como java é interpretado

Pros:

  • Compatibilidade: máquina virtual Java aprova este conceito "escreva uma vez, rode em qualquer lugar."
  • Segurança:. O programa em execução no JVM por isso, se qualquer falha acontece isso não afeta em operar arquivos de sistemas
  • Gerenciamento de memória.

Contras:

  • máquina virtual Java tem muitas implementações, por exemplo, ao escrever um programa que usa Java 8 apresenta este programa deve ser executado em JVM com 8 versão não menos.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top