SmallForth

  • Introdução
    • Microsistemas
    • Forth novamente
    • Forth implementado em Smalltalk
    • Interpretador
    • Stack
    • dup
    • emit
    • swap
    • Compilação
    • Dicionário
    • Primitivas
    • Obtendo o topo da pilha
    • Divisão
    • Sinônimos
    • Revisão de emit e retorno de eval:
    • Revisão de dot(.)
    • Mostrando toda a pilha
    • Simplificando evalWords:
    • Desenvolvimento guiado por testes
    • SmallForth no GitHub
  • Parte 2
    • Mostrando strings no Transcript
    • Mais modificações envolvendo eval:
    • Corrigindo bug devido ao uso de ZnMultiValueDictionary
  • Parte 3
    • Transformando .” (dotQuote) em primitiva
    • Transformando : (colon) em primitiva
  • Parte 4
    • forget
  • Parte 5
    • marker
    • Usando um “truque”
    • O novo dicionário
    • Outras modificações associadas
    • Múltiplos markers
  • Parte 6
    • Comentários
    • char
    • Upper case
  • Parte 7
    • Inteiros negativos
    • Booleans
    • Decisões
    • Operadores relacionais
    • Operadores booleanos
    • ?dup
    • Atualizando primitiveWords e synonyms
    • abort e abort”
    • dotQuote (.”) e comentários nos ifs
    • dotQuote (.”) e comentários nos if else then
    • SmallForth no GitHub
    • Publicando SmallForth no GitHub
  • Parte 8
    • Primeiro commit usando o Iceberg
    • ifs aninhados
    • Mais testes para if aninhados
    • Testes para if else then aninhados
    • Remoção do método #stream e testIfWithoutThen passa
    • Verificando o pareamento dos ifs e thens
    • Cloning small-forth with Iceberg
    • Controlando os elses
    • Commit sem testar tudo
  • Parte 9
    • Operadores rápidos
    • Refatoração de forthPerform
    • Miscelânia de operadores
    • A pilha de retorno
    • Multiplique, então divida
  • Parte 10
    • Loop definido
      • DO … LOOP
      • Loop com contador
      • Calculando juros compostos
      • Loop com IF
      • Loops aninhados
      • +LOOP
      • Corrigindo +LOOP com incremento negativo
    • Como limpar a pilha
    • Loops indefinidos
      • BEGIN … UNTIL
      • Aninhando BEGIN UNTIL’s
      • Loops infinitos BEGIN … AGAIN
      • Limitando as iterações do loop DO … LOOP
      • Limitando as iterações do loop DO … +LOOP
      • Loops BEGIN … WHILE … REPEAT
    • Implementando variáveis
      • VARIABLE
      • !
      • @
    • Revisitando o Loop BEGIN … WHILE … REPEAT
      • Loops BEGIN … WHILE … REPEAT aninhados
      • Limitando as iterações do loop BEGIN … WHILE … REPEAT
    • Revendo as palavras J e criando a palavra I’
      • Implementando I, J e I’ nos outros loops que não DO LOOP e DO +LOOP
    • Aninhando loops diferentes
      • BEGIN (BEGIN AGAIN) UNTIL
      • BEGIN WHILE (BEGIN AGAIN) REPEAT
      • BEGIN WHILE (BEGIN UNTIL) REPEAT
      • BEGIN (BEGIN WHILE REPEAT) AGAIN
      • BEGIN (BEGIN WHILE REPEAT) UNTIL
      • BEGIN (DO LOOP) AGAIN
      • BEGIN (DO LOOP) UNTIL
      • BEGIN (BEGIN UNTIL) AGAIN
      • BEGIN WHILE (DO LOOP) REPEAT
      • DO (BEGIN AGAIN) LOOP
      • DO (BEGIN UNTIL) LOOP
      • DO (BEGIN WHILE REPEAT) LOOP
      • Palavras envolvidas na lógica do aninhamento
    • PAGE e QUIT