3
respostas

Como uma linguagem é feita?

Bom dia, pessoal! Minha dúvida é uma que me surgiu ao longo desse curso de "Lógica de programação I". Entendi o que está por trás de um programa (código)... Mas o que está por trás de uma função? Por exemplo, como o navegador entende que a função while (){}; é para repetir algo enquanto determinada condição é satisfeita? Como é feita uma linguagem? Caso a resposta seja mais complexa do que o esperado, tem alguma recomendação de leitura sobre isso? Muito Obrigado! Abraço!

3 respostas

Oi Bruno, então, a resposta pra esse tipo de pergunta é bem longa e pode mais confundir do que ajudar em muitos casos.

O que o navegador faz?

Ele lê seu código e ai começa todo um processo de análise sintática e construção do processo de execução, isso consiste em analisar cada trecho de código digital, identificar as palavras chaves, avaliar as expressões, pra no final das contas executar algo.

Tem uma palestra de uma dev do Google que explica mais ou menos como funciona um compilador. Foi algo que ela fez pra escrever o dela baseado em javascript se não me engano.

Acabei encontrando o link: https://www.youtube.com/watch?v=rHCWQ0b3mWg

Fala Bruno, tranquilo?

Então, falando no caso do Javascript que é a linguagem utilizada no curso de Lógica:

Existem alguns tipos diferentes de processo para executar programas de determinadas linguagens, uma linguagem pode ser compilada (como é o caso que o Wanderson mencionou acima, C ou C++ por exemplo) ou pode ser interpretada (como é o caso do Javascript).

Uma linguagem compilada passa por todo o processo de Análise (onde será feita a Análise Léxica, Análise Sintática e Análise Semântica) e Síntese (onde será feita a geração de um código intermediário, suas possíveis otimizações e geração de código) para que no fim haja um programa objeto. Ex: quando compilamos algum programa em C ou C++ é gerado um arquivo .exe no Windows ou um arquivo .out no Linux.

Já uma linguagem interpretada não possui esses passos acima, como o nome já diz. É feita diretamente uma interpretação e execução do código fonte, sem que haja criação de um programa objeto.

Tem um link da universidade de Stanford bem interessante falando sobre compiladores:

https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/about

Aqui vai dois link e linkcom uma leitura interessante sobre o assunto.

Espero ter ajudado e bons estudos.