olá pessoal tudo bem com vocês vamos continuar na nossa explicação sobre os conceitos relacionados à programação então veja bem nós falamos lá atrás que para você criar um programa você precisa de quatro coisas primeiro escolher uma linguagem de programação segundo uma idéia é que o terceiro um compilador e quarto uma máquina virtual ou gerador de código para executar o programa o compilador é o cara que transforma o código fonte em código objeto ea máquina virtual ou gerador de código é o que permite o código objeto ser executado então nesse vídeo agora nós vamos ver esses
dois últimos tópicos no mesmo vídeo porque eles estão extremamente relacionados ok e também vamos ver os tipos de código que a gente tem que código fonte e objeto então vamos lá vamos ver cada um desses conceitos o primeiro deles é código fonte que tem um código fonte pessoal código fonte é aquele espírito pelo programador em linguagem de programação todos aqueles exemplos que eu mostrei lá pra vocês da solução do problema da média escrito em várias linguagens diferentes eu gostei o código fonte ou seja o código escrito em cada uma das linguagens de programação é este
código aqui que nós programadores escrevemos esse código entretanto pessoal ele não é entendido pelo computador nem pelo sistema operacional ele tem que ser convertido em um código que possa ser executado e aí que começa a explicação do que a gente chama de compilação compilação é um processo que transforma o código fonte no que a gente chama de código objeto esse processo é feito por um software chamado compilador durante o processo de compilação o compilador faz a análise eléctrica e sintática se tiver algum erro léxico ou sintático no código-fonte a compilação é abortada eo programador é
obrigado a corrigir os erros que porventura existam muito bem uma vez que o código fonte foi compilado e transformado em código objeto este código objeto vai ter que passar por um gerador de código para que seja feito um processo chamado construção ou bild e aí sim esse código executável pode ser executado pelo sistema nacional este modelo de compilação e execução que você está vendo aqui é adotado por algumas linguagens como por exemplo a linguagem c e c++ só para você ter uma idéia de como esse procedimento funciona eu vou voltar aqui na minha ideia com
de blocks onde eu abrir um novo projeto que está nessa pastinha que exemplo média cpp que é essa pastinha que está no meu sistema percebi que o meu projeto ele tem um arquivo chamado man pontos e pp que é o código fonte este mesmo arquivo meio ponto e cbt e eu posso visualizá lo aqui na paz tinha onde está o meu projeto quando eu aperto que no botão bild am o que o código blog faz ele a sony o compilador eo gerador de código compila o projeto gera o código e aí ele roda o programa
pra mim o programa está aqui rodando olha só que legal durante esse processo de compilação em geração de código olha só o que aconteceu aqui na pasta do projeto o code blogs criou uma subpasta chamada o bj se eu entrar aqui dentro dessa pasta olha só vai ter uma subpasta e dentro dela o arquivo nem um ponto ó ponto ó a extensão do arquivo objeto olha só do código objeto além disso o code blocks criou uma outra subpasta chamada bin quando eu entro aqui dentro ele criou um arquivo com a extensão ponto é x é
esse aqui é um arquivo executável que eu consigo executá lo simplesmente dando um duplo clique aqui então com essas ferramentas o code blocks o compilador e o gerador de código associado a ele eu consegui efetuar esse processo que está ilustrado aqui entretanto nem toda linguagem utiliza esse processo existe também um processo chamado interpretação que é quando eu tenho um software chamado interpretador que ele vai ler o código fonte e vai realizar a análise léxicas sintática a geração de código sob demanda ou seja gradualmente o interpretador vai lendo o código-fonte traduzindo ele para o código executável
e executando esse modelo de interpretação execução é usado por várias linguagens tais como php java script python ambição as linguagens interpretadas e nós temos ainda uma terceira abordagem que a abordagem híbrida é quando eu tenho o código-fonte esse código fonte passa por uma pré compilação que faz análise lex que sintática bem gerando um código objeto que recebe o nome de byte code o bate code é um código já pré compilado porém ao invés de passar por um gerador de código e será gerado um código executável exe bytecode vai ser executado por uma máquina virtual que
faz a interpretação desse bytecode e aí sim a geração de código sob demanda e à execução do programa essa abordagem híbrida de compilação interpretação e execução é adotada por algumas linguagens tais como java e os e sharp a máquina virtual que executo bytecode java é chamada de jvm java virtual machine ea máquina virtual que executo bytecode sharp é chamada de microsoft.net framework só para você ter uma idéia eu vim aqui na minha ideia é eclipse onde eu tenho o código-fonte de um programa java que eu escrevi que está dentro de uma pasta chamada exemplo média
java se eu vier aqui nessa pasta eu vou encontrar aqui a pastinha src que a mediação de cerci ou seja fonte de dentro dela vai estar o meu código fonte que é um meio ponto java que é o arquivo está aberta aqui no eclipse porém o eclipse também criou uma subpasta chamada bem onde ele gravou um arquivo nem ponto clash que é o bate code ou seja o código pré compilado a partir do meu código ponto java este arquivo com a extensão ponto clés para ele ser executado eu tenho que executar a partir da máquina
virtual java dessa forma quando o desenvolvedor foi entregar um produto desenvolvido em java ele tem que entregar não só os arquivos pré compilados como também a máquina virtual java para que o programa possa ser executado a linguagem c chefe da mesma forma você escreve o código-fonte do seu programa que no visual studio que aqui no meu caso está na pasta exemplo traço média atrás e sharp e o arquivo chama programa pontos e s se você olhar que na pasta normal aqui está aqui o código fonte porém quando você manda compilar o projeto aqui ó recompilar
o projeto o compilador do chape grava o bate code compilado na pastinha bean na forma de um arquivo ponto x e z porém este não é um arquivo ponto x é comum quando executado este arquivo vai funcionar a máquina virtual microsoft.net framework e aí sim executado em cima da máquina virtual muito bem pessoal existem vantagens e desvantagens da compilação e na interpretação uma vantagem da compilação é a velocidade do programa como todo o processo de compilação em geração de código é feito previamente é natural que o programa vai ficar mais rápido além disso quando você
está mexendo com uma linguagem compilada você tem um maior auxílio do compilador antes da execução porque o compilador ele faz análise leques que sim tática e não deixa você nem executar se tiver algum erro léxico ou sintático no seu programa a interpretação por outro lado tem algumas vantagens uma delas é a flexibilidade de manutenção do aplicativo em produção se você tem um aplicativo que já está rodando lá na empresa que contratou e você precisa alterar alguma coisa nesse aplicativo basta você trocar um ou mais dos arquivos fontes que o programa continua executando normalmente você não
precisa recompilar todo o aplicativo para que ele volte a funcionar outra vantagem da interpretação é que você tem linguagens mais expressivas para entender o que é uma linguagem expressiva exige um pouco de conhecimento mas só para você ter uma idéia é quando você consegue escrever uma solução elegante e complexa em poucas linhas outra grande vantagem da interpretação é que você não precisa recompilar o código fonte para rodá lo em plataformas diferentes se você quer que seu programa rode em windows linux ou mac você não tem que mudar nada no seu código-fonte bastando ter um interpretador
para cada uma das plataformas já abordagem híbrida do java e dos e sharp ela pega algumas vantagens dos dois mundos eu marquei com uma seta grossa aquelas vantagens que são muito bem aproveitadas na abordagem híbrida e eu marquei com certas mais finas as vantagens que são parcialmente aproveitadas pela abordagem híbrida para você visualizar como cada uma das três abordagens funciona eu fiz um desenho esquemático no caso das linguagens compilados você escreve o seu código-fonte compila esse código fonte para código objeto e finalmente você gera o código executável exe código executável ele vai ser específico para
cada sistema operacional e vai rodar logo em cima do sistema operacional que está rodando em cima do hardware as linguagens interpretadas já funciona um pouco diferente você escreve o seu código fonte e é esse código fonte vai ser interpretado por um interpretador específico para o sistema operacional que você estiver usando perceber que quando você tem uma linguagem compilada se você quiser rodar o seu mesmo programa em outro sistema operacional você vai ter que recompor lar e gerar outro executável específico para aquele sistema operacional enquanto que na linguagem interpretada basta você tocar o interpretador que o
mesmo código fonte vai funcionar em outro sistema operacional as linguagens híbridas como java e sharp funciona da seguinte forma você escreve seu código-fonte esse código fonte é pré compilado para o bate coaching e finalmente esse bytecode vai ser executado por uma máquina virtual específica do sistema operacional que você estiver usando se você quiser que o seu bytecode rode em outro sistema operacional basta você trocar a máquina virtual muito bem pessoal neste vídeo nós aprendemos várias coisas a primeira coisa foi os tipos de código que é o código fonte e código objeto código-fonte aquele que o
programador escreve o código objeto é aquele código que já é compilado é feita análise eléctrica e sintática e gerar o código o objeto no caso das abordagens exibidas com uma linguagem java e sharp esse código objeto recebe o nome de byte code nós também discutimos os modelos de execução que é a compilação interpretação e uma abordagem vida cada um desses modelos têm vantagens e desvantagens abordagem híbrida pega um pouco das vantagens de cada um no caso da abordagem híbrida o programa ele executa com uma máquina virtual o caso da compilação eu preciso de um gerador
de código para gerar um arquivo executável com essa aula nós encerramos a explicação das quatro coisas necessárias para se criar um programa que escolheu uma linguagem de programação uma idéia o compilador e um gerador de código ou máquina virtual no caso do java vai ser uma máquina virtual então é isso pessoal um grande abraço bons estudos e até a próxima