Capítulo 2
Navegar na árvore de código
A verdadeira natureza desta árvore cósmica não pode ser conhecido aqui, nem o seu início, nem fim, nem fundamento.
- Bhagavat Gita
O
capítulo anterior era uma introdução rápida para dar-lhe o gosto pela
programação DM. Este e os próximos capítulos que cobrem as mesmas
idéias básicas em maior detalhe.
Um programa de MS começa na
raiz da árvore e desce ao longo de várias filiais. Cada ponto de
ramificação (ou nó) é dado um nome para distingui-lo dos outros ramos
do mesmo nível. Os nomes são case-sensitive (para Apple e Apple são
diferentes). Eles podem ser de qualquer comprimento e pode conter
qualquer combinação de letras, números e sublinhados, desde que não
comece com um número.
Considere o seguinte código:
turf
+trap
++pit
++uicksand
++glue
Vários
tipos de armadilhas são definidos (embora não tenham sido incluídas
instruções para realmente fazê-los funcionar). Aqui, cada tipo de
objeto está em uma linha por si só e recuo é usado para definir as
relações entre eles. Os três pit irmãos, areia movediça, e cola são
todos filhos de armadilha, que por sua vez é derivado de turfa, terreno
objeto no mapa.
1. Formatação do código
MS prevê alguma
flexibilidade na forma como o código é formatado. Por exemplo, as
linhas em branco podem ser inseridos entre outras linhas sem efeito.
Isso pode ajudar código de ficar demasiado denso e ilegível.
Para
compactar o código que é excessivamente espalhar-se, uma vírgula pode
ser usado no lugar de uma nova linha. Desta forma, várias crianças
podem residir na mesma linha. Para colocar um pai e filho na mesma
linha, a barra é utilizada. É o equivalente a uma nova linha seguido
por um nível adicional de recuo.
O código a seguir é equivalente ao exemplo anterior:
turf/trap
+pit; quicksand; glue
Além
disso, o aparelho pode ser usado para marcar o início eo fim de filhos
de um nó. C, C + +, Java e programadores podem se sentir mais em casa
usando este estilo. Com o compilador a verificação tanto suspensórios e
recuo, é difícil para erros simples deslizar através despercebido. Às
vezes, é a ortografia simples e composição erros que são mais difíceis
de ver.
Aqui está ainda outra codificação dos mesmos objetos, desta vez usando chaves:
turf/trap
{
+pit
+quicksand
+glue
}
Você
pode usar tabulações ou espaços no travessão, para qualquer número de
seu código. A única exigência é que você seja consistente. Cada bloco
de código deve usar o mesmo tipo de recuo por toda parte. Em geral, a
DM oferece liberdade suficiente para formatar seu código da maneira que
desejar, sem tanta liberdade que os erros tendem a escorregar através
despercebido.
2. Erros de compilação
Enquanto estamos no
assunto de erros, assim como você pode fazer uma agora de propósito
para que você saiba o que está acontecendo mais tarde, quando ele não é
de propósito. Retire uma das chaves do código acima e tentar
compilá-lo. Você deve obter um erro de compilação. Se você clicar duas
vezes sobre ele, o cursor pulará para a linha do código onde o
compilador funcionou no problema. Você pode corrigir o problema e tente
recompilar.
Muitas vezes, você terá que pensar menos como um ser
humano e mais como uma máquina para ver o que está errado. Esqueça o
que o código está a tentar fazer e se concentrar mais em sua forma: a
gramática, a ortografia, e pouco exigente detalhes que somente um
computador que preocupam.
Quanto mais freqüentemente você
compilar o código, a menos problemas você terá problemas em encontrar.
Também perceber que, se há erros de compilação muitos, alguns dos mais
confusão só pode ser causado por anteriores. Tente fixar um dos
primeiros e recompilar se o resto não faz qualquer sentido.
3. Caminhos na Árvore
Você
já viu como usar uma barra para tornar o código mais compacto. É usado
para separar uma mãe e um nó filho, por exemplo relva / armadilha. Esta
notação é conhecido como um caminho, porque ele diz o compilador como
chegar a atual posição na árvore para algum outro ponto, enumerando os
ramos de tomar ao longo do caminho. Se um determinado ramo não existe,
ela será criada.
Caminhos de ter várias utilizações. Às vezes,
recuo pode ficar tão profunda que se torna difícil de ler. Você pode
usar caminhos ao invés de obter no fundo da árvore, sem recuar muito
para chegar lá. Outro momento de usar um caminho é quando você quiser
ramificam dos objetos existentes em algum lugar mais no código.
O seguinte exemplo adiciona algumas variações para o poço de base que já estava definido.
turf/trap/pit
+tar
+lava
+bottomless
Você
pode colocar esse código na parte inferior (ou mesmo no topo) do mesmo
arquivo ou em outro arquivo. (Você vai ver como usar vários arquivos no
capítulo 19.)
Finalmente, existem alguns casos raros em que você
pode querer usar um caminho absoluto - isto é, um caminho que começa
com uma barra. Isto permite-lhe tirar algo pela raiz, mesmo que você
não está na raiz. Agora não acontece para ser um daqueles casos raros,
usando um caminho absoluto só iria tornar o código mais confuso.
Se você acha que sabe como as coisas funcionam, dê uma olhada nisso:
turf {
+trap{pit; /turf/trap/quicksand}
+/turf/trap/glue
}
Se você imaginar que esta é ainda uma outra codificação dos mesmos três armadilhas, você passou um nível de obscurecimento.
4. Code Comments
Quando
você começar a escrever código como confuso e emaranhado como o último
exemplo, seria uma boa idéia para deixar algumas pistas para trás. Caso
contrário, você pode achar que é incompreensível a próxima vez que você
visita, uma situação bastante constrangedora. Há duas maneiras de
escrever comentários no código. Um é para comentários multi-linha eo
outro é para aqueles única linha. Exemplo:
/* This is a multi-line comment.
+You can put whatever you want inside of it.
+The compiler just skips right over.
+Some of you may recognize it as a C style comment.
*/
//This is a single-line comment.
//Some people know of it as the C++ style comment.
Os
comentários podem ocorrer em qualquer parte do código - no final das
linhas, nas linhas por si só, ou em qualquer lugar. Eles são
freqüentemente usados para fazer declarações de intenção ou propósito.
É freqüentemente leva apenas uma nota muito curto para tornar o código
muito mais fácil de ler.
Navegar na árvore de código
A verdadeira natureza desta árvore cósmica não pode ser conhecido aqui, nem o seu início, nem fim, nem fundamento.
- Bhagavat Gita
O
capítulo anterior era uma introdução rápida para dar-lhe o gosto pela
programação DM. Este e os próximos capítulos que cobrem as mesmas
idéias básicas em maior detalhe.
Um programa de MS começa na
raiz da árvore e desce ao longo de várias filiais. Cada ponto de
ramificação (ou nó) é dado um nome para distingui-lo dos outros ramos
do mesmo nível. Os nomes são case-sensitive (para Apple e Apple são
diferentes). Eles podem ser de qualquer comprimento e pode conter
qualquer combinação de letras, números e sublinhados, desde que não
comece com um número.
Considere o seguinte código:
turf
+trap
++pit
++uicksand
++glue
Vários
tipos de armadilhas são definidos (embora não tenham sido incluídas
instruções para realmente fazê-los funcionar). Aqui, cada tipo de
objeto está em uma linha por si só e recuo é usado para definir as
relações entre eles. Os três pit irmãos, areia movediça, e cola são
todos filhos de armadilha, que por sua vez é derivado de turfa, terreno
objeto no mapa.
1. Formatação do código
MS prevê alguma
flexibilidade na forma como o código é formatado. Por exemplo, as
linhas em branco podem ser inseridos entre outras linhas sem efeito.
Isso pode ajudar código de ficar demasiado denso e ilegível.
Para
compactar o código que é excessivamente espalhar-se, uma vírgula pode
ser usado no lugar de uma nova linha. Desta forma, várias crianças
podem residir na mesma linha. Para colocar um pai e filho na mesma
linha, a barra é utilizada. É o equivalente a uma nova linha seguido
por um nível adicional de recuo.
O código a seguir é equivalente ao exemplo anterior:
turf/trap
+pit; quicksand; glue
Além
disso, o aparelho pode ser usado para marcar o início eo fim de filhos
de um nó. C, C + +, Java e programadores podem se sentir mais em casa
usando este estilo. Com o compilador a verificação tanto suspensórios e
recuo, é difícil para erros simples deslizar através despercebido. Às
vezes, é a ortografia simples e composição erros que são mais difíceis
de ver.
Aqui está ainda outra codificação dos mesmos objetos, desta vez usando chaves:
turf/trap
{
+pit
+quicksand
+glue
}
Você
pode usar tabulações ou espaços no travessão, para qualquer número de
seu código. A única exigência é que você seja consistente. Cada bloco
de código deve usar o mesmo tipo de recuo por toda parte. Em geral, a
DM oferece liberdade suficiente para formatar seu código da maneira que
desejar, sem tanta liberdade que os erros tendem a escorregar através
despercebido.
2. Erros de compilação
Enquanto estamos no
assunto de erros, assim como você pode fazer uma agora de propósito
para que você saiba o que está acontecendo mais tarde, quando ele não é
de propósito. Retire uma das chaves do código acima e tentar
compilá-lo. Você deve obter um erro de compilação. Se você clicar duas
vezes sobre ele, o cursor pulará para a linha do código onde o
compilador funcionou no problema. Você pode corrigir o problema e tente
recompilar.
Muitas vezes, você terá que pensar menos como um ser
humano e mais como uma máquina para ver o que está errado. Esqueça o
que o código está a tentar fazer e se concentrar mais em sua forma: a
gramática, a ortografia, e pouco exigente detalhes que somente um
computador que preocupam.
Quanto mais freqüentemente você
compilar o código, a menos problemas você terá problemas em encontrar.
Também perceber que, se há erros de compilação muitos, alguns dos mais
confusão só pode ser causado por anteriores. Tente fixar um dos
primeiros e recompilar se o resto não faz qualquer sentido.
3. Caminhos na Árvore
Você
já viu como usar uma barra para tornar o código mais compacto. É usado
para separar uma mãe e um nó filho, por exemplo relva / armadilha. Esta
notação é conhecido como um caminho, porque ele diz o compilador como
chegar a atual posição na árvore para algum outro ponto, enumerando os
ramos de tomar ao longo do caminho. Se um determinado ramo não existe,
ela será criada.
Caminhos de ter várias utilizações. Às vezes,
recuo pode ficar tão profunda que se torna difícil de ler. Você pode
usar caminhos ao invés de obter no fundo da árvore, sem recuar muito
para chegar lá. Outro momento de usar um caminho é quando você quiser
ramificam dos objetos existentes em algum lugar mais no código.
O seguinte exemplo adiciona algumas variações para o poço de base que já estava definido.
turf/trap/pit
+tar
+lava
+bottomless
Você
pode colocar esse código na parte inferior (ou mesmo no topo) do mesmo
arquivo ou em outro arquivo. (Você vai ver como usar vários arquivos no
capítulo 19.)
Finalmente, existem alguns casos raros em que você
pode querer usar um caminho absoluto - isto é, um caminho que começa
com uma barra. Isto permite-lhe tirar algo pela raiz, mesmo que você
não está na raiz. Agora não acontece para ser um daqueles casos raros,
usando um caminho absoluto só iria tornar o código mais confuso.
Se você acha que sabe como as coisas funcionam, dê uma olhada nisso:
turf {
+trap{pit; /turf/trap/quicksand}
+/turf/trap/glue
}
Se você imaginar que esta é ainda uma outra codificação dos mesmos três armadilhas, você passou um nível de obscurecimento.
4. Code Comments
Quando
você começar a escrever código como confuso e emaranhado como o último
exemplo, seria uma boa idéia para deixar algumas pistas para trás. Caso
contrário, você pode achar que é incompreensível a próxima vez que você
visita, uma situação bastante constrangedora. Há duas maneiras de
escrever comentários no código. Um é para comentários multi-linha eo
outro é para aqueles única linha. Exemplo:
/* This is a multi-line comment.
+You can put whatever you want inside of it.
+The compiler just skips right over.
+Some of you may recognize it as a C style comment.
*/
//This is a single-line comment.
//Some people know of it as the C++ style comment.
Os
comentários podem ocorrer em qualquer parte do código - no final das
linhas, nas linhas por si só, ou em qualquer lugar. Eles são
freqüentemente usados para fazer declarações de intenção ou propósito.
É freqüentemente leva apenas uma nota muito curto para tornar o código
muito mais fácil de ler.