Executando verificação de segurança...
1

Eu tenho uma dúvida pra você que deve saber... LLVM é programado em C++ , e Rust é feito de código do LLVM, logo é programado em algo que é c++, como o Rust é quase da mesma velocidade do C++, ora ele não é feito de C++?, é como se você ligasse um gerador de energia na tomada

Carregando publicação patrocinada...
2

Veja no GitHub que o compilador de Rust é escrito na própria linguagem (mais de 96% do código é Rust, e nada de C++).

Este compilador gera o código intermediário do LLVM, que por sua vez gera o executável - o processo todo é descrito aqui.

Para entender como o compilador de uma linguagem pode ser escrito nela mesma, leia aqui (o link é sobre Java, mas a ideia geral é a mesma para qualquer linguagem).

De qualquer forma, não é a linguagem em que o compilador foi escrito que determina a "velocidade", e sim o que/como a linguagem faz as coisas. Por exemplo, a implementação atual do Python é escrita em C, mas muitas coisas em Python não chegam na mesma velocidade do C porque a linguagem tem um overhead interno - como o fato de cada valor (seja número, string, etc) ser um objeto complexo: uma simples soma de dois números resulta na chamada de um método.

O mesmo vale para qualquer linguagem.

2

Só para complementar, Rust, de acordo com a implementação oficial, gera um código intermediário que é então traduzido para o código intermediário do LLVM, exemplificado na postagem original.

Não é tão simples explicar a questão da velocidade sem que a pessoa tenha um entendimento amplo da computação e principalmente, deixar de lado os mitos que aprenderam vendo coisas na internet (sempre fala que ela é a casa do capeta, ela útil, mas ótima para ensinar algo errado, assim como o papel, ela aceita tudo, até muita coisa errada, e que pode prevalecer). Por isso que eu falo sempre para as pessoas não treinarem o erro.

A comparação com o gerador de energia não parece fazer sentido, ou eu não entendi o propósito.

De qualquer forma o mais importante é que as linguagens não possuem velocidade. As linguagens não são o que as pessos pensam que são. Não vou entrar em todos os detalhes, correndo o risco de um entendimento errado pela falta de detalhes, mas não é o foco aqui.

Rust, dentro da normalidade, roda código binário igual C++. Não o mesmo código binário, até porque o código fonte nunca é o mesmo, e as linguagens possuem regras muito diferentes, mesmo um cósigo simples, pouco mais que um Hello World, que é semanticamente idêntico nas duas linguagens gerarão binários bem diferentes. Roda igual C, Delphi, Go, C#, em Java em última análise, e várias outras linguagens. Tem Python que faz isso, mas "ninguém" usa.

Links úteis:

1

Lua é considerada uma linguagem de alto desempenho, e ela é interpretada! Se usar o LuaJit, ela tem partes do codigo compilado o que a torna ainda mais rapida!

Não é no quê foi escrita, mas sim como foi escrita. Rust é quase da mesma velocidade do C++ mas ela não é C++! Uma vez escrita e compilada, ela deixa de ser C/C++ e passa a ser Rust ou compilador Rust, Logo, com esse Compildor Rust você pode escrever Rust e compilar um novo Rust!

O fato está em como ela foi projetada para funcionar.

0

Exatamente. Além do Lua, temos o PyPy que também usa JIT e também a nova linguagem de programação Mojo que também tem JIT no meio!