Nesta aula, aprendi que podem existir dois tipos de linguagem: compiladas, interpretadas e as linguagens que tanto compilam quanto interpretam. Em uma linguagem compilada, o tradutor busca traduzir o código fonte inteiro para o código de máquina, o que pode tornar o tempo de execução um pouco mais demorado porém é capaz de identificar erros para serem corrigidos antes de sua execução. Uma linguagem compilada também serve para programas
robustos, grandes, e normalmente só podem ser executados em um tipo de máquina ou uma classe de máquinas específica. Exemplos de linguagem compilada são: C, C++, Go, Swift, Delphi e Rust. Em uma linguagem interpretada, o tradutor traduz o código fonte para o código de máquina em tempo real, na hora da execução, o que pode tornar o tempo de execução mais ágil porém os erros só serão identificados na hora da execução. Uma linguagem interpretada também serve para programas que rodarão em
múltiplos tipos de máquinas diferentes. Exemplos de linguagem interpretada são: Js, Phyton, Matlab, PHP, Ruby, Pearl e List. Há também o caso das linguagens que tanto compilam quanto interpretam, juntando os dois mundos, como o caso do Java por exemplo, onde o código fonte primeiramente é compilado em um arquivo .class (byte code) e em seguida interpretado pela máquina a partir de um interpretador chamado JVM (Máquina Virtual Java). Isso é muito útil, pois permite que tipos de máquinas
diferentes possam ler o mesmo programa, basta que essas máquinas tenham suporte ao Java, assim nós eliminamos a limitação das linguagens que apenas compilam, onde elas são apenas capazes de rodar em um tipo ou classe específica de máquinas. Outros exemplos desse tipo de linguagem são JavaScript e Phyton. Sobre linguagens interpretadas e compiladas, nenhuma linguagem é 100% um ou outro. Python, por exemplo, compila pra bytecode igual a
Java (os arquivos .pyc são compilados de bytecode) e interpretados pela PVM (CPython). Existem varias outras formas de interpretação, como a JIT, que compila primeiro pra bytecode e depois pra código de máquina igual uma compilada. Por exemplo, se você rodar Java numa implementação do JVM chamado HotSpot, ele vai "assistir" e analizar seu código para ver quais as partes que mais executam e compilar essas partes direto pra código de máquina, então sua aplicação pode ser lenta no início e ter uma maior performance conforme o os "hotspots" forem identificados. Além desses dois métodos de interpretação de programas, existem vários outros, como o AST que analisa a Árvore Sintática Abstrata diretamente ao invés de compilar pra bytecode ou machine code, isso faz com que o parsing e a análise de tokens seja mais fácil, já que esse tipo de interpretação consegue conservar a estrutura e relação do código. Muitas linguagens usam um passo de AST antes do bytecode, como Python. E, pra exercicio mental, se existisse um processador capaz de ler as instruções do bytecode do Python diretamente sem precisar de VM, isso faria Python ser compilada ou interpretada? Linguagens compiladas: C C++ C# Delphi Pascal Linguagens interpretadas: Python; PHP; Ruby; Linguagens JIT: .NET JAVA Olá Matheus, tudo bem? Gostei de ver! Além de pegar o conteúdo você pesquisou para aprender um pouco amis sobre as linguagens compiladas e interpretadas. Uma coisa que achei interessante é que você separou um espaço específico para o Java e o C# (.NET é a plataforma que utilizamos para programar com a linguagem C#). Essas duas linguagens realmente diferem das que chamamos de compiladas ou interpretadas... isso porque ambas utilizam os dois métodos. Possuem um compilador e também possuem uma máquina virtual que faz o papel do que seria um interpretador... então temos aí o conceito de JIT. Muito bem observado, parabéns! Se precisar de ajuda, pode contar conosco! Bons estudos!😄 Pré-requisito - Compilador vs Intérprete Linguagem compilada: Linguagem interpretada: Vamos ver a diferença entre linguagem compilada e interpretada:
Quais linguagens são compiladas e interpretadas?As linguagens que podem ter interpretações compiladas são: C, C++, C#, Java, Objective-C, Basic, entre outras. As compiladas puras são: C, C++, Erlang, Haskell, Rust e Go.
Quais são as linguagens de programação interpretadas?Alguns exemplos de linguagens de programação que são interpretadas são o PHP, JavaScript e Python.
É uma linguagem de programação interpretada?Linguagem interpretada é uma linguagem de programação em que o código fonte nessa linguagem é executado por um programa de computador chamado interpretador, que em seguida é executado pelo sistema operacional ou processador.
Qual é a diferença entre compilado é interpretado?Ao utilizar o método de compilação, o compilador irá ler o código, fazer todas as análises sintáticas e demais processos, para, por fim, gerar um arquivo código-objeto ou um arquivo executável. Já na interpretação, nenhum arquivo ou código é gerado, e sim uma tradução instantânea, em tempo de execução.
|