E aí o olá chegamos aqui a mais uma aula do seu curso básico de fundamentos 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 alta a gente vai ver como funcionam as linguagens porque 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 O que é muito comum nesse ramo né de tecnologia a gente ter tribos que defendem uma determinada linguagem ou uma solução para todos os problemas isso não existe eu poderia muito bem aqui gravar um curso de Python lá durante o curso de baita poderia falar que pai então é melhor linguagem do mundo durante o curso de Java poderia falar que já é melhor 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 é o quê por exemplo Python
não é a melhor opção para você criar um aplicativo para Android dá para fazer dá é meio dando de aham é melhor você utilizar JAVA ou 4 em E aí se você escolhe um time você acaba fechando suas possibilidades por exemplo se você escolhe o time fechar pe uma postura de que ser Sharp a melhor linguagem não existe outra talvez na hora de criar um aplicativo para Android você não se de tão bem assim com o Zé Merlin por exemplo que não é uma solução Nativa por outro lado se você escolhe o Java e vai
precisar fazer alguma coisa de dar com a Mairi ou de Inteligência Artificial você pode fechar e possibilidade para o uso do Pai 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 mais cedo 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 eu que eu sempre digo o meu aluno quem tem time é jogador de futebol é jogador de o jogador de futebol
americano programador não tem time programador aprende os fundamentos é isso que você tá fazendo agora programador consegue entender qual linguagem vai atender ele melhor um determinado projeto que ele vai desenvolver Então é isso que eu vou te mostrar aqui ele vai ver como funciona a linguagem a gente vai ter alguns mecanismos de funcionamento de forma mais genérica não vou falar especificamente nenhuma linguagem apesar de citar algumas linguagens aqui durante essa aula e assim eu tenho já 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 ou para fazer um curso de espanhol Vamos fazer uma viagem para o Japão com meu Morro de vontade de fazer e aí você precisa fazer um curso básico de japonês porque que você faz um curso de inglês praticamente eu te respondo porque você tem uma linguagem e a outra pessoa tem outra linguagem a gente vai precisar fazer o transporte de uma para outra então vamos mostrar aqui lado só falo para você o lá você vai entender Sem problema nenhum agora o olá em japonês para mim provavelmente eu não vou entender
o cara falar Olá em alemão provavelmente não vou nem saber que ele está sendo simpático comigo e se você vai viajar para os Estados Unidos e vai falar ou lá com alguém provavelmente essa pessoa não vai te entender porque lá eles não falam colar eles falam Hello e aí aquele esquema você tem que fazer um curso para você conseguir captar sempre está fazendo curso para traduzir eu lá para Hello mas eu tô né sei que você entende um nível de abstração aqui que a gente tá tendo então eu vou precisar Efetuar uma tradução eu vou
precisar jogador lá para o Hello 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 não tô falando duas linguagens Tipo C e Java não eu tô preparando a casa aqui para você entender o seguinte você entende uma linguagem eu entrei na mesma linguagem que você até porque você está assistindo esse vídeo compreendendo mas o seu computador não entendi é a mesma coisa que eu e um cara e por exemplo não conheço ninguém
que fale 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 ó escrevendo no programa também escrever problema nenhum para não ficar falando que eu defendo linguagem a linguagem ver isso aqui do lado é um programa pela Você pode escrever em ser em Java em Python e java script né um programa tá 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 no 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 que palavras que você consegue identificar como por exemplo print is tudo isso é muito simples e fácil de você compreender por isso nós colocamos em Alto Nível só que existe uma outra linguagem que a gente chama de linguagem de é que tá bem abaixo que está abaixo do baixo nível já vai entender isso já 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 nem o que 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 leve 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 de fazer assim tu passa de cima para baixo e acabou tem um passo-a-passo envolvido aí e É nesse vídeo que a gente vai entender isso então que a gente precisa
entender são técnicas como que as linguagens fazem para conseguir fazer essa tradução aqui verdade o termo tradutor existe você pode usar Olha eu preciso traduzir o meu código E aí cada linguagem encontra 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 quem são esses três processos que a gente vai ver exatamente agora vou começar pelo trouxe as um é o seguinte eu tenho que jogar como eu falei
do código-fonte para o código de máquina o primeiro processo mais clássico lembra quando a gente viu lá as linguagens de programação no vídeo anterior você não viu cara dá uma moral assistir o vídeo anterior porque deu um trabalhão para fazer e eu falei do surgimento do fortran cobol linguagem ser as primeiras linguagens da história e todas elas usa esse processo que eu vou explicar agora esse processo um basicamente você vai passar o seu código-fonte por um programa tradutor que a gente dá um nome específico para ele é um compilador quarta 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 seu código-fonte existem vários nomes várias bibliografias usa um nome diferente para isso mas basicamente ele vai pegar do Alto Nível e vai jogar por uma linguagem intermediária nada a linguagem intermediária a gente tava 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ços desse programa que podem ser convertidos de novo mais para 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éxica e análise semântica análise sintática Mas eu não vou ficar me aprofundando aqui porque esse curso é de primeiros passos eu não tô falando de arquitetura de linguagem de programação eu só tô te fazendo 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 ou compilador uma vez passando pelo compilador ele chama a linguagem de montagem até o que a gente chama de linguagem de baixo nível nessa linguagem que tá exatamente aqui o que é linguagem de baixo nível ou linguagem de montagem ou em inglês montagem assembly Ele tem instruções básicas genéricas que podem depois ser convertidas para linguagem da sua máquina tem como eu disse abaixo do baixo nível a gente que confunde Diz que esse aqui debaixo a linguagem de máquina é baixo nível não baixa
o nível é isso aqui do meio é a linguagem de montagem e essa linguagem de montagem tem algumas instruções que você já não entende mais porque ela é 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 um micro instruções específicas do seu processador e quem vai fazer essa conversão de linguagem de montagem para linguagem de máquina que tá aqui embaixo é o montador é um outro tradutor que é um montador ou em inglês assembler então
toma muito cuidado com o uso das palavras assembly e assembler assembly é o nome da linguagem assembler a tradutor de linguagem de montagem para linguagem de máquina eu espero que tenha sido muito claro para você e se acender ou montador vai fazer a conversão de linguagem de baixo nível ou linguagem de montagem para linguagem de máquina que a gente algumas linguagens chama de código executável código de montagem Ele não é executado 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 tecnologia
em alguns livros Então é isso esse é o primeiro Panorama Panorama um que é uma linguagem compilada compilada é montada exemplos de linguagens que utilizam esse tipo de Panorama aqui do lado cê ser mais mais por trump Pascal Visual Basic clássico poder Fire não sei se eu falei Delphi duas vezes mas é que aqui no Brasil ele fez tanto sucesso que se falei duas vezes está valendo por exemplo se você tá aqui no estudou na alta fazendo um curso de ser para gente já tá concurso de ser aí em andamento linguagem ser funciona ele é
a maneira Quando você vai lá no seu ambiente manda compilar o seu programa o Bill Graham ele vai gerar o executável você deve ter visto isso durante a aula e ele para no meio por código objeto então código. Ó exatamente aqui do meio você não sabe dá uma olhadinha no curso de ser vale a pena dar uma olhada porque ser uma linguagem importante cima para todo programador Provavelmente você passou por uma faculdade eu fiz um colégio você passou por essa linguagem você já teve que aprender a linguagem cedo EA linguagem ser uma linguagem clássica e
funciona nesse formato que você tá vendo aqui mas esse não é o único formato existe também o segundo formato 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 tradutor especial a gente chama de interpretador basicamente uma linguagem interpretada ela tem seu código-fonte diretamente com vestido para linguagem de máquina por um processo de cada linguagem utiliza o seu E aí nesse momento você pode estar pensando Poxa então interpretador é muito melhor do que eu E aí é que você se engana em alguns casos Às vezes você
tem razão depende de cada linguagem e como ela vai fazer o uso desse interpretador basicamente o processo que a gente viu anteriormente geram código de máquina já não pode do executável na sua máquina e esse código já está pronto para ser executado Já tá pronto para ser colocado na memória todos os comandos diretamente a 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 você tá no Windows e você vai
abrir o Word ele demora para abrir por quê Porque ele tá pegando todo o código executável do Word jogando na memória do seu computador ele poder ser executado o próprio processo de ligar o seu computador é você liga aí tem Windows né ou o Linux que aquele processo de longe o que que ele tá fazendo ele tá 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 e esse processo uma dele 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 o interpretador pegar a primeira linha do seu código-fonte ele converte diretamente né ele passa por processos que é cada linguagem faz o seu processo joga na linguagem de máquina jogar na linguagem que você com a tua máquina vai compreender uma linha só essa linha vai para memória e ela é executada terminado esse processo vamos pegar a segunda linha fazer a conversão para 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 ele é um pouco mais lento mas ele não precisa passar por aquele processo de compilação e montagem e às vezes você pode tá perguntando muitos alunos me perguntam tá agora agora mais Qual é o melhor E aí aqui tá Não tem melhor na verdade cada linguagem no seu momento de construção nela nos seus primórdios Decide qual o processo existem em e são interpretadas e também podem ser compilados mas existe a linguagem somente interpretadas então basicamente no processo um todo o programa
de código de máquina está na memória principal ele disponível para ser executado nesse processo dois que você tá vendo aqui do lado cada linha é posta na memória para ser executada depois executada ela é apagada e dar lugar a outra linha então isso gera uma economia de memória por exemplo mas também por outro lado gera um processamento maiores gera uma queda de performance E aí cada um tem sua vantagem por exemplo a linguagem PHP Ela utiliza esse mecanismo aqui mas lavar Poxa então pegar pelento aonde eu não vi lentidão do PHP por quê porque normalmente
eu pego até tá rodando numa máquina que é um server é um servidor e servidores de recursos muito bem dimensionados para não deixar a máquina fica lenta e além do PHP outras linguagens que utilizam esse mecanismo aqui de interpretação são por exemplo os javscript o Python e a linguagem R esses dois primeiros paradigmas são os e o compilado é o mais popular de todos o interpretado são linguagens um pouco mais recente que utilizam isso de forma otimizada e o terceiro processo que eu tenho para te mostrar ele é um tanto quanto diferente basicamente ele tá
pegando aqui como você viu a montagem da animação aqui do lado o código-fonte e jogando diretamente para 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 but could é basicamente ele não geram código de máquina para o seu computador ele gera um código de máquina para uma máquina virtualizada naquela visualizado eu gosto de explicar para os meus alunos como emuladores Sabe aquele emulador de joguinho a verdade você tem o seu Windows e você coloca um emulador de Playstation
para que esse emulador consiga executar comandos do Playstation Faria só que você não tem o PlayStation nesse processo aqui funciona de forma semelhante eu tenho código-fonte lá em cima e ele vai gerar um código de é 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 grande site pois emulador esse emulador tem um nome que é virtual Machine ou VM a tarefa da virtual Machine é conseguir pegar o byte code que tá exatamente aqui no meio e jogar diretamente por
uma linguagem que o seu processador Execute Na verdade ele não faz Exatamente Essa tradução que está representada aqui que a máquina virtual joga para linguagem de máquina a máquina virtual ela está funcionando no sistema operacional e vai fazer com que o seu computador consiga interpretar but could ele é uma camada Extra de software e aí vem várias críticas a esse tipo de linguagem é lenta o que eu tenho uma camada a mais tá é o mesmo processo do processo interpretado o PHP o python.org ele conseguiu utilizar de mecanismos para deixar isso mais eficiente não tão
lento e as linguagens que utilizam esse mecanismo também então os sistemas para utilização dessa performance inclusive todas as linguagens que estão utilizando máquinas virtuais eles agora tem uma coisa chamada just-in-time compiler ou gente precisa regit ele pega o seguinte a máquina visualizada aqui então comandos debate Cold que o seu computador não entende ele vai pegando cada um deles debate Cold a máquina virtual vai jogando para linguagem de máquina parecido com o processo de interpretação Se você começar analisar friamente esse processo três que você tá 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 parte de baixo é interpretada só que a interpretação não é feita no seu código-fonte é feito no seu código but could que é esse que tá aqui no meio Eu espero que você consiga entender você não entender pergunta para tutoria do estudo na alta ela está preparada para te ajudar e o que seria esse compilador digite este compilador gente é o seguinte como eu disse a VM ela vai pegando cada um o bytecode e jogando para linguagem de máquina
para poder ser executado o tio gente faz o seguinte ele consegue perceber ver se código do Meio Quais são os trechos de programa que são mais interpretados tá sendo toda hora interpretado Esse comando aí o que que ele faz espertamente vou fazer o seguinte em vez de fazer a máquina virtual fazer essa conversão eu já pego o diretamente o código de bytecode aqui no meio e jogo diretamente para linguagem de máquina ali embaixo e tudo agora fica de forma Nativa como se ela fosse compilado anteriormente a verdade a gente não funciona para todos os comandos
do batch Code apenas para aqueles que são mais usados e as linguagens que utilizam esse mecanismo que sempre a linguagem lua a linguagem Java a linguagem C Sharp na verdade não só ser Sharp toda a família do outlet também com soft utiliza esse método aqui de máquina virtual tem um 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 Espero sinceramente que você tenha entendido e o passe para o próximo passo que você ainda não compreendeu esses três processos então quando você
vai trabalhar por exemplo lá desenvolvimento Android que a gente tem aqui o desenvolvimento Android ele utiliza a linguagem Java ou a linguagem kotlin a linguagem Java a linguagem quatro em funciona Exatamente esse paradigma aqui do lado que é a visualização Porque o seu celular tem uma máquina virtual que vai rodar o seu programa compilado e se você tá na dúvida de como é que funciona nós temos também o curso de Android Studio com Java e que mostra logo no início do mundo zero como essa linguagem funciona aqui nessa a linguagem aqui dos fundamentos eu tentei
te dar um Panorama geral e todas as linguagens cara provavelmente a linguagem que você vai escolher aprender ela funciona nesses paradigmas não parou de mais um dois ou três E aí cadê você descobrir no momento é claro que você já dei o exemplo aqui pois bem a gente ser a gente utiliza para de mais um caderno linguagem compilada você tá fazendo o curso de PHP com banco de dados que vai funcionar no paradigma dois se você tá fazendo um curso de fechar e vai funcionar no paradigma três e assim vai acontecer com todas as linguagens
pode escolher essa linguagem pegar sua imagem favorita e fazer uma pesquisada ela é compilada para código nativo ela interpretada ou ela é compilada para but could a utiliza uma máquina virtual que caiu 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 mas vamos instalar o Portugal estúdio e vamos fazer ele funcionar no seu computador