< Return to Video

Software II (11 mins)

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

Portuguese, Brazilian subtitles

Revisions