O que é real?
Porque o Real está apenas na definição de um intérprete .
O mandarim é mais ou menos real que o inglês?
- Certamente o mandarim não é particularmente útil para quem fala inglês
- Da mesma forma, o inglês é um absurdo para quem fala mandarim
- a menos que falem os dois.
Então, o Real nem é a questão. Vamos reformular:
Por que o pseudo-código é usado em vez de uma linguagem formal?
Um simples diagrama de VENN pode destacar o problema facilmente. O conjunto de todos os seres humanos que são falantes de inglês e mandarim é o subconjunto de falantes de inglês ou mandarim. Como é necessário esforço para obter proficiência em qualquer idioma, a interseção é geralmente muito menor que a união.
O livro de programação pode presumir que você entende pelo menos uma linguagem natural, a linguagem na qual o livro foi escrito. É geralmente seguro presumir isso, caso contrário, outro livro mais legível teria sido selecionado. Afinal, aprender um idioma é difícil o suficiente - dois é mais difícil.
Isso fornece o primeiro motivo para usar um pseudo-código. Maximiza o público que poderia facilmente ler o livro. Isso é feito seguindo as convenções linguísticas estabelecidas já encontradas na linguagem natural. Diga receitas de culinária, fórmulas matemáticas, etc ... Qualquer lacuna pode ser preenchida por uma rápida explicação da linguagem natural, ou na falta de um recurso final para o nosso sistema visual com fotos.
Quanto ao motivo pelo qual a linguagem comum não poderia ser a linguagem de programação. Deixo para você considerar o quanto de mandarim (ou qualquer idioma que você ainda não fala) você aprendeu lendo um livro sobre programação escrito com exemplos dados em uma linguagem de programação familiar.
O que um livro consegue
Quanto à segunda razão, considere o que um livro deve alcançar:
- explique por que eles se incomodariam em aprender uma língua estrangeira em vez de apenas usar sua linguagem natural.
- explique uma língua estrangeira ao leitor para que ele possa falar por si próprio.
Porquê Programa
A maior parte do livro precisa convencê-lo do motivo pelo qual você gostaria de aprender e usar esse idioma alienígena ou qualquer outro idioma semelhante. Isso significa discutir a essência da programação em si.
- Como você identifica um problema
- Como você divide um problema
- Como você arquiteta os dados
- Como você arquiteta os processos
- Como você gerencia as dependências
- Como você identifica falhas
- e mais
A maior parte disso não tem nada a ver com as próprias máquinas, é principalmente uma discussão sobre como os utensílios de carne devem operar para criar um programa. Isso é bastante complexo porque precisa mostrar por que vincularíamos nossos objetivos espaciais humanos, para programar problemas espaciais e nos esforçarmos para resolvê-los.
Descrevendo um programa
A segunda conquista do livro está descrevendo um idioma. Agora a maioria das linguagens de programação pode ser descrita com uma gramática e algumas regras semânticas. No lado raso, existem linguagens como JSON, que podem ser definidas completamente dentro de três páginas. Linguagens mais complexas precisam de uma especificação maior, mas na maioria das vezes não precisam de um entendimento total para serem úteis. No entanto, essas descrições são o pseudo-código. Eles especificam a linguagem formal em termos de uma linguagem natural. A diferença é que esses pseudocódigos são especificados com antecedência.
Agora, considerando que mesmo as línguas formais são elas próprias pseudo-códigos (executáveis), a questão é o que é mais importante ao descrever um algoritmo? O próximo contexto maior.
- O algoritmo tem uma meta razoável nesse contexto,
- esse contexto tem algumas restrições,
- e o algoritmo é uma descrição de como essas restrições podem ser tratadas ao atingir a meta.
Em nenhum momento a linguagem na qual o algoritmo está escrito é importante. Se alguma coisa, apenas algumas operações importantes são críticas para o sucesso dos algoritmos. Então, a pergunta se torna:
- é melhor descrever um programa de software capaz de interpretar a especificação completa de uma linguagem formal como C ++ / C # / Python / etc ... para entender o algoritmo
- ou apenas Defina as quatro primitivas necessárias para entender o algoritmo.
Dado que aprender um idioma é difícil, e o leitor deve ter aprendido / aprendido um idioma para entender o algoritmo, como redator de um livro, o que você deve perguntar ao leitor?