olá chegamos aqui há mais uma aula do seu curso básico de fundamento de programação e eu espero sinceramente que você tenha visto os dois últimos vídeos porque eles te dão uma base para você entender como é que a gente chegou até aqui e durante essa aula 02 do seu curso de fundamentos aqui do estudo a alta a gente vai ver como funcionam as linguagens o que eu não sei se você sabe existem vários formatos de linguagem e vários comportamentos que podem inclusive interferir na sua decisão em relação a usar ou não utilizar uma determinada linguagem
porque é muito comum nesse ramo de tecnologia a gente ter tribos que defendem uma determinada linguagem como a solução para todos os problemas isso não existe eu poderia muito bem aqui gravar um curso de python a durante o curso de pato poderia falar que python é melhor linguagem do mundo durante o curso de java poderia falar que já vai na linguagem no mundo gente não existe a melhor linguagem existem as linguagens que se adaptam de acordo com as suas necessidades não adianta ficar forçando a barra porque por exemplo python não é a melhor opção para
você criar um aplicativo para android dá pra fazer da é meio da amb a reta é melhor você utilizar java ou quatro em um e aí você escolhe um time você acaba fechando as suas possibilidades por exemplo se você escolhe o time sharp uma postura de que se fechar primeira linguagem não existe outra talvez na hora de criar um aplicativo para android você não se dê tão bem assim com josé mourinho por exemplo que não é uma solução nativa por outro lado se você escolhe o java e vai precisar fazer alguma coisa de data mining
ou de inteligência artificial você pode fechar as possibilidades para o uso do python então aqui no estudo na alta a gente sempre vai pegar uma coisa você vai abrir sua mente para todas as possibilidades e se por acaso mas sendo mais tarde você se viu na necessidade de aprender uma nova linguagem não vai ser doloroso você não vai atrair o seu time não existe time e é o que eu sempre digo que o aluno quem tem time é jogador de futebol é jogador de hóquei é jogador de futebol americano programador não tem time programador aprendi
os fundamentos é isso que você está fazendo agora a dor consegue entender qual a linguagem vai atender melhor um determinado projeto que vai desenvolver então é isso que eu vou te mostrar aqui a gente vai ver como funciona as linguagens a gente vai ver alguns mecanismos de funcionamento de forma mais genérica não vou falar especificamente de nenhuma linguagem apesar de citar algumas linguagens aqui durante essa aula e assim eu tenho já há alguns anos a seguinte postura eu trato linguagem de programação como idioma sabe quando você precisa se comunicar e vai fazer um curso de
inglês vai fazer um curso de espanhol ou você vai fazer uma viagem pelo japão com o morro de vontade de fazer e aí você precisa fazer um curso básico de japonês porque você faz um curso de inglês basicamente eu te respondo porque você tem uma linguagem ea outra pessoa tem outra linguagem a gente vai precisar fazer o transporte de uma pra outra como você está vendo aquele lado só falo pra você olá você vai entender sem problema nenhum agora se alguém falar em japonês para mim provavelmente não vai entender se para falar em alemão provavelmente
não vou nem saber que está sendo simpático comigo e se você vai viajar para os estados unidos e vai falar com alguém provavelmente essa pessoa não vai te entender porque lá eles não falam o lá eles falam revelou e aí aqueles que ama você tem que fazer um curso para você conseguir redação para fazer um curso para traduzir lá para vê lo mas o doutor né você entende o nível de abstração aqui que a gente está tendo então vou precisar efetuar uma tradução eu vou precisar jogar do la para o revelou de alguma maneira você
sabe que isso acontece no seu dia a dia então é exatamente a mesma coisa que vai acontecer quando você aprender a programar porque são duas linguagens diferentes eu estou falando a linguagem tipo c e java não eu estou preparando a casa que você entender o seguinte você entende uma linguagem eu entendo a mesma linguagem que você até porque você está assistindo esse vídeo compreendendo mas o seu computador não entende é a mesma coisa que eu encarei alemão por exemplo não conheço ninguém que de que fala alemão e eu não sei uma palavra de alemão só
volkswagen então eu preciso aprender uma forma de fazer essa conversão linguagem de programação são exatamente o mesmo princípio claro que guardadas as proporções basicamente quando você tá aqui ó inscrever no programa também teve problema nenhum para não ficar falando ou deixando linguagem a linguagem dele isso aqui do lado é um programa que lá você pode escrever vencer em java e python e javascript é um programa aqui do lado você entende esse programa a gente diz que esse programa ele está numa linguagem de alto nível alto nível porque ele está perto de você a gente pensa
o seguinte você escreve o que a gente chama de código fonte esse código fonte é muito fácil de você compreender porque ele tem palavras que você consegue identificar como por exemplo print e tudo isso é muito simples e fácil de você compreender com isso nós colocamos em alto nível só que existe uma outra linguagem que a gente chama de linguagem de máquina que está bem abaixo está abaixo do baixo nível já vai entender isso já que é a linguagem que o seu computador essa linguagem de máquina e que você não entenderia seria o alemão para
mim e aí o que eu tenho que fazer é exatamente a mesma coisa que eu falei no início do vídeo a gente tem que efetuar uma tradução tradução essa que leva de linguagem do código-fonte lá de cima para o código de máquina aqui embaixo é claro que esse processo não é tão fácil parece muito bom passar de cima para baixo e acabou em um passo-a-passo envolvido aí e é nesse vídeo que a gente vai entender isso então a gente precisa entender são técnicas como que as linguagens fazem para conseguir fazer essa produção aqui na verdade
o termo tradutora existe você pode usar eu preciso traduzir o meu código e aí cada linguagem em conta o seu método a sua melhor forma de se traduzir mas existem padrões eu trouxe aqui nesse vídeo três padrões que são muito populares e atacam quase todas as linguagens de programação que a gente tem no mercado e são esses três processos que a gente vai ver exatamente agora vou começar pelo processo é o seguinte eu tenho que jogar como eu falei do código-fonte do código de máquina o primeiro processo mais clássico lembro quando a gente viu lá
as linguagens de programação no vídeo anterior se você não viu o cara dá uma moral assistir o vídeo anterior porque deu um trabalhão para fazer e eu falei do surgimento do for tran do cobol a linguagem ser as primeiras linguagens da história e todas elas usam esse processo eu vou explicar agora esse processo um basicamente você vai passar o seu código-fonte por um programa uma tradutor que a gente dá um nome em específico pra ele é o compilador com a tarefa do compilador o compilador ele vai traduzir a sua linguagem a sua linguagem de alto
nível a linguagem simbólica ou a linguagem do que o código fonte existem vários nomes várias biografias um nome diferente pra isso mas basicamente ele vai pegar do alto nível e vai jogar por uma linguagem intermediária na verdade essa linguagem intermediária a gente chama de baixo nível ou então linguagem de montagem essa linguagem de montagem ela não tem muito a ver com que tipo de máquina vai rodar esse código ela não tem nem com instruções das máquinas elas têm instruções básicas de como converter esse programa é o espaço desse programa que podem ser convertidos de novo
mais pra frente em linguagem de máquina então basicamente o código fonte é uma linguagem que você entende que a gente chama de linguagem de alto nível e aí quando você passa por um compilador ele faz vários processos existe análise léxico análise semântica análise sintática mas eu não vou ficar me aprofundando aqui porque esse curso de primeiros passos não tô falando de arquitetura de linguagem de programação vou te fazer entender como é que funciona o negócio então a olha aqui do lado a gente tem o código fonte que a gente chama de alto nível depois o
compilador uma vez passando pelo computador ele chama a linguagem de montagem que é o que a gente chama de linguagem de baixo nível nessa linguagem que está exatamente no meio da tela que a linguagem de baixo nível ou linguagem de montagem ou inglês montagem assembly ele tem instruções básicas genéricas que podem depois ser convertidas para a linguagem da sua máquina que como eu disse é abaixo do baixo nível tem gente que confunde diz que se aqui de baixo a linguagem de máquina é baixo nível não baixo nível é este aqui do meio é a linguagem
de montagem e essa linguagem de montagem tem algumas instruções que você já não entende mais porque é baixo nível mas o seu computador também não entendi ainda porque existe a conversão da montagem para a linguagem de máquina que aí sim ele vai começar a trabalhar com micro instruções específicas do seu processador e quem vai fazer essa conversão de linguagem de montagem para a linguagem de máquina que está aqui em baixo é o montador é um outro tradutor que é o montador ou em inglês assembléia então tomar muito cuidado com o uso das palavras assembly e
assembler assembléia o nome da linguagem assembléia é o tradutor de linguagem de montagem para a linguagem de máquina eu espero que tenha sido muito claro pra você esse assembler o montador vai fazer a conversão de linguagem de baixo nível ou linguagem de montagem para a linguagem de máquina que a gente algumas linguagens chama de código executável o código de montagem ele não é executada por uma máquina tem gente que chama ele de código de máquina não é executável eu não gosto muito desse termo não mas existe essa terminologia em alguns livros então é isso esse
é o primeiro programa panorama um que é uma linguagem compilada compilada é montada exemplo de linguagens que utilizam esse tipo de panorama aqui do lado c c++ fortran pascal visual basic clássico o delphi não sei se eu falei eu fui duas vezes mas é que aqui no brasil ele fez tanto sucesso que se falei duas vezes está valendo por exemplo se você está aqui no estudo na alta fazendo um curso de ser a gente já tá concurso desse aí em andamento linguagem ser funciona exatamente dessa maneira quando você vai lá no seu ambiente manda compilar
o seu programa o bild angolano ele vai gerar o executável você deve ter visto isso durante a aula e ele pára no meio com o código objeto que é o código ponto org exatamente aqui no meio você não sabe dar uma olhadinha no curso de ser vale a pena dar uma olhada porque ser uma linguagem importantíssima para todo programador provavelmente você passou por uma faculdade por um colégio você passou por essa linguagem você já teve que aprender a linguagem se em linguagem ser uma linguagem clássica e funciona nesse formato que você está vendo aqui mas
esse não é o único formato existe também o segundo formato que ele vai permitir a tradução automática do código fonte diretamente para o código de máquina comando por comando e esse produto especial a gente chama de interpretador basicamente uma linguagem interpretada ela tem o seu código fonte diretamente convertido para a linguagem de máquina por um processo que cada linguagem utiliza o seu e nesse momento você pode estar pensando poxa então interpretador é muito melhor do que o compilador aí é que você em gana em alguns casos às vezes você tem razão depende de cada linguagem
e como ela vai fazer uso desse interpretador basicamente o processo que a gente viu anteriormente gera um código de máquinas gera um código executável na sua máquina e esse código já está pronto para ser votado já está pronto para ser colocado na memória todos os comandos diretamente na memória e aí o seu sistema operacional executa eu não sei se você sabe dentro da arquitetura de computadores para qualquer programa será executado ele tem que estar alocado na memória principal então por exemplo quando se está no windows e você vai abrir o old ele demora para abrir
porque o que está pegando todo o código executável do word jogando na memória de seu computador ele poder ser executado o próprio processo de ligar o seu computador é você liga e tem o windows mac ou linux fica aquele processo de loading o que ele está fazendo ele está pegando a base do seu sistema operacional o executável núcleo e algumas bibliotecas jogando na memória principal e uma vez na memória principal ele pode ser executado esse processo o anterior no caso do processo dois aqui que é o processo de interpretação a coisa não acontece bem assim
como acontecia no processo um nesse processo de interpretação a gente vai pegar cada uma das linhas no interpretador pegá-la primeira linha do seu código-fonte ele converte diretamente ele passa por processos e aí cada linguagem que faz o seu processo joga na linguagem de máquina jogar na linguagem que você atua máquina vai compreender uma linha só essa linha vai para a memória e ela é executada terminado esse processo vamos pegar a segunda linha fazer a conversão para a linguagem de máquina e uma vez na linguagem de máquina joga essa linha na memória e executa viu como
é que o processo é um pouco mais lento mas eu não preciso passar por aquele processo de compilação e montagem e aí você pode perguntar muitos me perguntam taça guanabara mas qual é o melhor e aí é que tá não tem melhor na verdade cada linguagem no seu momento de construção ela nos seus primórdios decide qual o processo existem linguagens que são interpretadas e também podem ser compilados mas existem linguagem somente interpretadas então basicamente no processo um todo o programa de código de máquina está na memória principal ali disponível para ser executado nesse processo 2
que você está vendo aqui do lado cada linha é posta na memória para ser executada depois executada é apagada e dá lugar a outra linha então isso gera uma economia de memória por exemplo mas também por outro lado gera um processamento maior e geram uma queda de performance e aí cada um tem sua vantagem por exemplo a linguagem php ela utiliza esse mecanismo que faz a ponte então php lento há um senão vem lentidão no ph pelo porque que normalmente o php está rodando numa máquina que é um servo era um servidor e servidores tem
recursos muito bem dimensionados para não deixar a máquina fica lenta e além do php outras linguagens que utilizam esse mecanismo que dê interpretação só por exemplo o javascript o python e a linguagem é esses dois primeiros paradigmas são os mais populares o compilado mais popular de todos o interpretado são linguagens um pouco mais recentes que utilizam isso de forma otimizada e o terceiro processo que eu tenho para te mostrar ele é um tanto quanto diferente basicamente ele está pegando aqui como você viu a montagem da animação aqui do lado o código fonte e jogando diretamente
para a linguagem de máquina através de um compilador especial na verdade esse compilador ele não é um compilador comum ele o que a gente chama de compilador bytecode que basicamente ele não gera um código de máquina para o seu computador ele gera um código de máquinas para uma máquina virtualizada máquina virtualizado gosta de explicar os meus alunos como reguladores sabe aquele morador de joguinho na verdade você tem o seu windows e você coloca um emulador de seila playstation pra quê e simulador consiga executar comandos que o playstation faria só que você não tem o playstation
nesse processo aqui funciona de forma semelhante eu tenho o código-fonte lá em cima e ele vai gerar um código de máquina só que é um código de máquina um pouco modificado ele não roda no seu computador ele roda em uma máquina virtual ele roda numa espécie de entre grandes aspas emulador e simulador tem um nome que é virtual machine ou vn a tarefa da retoma a china é conseguir pegar o bate code que está exatamente no meio e jogar diretamente para uma linguagem do seu processador executivo na verdade ele não faz exatamente essa tradução está
representada aqui que a máquina virtual joga para a linguagem de máquina a máquina virtual ela está funcionando no sistema operacional e vai fazer com que seu computador consiga interpretar de qods em uma camada extra de software e aí vem várias críticas a esse tipo de linguagem é lenta porque eu tenho uma camada mais tá é o mesmo processo do processo interpretado o php o python o r ele conseguiu utilizar de mecanismos para deixar isso mais eficiente não tão lento e as linguagens que utilizam esse mecanismo também estão utilizando sistemas para a otimização dessa performance inclusive
todas as linguagens que estão utilizando máquinas virtuais eles agora têm uma coisa chamada justin time com o painel ou jet que serve git ele pega o seguinte a máquina virtualizado aqui são comandos debate código seu computador não entende ele vai pegando cada um deles debate code ou a máquina virtual vai jogando com a linguagem de máquina parecido com o processo de interpretação se você começar a analisar friamente esse processo 3 que está vendo aqui que são das linguagens virtualizados né com máquinas virtuais é mais ou menos uma mistura de compilação com interpretação a parte de
cima é compilada a partir de baixo é interpretada só que a interpretação não é feita no seu código fonte é feito no seu código bytecode que é isso que está aqui no meio espero que você consiga entender se você não entender pergunta pra tutoria do estudo a alta ela está preparada para te ajudar e o que seria esse compilador git este compilador de ti é o seguinte como eu disse avenida vai pegando cada um dos códigos bytecode e jogando para linguagem de máquina para poder ser executado o que a gente faz é o seguinte ele
consegue perceber desse código do meio quais são os trechos de programa que são mais interpretados está sendo toda hora interpretar esse comando aí que ele faz espertamente vou fazer o seguinte em vez de fazer a máquina virtual fazer essa conversão eu já pego diretamente o código debate kodiak do meio e jogos diretamente para a linguagem de máquina ali embaixo e tudo agora fica de forma nativa como se ela fosse compilado anteriormente na verdade hoje não funciona para todos os comandos do bairro onde apenas para aqueles que são mais usados e as linguagens que utilizam esse
mecanismo que simples lua a linguagem java a linguagem c sharp na verdade não só sharp toda a família dot net da microsoft utiliza esse método aqui de máquina virtual tem processo que pode ser interpretado tem um processo que pode ser rodado com máquina virtual eu espero sinceramente que você tenha gostado dessa aula e espero sinceramente que você tenha entendido não passe para o próximo passo se você ainda não compreendeu esses três processos então tô quando você vai trabalhar por exemplo a desenvolvimento android que a gente tem aqui o desenvolvimento do android ele utiliza a linguagem
java ou linguagem cotrim a linguagem java linguagem 4 funciona exatamente nesse paradigma aqui do lado que é a virtualização porque o seu celular tem uma máquina virtual que vai rodar o seu programa compilado que se você está na dúvida de como é que funciona nós temos também o curso de android estúdio com java e que mostra logo no início do módulo 10 como essa linguagem funciona aqui nessa linguagem dos fundamentos eu tenho que dar um panorama geral de todas as linguagens cara provavelmente a linguagem que você vai escolher aprender ela funciona nesses paradigmas no paradigma
1 2 ou 3 e aí cabe a você descobrir no momento é claro que eu já dei o exemplo aqui previu a vencer a gente utiliza para de marun que é da linguagem compilada se está fazendo curso de php um banco de dados que vai funcionar no paradigma 2 se você está fazendo um curso de sharon java vai funcionar no paradigma três e assim vai acontecer com todas as linguagens pode escolher sua linguagem e gasolina de favorita e faz uma pesquisada é compilada para código nativo ela é interpretada ou ela é compilada praticou já utiliza
uma máquina virtual fica aí o desafio para você descobrir então é isso no próximo vídeo a gente vai conhecer a ferramenta que a gente vai utilizar durante todo esse curso nós vamos instalar um porto ao estúdio e vamos fazer funcionar no seu computador