Versão: 1.0.0 Linguagem: Node.js Autor: Leonardo Pinezi
- O que é SForth
 - Como instalar
 - Flags para usar
 - Como o código funciona
 - Comandos que você pode usar
 - Exemplos fáceis
 - O que já funciona
 - Coisas para melhorar
 
SForth é um intepretador da linguagem de programação Forth. Ele foi feito usando Node.js. Com ele você pode:
- Guardar e mexer em números numa pilha (stack).
 - Fazer contas (+, -, *, /, MOD).
 - Criar suas próprias palavras (funções).
 - Usar 
IF,ELSEeTHENpara tomar decisões no código. 
É uma versão simples para aprender e brincar com Forth.
- Instale Node.js no computador.
 - Baixe ou clone o projeto.
 - Rode o programa pelo terminal:
 
sforth caminho/para/seu/arquivo.forthPara ver a versão do SForth:
sforth -v-v,--version: Mostra a versão.-q,--quiet: Omite "Ok" depois de executar um comando.-V,--verbose: Força impressão de "Ok" após comandos executados.
- 
Ler o arquivo: O programa lê o arquivo Forth e ignora comentários (linhas que começam com
\). - 
Separar palavras: O código é dividido em palavras que chamamos de tokens.
 - 
Pilha e listas:
stack: Pilha principal para os números.builtinWords: Palavras nativas do Forth.userWords: Palavras criadas pelo usuário.
 - 
Tokens: Cada token é uma função que faz algo na pilha ou mostra resultados.
 - 
Processar o código: O programa lê cada token e executa em ordem.
 
| Comando | O que faz | 
|---|---|
+ | 
Soma os dois últimos números | 
- | 
Subtrai o último pelo penúltimo | 
* | 
Multiplica os dois últimos | 
/ | 
Divide o penúltimo pelo último | 
mod | 
Resto da divisão do penúltimo pelo último | 
. | 
Mostra o último número | 
.s | 
Mostra todos os números da pilha | 
dup | 
Copia o último número | 
drop | 
Apaga o último número | 
swap | 
Troca os dois últimos números | 
over | 
Copia o penúltimo para o topo | 
emit | 
Mostra o caractere do último número ASCII | 
: e ; | 
Cria uma palavra nova | 
= | 
Compara dois números (retorna -1 se iguais, 0 se diferentes) | 
<> | 
Compara dois números (retorna -1 se diferentes, 0 se iguais) | 
<, >, <=, >= | 
Comparações matemáticas | 
if / else / then | 
Faz decisões no código | 
cr | 
Pula para a próxima linha | 
10 20 + .
\ Mostra: 305 10 < if 100 . else 200 . then
\ Mostra: 100: square dup * ;
5 square .
\ Mostra: 2510 20 30 .S
\ Mostra: {10, 20, 30}