-
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.