Você já viu pequeno código javascript trosos Nesta seção, eu falo sobre o que conecta o mundo com o código de máquina na CPU Portanto, este será geralmente sobre o tema das linguagens de computador. Portanto, um programador trabalhando em algumas linguagens de programação. Diz-se que as linguagens de programação são funções de alto nível. E isso significa coisas como loops (ciclos), e se o "se" declarações e strings (cordas) e as instalações que são mais complicados e estão em um código de máquina única na CPU. Assim que o desenvolvedor escreve o que é chamado de código fonte em qualquer linguagem de programação que você está escrevendo Aqui é um exemplo de um código-fonte C + +. Isso aloca uma string (string), uma variável e, em seguida, coloca uma ponto de exclamação (!) no final da cadeia. Isto é algo semelhante ao código javascript que temos visto. Todas essas línguas ao nível da sintaxe são um tanto semelhante. Então, hum, como você obter o código fonte para C + +, por exemplo, em execução no CPU? estratégia usa o que é chamado de compilador. o compilador é um programa separado e que a compilador é olhar para todo o código fonte e faz com que uma tradução grande para criar uma grande corpo de código de máquina. Por exemplo, pode haver uma parte da fonte, onde há um "if" e não instruções específicas para uma instrução de código de máquina "se" mas pode haver uma sequência de instruções máquina 5 que é na verdade um "se" Assim, o compilador faz esse tipo de expansão. Assim, apenas como exemplo, o Firefox é escrito em C + +. Portanto, para fazer uma nova versão do Firefox, alguém está o C + + e ele lê em diversos arquivos de fontes, o "corpo grande" do código-fonte que está em conformidade com o Firefox, e produz basicamente firefox.exe Firefox.exe é a saída do compilador para traduzir todo o código fonte. Algumas coisas a se notar é que, compilar basta passar uma vez. Assim, um corpo de código-fonte, alguém faz firefox.exe e, em seguida, ser enviado firefox.exe Os usuários finais não precisa do código-fonte e não exigir que o compilador. Ele realmente faz a compilação fábrica, na verdade. Outra característica é não funciona em sentido inverso. Para que eu possa distribuir firefox.exe Todo o código desta máquina, mas não algo que pode ler e voltar a dar-me um grande corpo de código-fonte. Pelo menos não perfeitamente, você pode fazê-lo de modo imperfeito. Idealmente, para produzir um investimento realmente quer o código-fonte. Então vamos falar sobre o código fonte. Portanto, se você deseja adicionar funcionalidade ou corrigir um bug no firefox, realmente o caminho é de volta para o código-fonte, e revê-lo, só que eu fiz em java script. Então adicione uma linha ou um comando if para alterar algumas comportamento de alguma forma, no código fonte e depois executar o compilador mais uma vez, na verdade, para fazer uma nova versão do Firefox tem esta pequena alteração tem no código fonte. Uma vez que estamos tendo em código-fonte, Isso também dá uma boa noção de como aberto software de código significa. Um software de código aberto é um formato que distribui o programa, mas também sem acesso à fonte original, o o programa. Isso normalmente vem com uma licença, dizendo: 'Ei, aqui está o código fonte. Se você quiser fazer sua própria versão ou corrigir um erro ou qualquer outra coisa, este programa Sinta-se livre. "Isso dos 2 principais características do software de código aberto uma distribuição normal de graça, para você saber, o seu barato. Mas Outra característica é que ele vem com um tipo de liberdade. Porque se o software é de código fechado e quero uma característica diferente, houve algumas falhas necessário aplicar, você realmente depende do provedor, que tem a código fonte, bem, eles se sentem como a aplicação Será que esse recurso? Em contraste com o software de fonte aberta, é como não esposas. O código fonte está disponível, e se há algo que você realmente quer fazer, ou dizer que o fornecedor original sai do negócio, em seguida, porque você tem o código-fonte, você sabe, você pode ser pagar alguém para fazer uma mudança e produzir sua própria versão personalizada. Para o que vem com esse tipo de profundidade, uh- pode ser considerado como uma apólice de seguro. Muitas vezes, há muitos tipos diferentes de termos de licença para software de código aberto, mas mais frequentemente necessária em alguns casos, se você levar o seu código-fonte e adicionar um recurso, em seguida, ele deve oferecer essas alterações para a comunidade. Assim, no mesmo forma se beneficiaram de um outro emprego, você pode se beneficiar de seu trabalho. Os detalhes de como você pode fazer é complicado. Existem muitas formas diferentes da mesma. Eu vou falar sobre um software de código aberto pouco mais tarde, eu só mencionei isso agora, porque nos dá a idéia do que é o código fonte programa contra apenas ter o algo. exe. Até agora eu falei sobre C + +, assim é esta qualquer outra grande categoria de línguas que Eu vou chamar, ou linguagens dinâmicas, por vezes, Interpretador da linguagem. E esta é uma espécie de um grande teste estratégia e há muitas línguas diferentes, com muitas qualidades diferentes e eu estou indo só para classificar de caroço, tumor são nesta classe grande. Exemplos de linguagens dinâmicas estão atualmente Java, Java Script, e Python. Por conseguinte, vai para uma forma que estes são trabalho é para ser aplicado pelo que é chamado um intérprete. Eu acho que o compilador se você estivesse tomando antes. Um intérprete é um programa que leva o código escrito em qualquer idioma e tipo de [inaudível] é executado. O melhor exemplo é é a linguagem de computador chamado java script, na verdade, têm vindo a utilizar e navegadores web são inclui programas como uma parte deles, um java shell. E quando vem para o navegador web através de uma página com código java script pode usar o shell para executar esse código a ser fazer tudo o que vai fazer. Assim, a forma como o interpretador obras estão lidando com a agenda da linha 1 de cada vez. Então aqui está algum código java script, Se o jogador queria correr esse bem ser visto na primeira linha e para procurar que diz que linha e, em seguida, o intérprete Eu o faria. Assim, neste caso, o intérprete dizer, UH-Então eu acho que preciso de uma variável chamada A, e Eu preciso colocar um 1 na mesma. Assim, uma vez feito com que a linha em seguida, indo para a frente, e assim que faz a linha seguinte. E assim por diante. O mesmo se aplica para o compilador do grande volume tradução de código fonte em código de máquina Mas isso realmente está executando o código, apenas a sua fazendo a tradução para executar no futuro. Por outro lado intérprete realmente viver o momento. Somente através do código linha por linha e só fazer. Então deixe-me falar um pouco sobre as diferenças entre estes dois. Devo dizer que como um aviso legal, Existem muitas linguagens de programação, não há melhor a velha piada sobre a linguagem é que realmente sabe, quando você está no seminário e quando você discutindo sobre os prós e contras de algo, finalmente, a resposta é simples, depende. Como não há melhor linguagem, mas sim o que é Melhores idiomas esta situação, todos os características. Então, em termos gerais, apenas o código compilador tende a correr mais rápido. Quando você compilar um código C + + e produzir isso. exe é um tipo de carne magra em uma direção, muitos detalhes e decisões tem sido despojado , tanto quanto possível. Além disso dinâmico ou intérprete de linguagem, tendem a ter mais recursos. Mais recursos do que faz o trabalho de um programador pouco mais fácil. Ou dito de outra forma, amplamente falando, o programador pode tendem a fazer mais trabalho por hora, linguagens dinâmicas, que fazem na compilação Idiomas. Entretanto, não há almoço grátis, é também o caso que o código de linguagem dinâmica tende a ficar mais lento do que o CPU em termos de apenas ficando apenas o trabalho realizado, em comparação com as línguas do compilador. Código-fonte do compilador vai fazer o mesmo. Então, um exemplo disso é um grande exemplo disso, Gerenciamento de memória. Por meio do qual a gestão de memória refere-se à problema no código de quantos bytes são ¿Necessário para armazenar algo em particular e por quanto tempo? Bem, eu preciso desses bytes para a linha 6, você sabe, mas talvez na linha 20, e não precisa mais e realmente eu possa reutilizar por outra coisa. E na verdade é um tipo de problema complicted. Em C e C + +, gerenciamento de memória é um grau Handbook. e isso apenas significa que o programador estão ocorrendo todas estas linhas de código para as coisas e será, por vezes, quando você pode ter um adicionar algumas linhas para fazer algum pensamento, para ajudar a orientar o gerenciamento de memória. Portanto, há alguns esforço programador necessário. Em contraste, a maioria Linguagens dinâmicas têm o que é chamado automático Gerenciamento de memória. E isto significa que, Entrada programador é necessário. A linguagem vai automaticamente notar quando a memória é necessária, Quando a memória não é necessário porque, podem ser reciclados e tomar a este conjunto problema. Portanto, se encaixa no interior da tendência dos linguagens dinâmicas foi mencionando anteriormente, Portanto, este é um exemplo de como, bem, você sabe, porque o programador tem menos a ver, eles podem apenas fazer as coisas um pouco mais rápido. Como o gerenciamento de memória é um grande exemplo. No entanto também pode imaginar Esta é uma das coisas que torna dinâmica código de idioma correr um pouco mais lento. Porque, o CPU agora tem livro suggestional mantendo problema olhando para onde a sua memória e tentar descobrir quando ele pode ser reutilizado. Por conseguinte, muito amplo falando, a tendência para a equipe de programação de hoje é para linguagens dinâmicas. A característica de que o programador conseguir algumas coisas Liitle rápidas à custa da utilização de uma CPU ou mais bits memória é um equilíbrio muito atraente muitos dos problemas. Este pode ser um pouco intuitivo, mas você pode pensar que a má qualidade para um programa de computador e é muitas vezes o programador, que tem programador experiente trabalhando que, você sabe, a trabalhar neste campo, muito das vezes são difíceis de encontrar. E assim suas horas, ou seja, usando algumas de suas horas, tem uma aparência atraente, em contraste, a CPU sempre Eu quero trabalhar o mais rapidamente possível, mas CPUs são muito barato e bastante eficaz e este efeito é ainda curioso onde este Moore Lei, é cada vez mais certo, onde a CPU fica mais barato a cada ano e se pensarmos o equilíbrio entre o programador custo e CPU custo de obter algo, Isto significa em termos de fatia do bolo, o programador se tornar cada vez mais caro cada ano um pouco mais escassos. Então, esses ajustes no padrão. Em todas as linguagens dinâmicas estão se tornando populares. A última coisa que será mencionar é que existe algo chamado "JIT" Just In compilador Time. E este tipo de o compilador síntese natural e intérprete estratégias, tentando obter o melhor dos dois mundos. Assim, seu gosto, bem, nós gostaríamos de uma linguagem dinâmica com todas estas características, todos estes programador favorável características, mas queremos correr rápido. E assim Este JIT assumir o código e teste e compilar na mosca. Por isso, é uma espécie de se casar com duas delas. Ele funciona bastante bem. Assim, todos os navegadores têm agora EIC para código Java script. Então, realmente quando você O código JavaScript executado nesta classe, dentro do navegador era um JIT que estava no voar, tendo aqueles pedaços de código e Java Script compilar em tempo real, em código de máquina. De qualquer forma, não será exatamente formatos compilador código, mas você chegar muito perto. OS. Isto é realmente Como as linguagens mais dinâmicas. Ele é um ativo área de pesquisa. Mas parece funcionar muito bem.