Forth
Origem: Wikipédia, a enciclopédia livre.
Forth é uma linguagem de programação procedural baseada em pilhas de dados, com sintaxe em Reverse Polish Notation (notação polonesa invertida ou RPN) e com os comandos organizados em uma lista extensível chamada de dicionário. Os comandos são chamados de "palavras". A partir do dicionário básico, são criados outros comandos.
Forth foi "descoberta" por Charles Moore no final dos anos 1960, e serviu de inspiração para linguagens como Transcript, Postscript e Open Firmware, a linguagem de inicialização de placas PCI em sistema Macintosh. Também é usada no bootloader do sistema operacional FreeBSD.
A linguagem é apropriada para sistemas embutidos, e se caracteriza por ser extremamente compacta. Pode ser considerada como linguagem interpretada e compilada ao mesmo tempo. A interpretação/compilação pode ser feita através de bytecode ou código de máquina.
Em geral, Forth pode trabalhar facilmente com qualquer base numérica entre 2 e 36. As palavras podem ser livremente redefinidas. Freqüentemente, é definida como uma mistura de linguagem de baixo nível e de alto nível, ou um assembly de alto nível. Possui as estruturas de controle comuns em linguagens procedurais, como IF-THEN, IF-ELSE-THEN, BEGIN-UNTIL, BEGIN-REPEAT, DO-LOOP, CASE-THEN.
Atualmente (como em outras linguagens daquele tempo), é considerada obsoleta. Mas ainda encontra muitas aplicações em sistemas industriais e Hardwares customizados, devido a robustez e velocidade de processamento. Um exemplo é a variante TL-1 (Toledo Language-1) e RTP, desenvolvida para uma famosa corporação européia e em uso até hoje, principalmente fora da Europa.
[editar] Exemplo de programa
O seguinte programa define uma palavra que gera o dobro do número deixado na pilha:
: dobro dup + ;
A palavra ":" pega o texto "dobro" e monta uma nova entrada no dicionário. O conteúdo dessa nova entrada é a palavra "dup", que duplicará o número do tipo da pilha, quando a palavra "dobro" for usada. A palavra "+" retirará os dois números do topo da pilha, os somará e devolverá o resultado para o topo da pilha. A palavra ";" encerra a definição da nova palavra "dobro".
Para usar este programa:
5 dobro
O resultado será o número 10 no topo da pilha.
O seguinte programa imprime o texto "Hello, world!":
: hello ." Hello, World!" ;
A palavra '."' envia ao dispositivo de saída todo o texto até o caracter '"'.
O seguinte programa imprime 10 veze a frase "Hello, world":
: 10hellos 10 do hello cr loop ;
Quando a nova palavra "10hellos" for usada, a palavra "do" pegará o número 10 no topo da pilha e definirá como a quantidade de repetições. As palavras até "loop" serão repetidas (no caso, a palavra "hello" anteriormente criada no exemplo). A palacra "cr" emitirá um "retorno de carro e nova linha" ao dispositivo de saída.
O seguinte programa redefine a palavra '+':
: mais + ;
[editar] Links relacionados