Forth

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Question book.svg
Esta página ou secção não cita nenhuma fonte ou referência, o que compromete sua credibilidade (desde maio de 2011).
Por favor, melhore este artigo providenciando fontes fiáveis e independentes, inserindo-as no corpo do texto por meio de notas de rodapé. Encontre fontes: Googlenotícias, livros, acadêmicoScirusBing. Veja como referenciar e citar as fontes.


Forth
Paradigma Orientado a Pilha
Surgido em Anos 70
Criado por Charles H. Moore
Estilo de tipagem: sem tipos
Compiladores GNU Forth, bigforth
Dialetos: ANS Forth, Colorforth
Influenciou Factor, Postscript

Forth é uma linguagem de programação procedural baseada em pilhas de dados, com sintaxe em Notação polonesa inversa (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 H. Moore ("Chuck" Moore) no final dos anos 1960, e serviu de inspiração para linguagens como Transcript, Postscript, Open Firmware, a linguagem de inicialização de placas PCI em sistema Macintosh, e Factor, desenvolvida recentemente por Slava Pestov. 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.

Exemplo de programa[editar | editar código-fonte]

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 topo 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 dez vezes a frase "Hello, world":

: 10hellos 10 0 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 palavra "cr" emitirá um "retorno de carro e nova linha" ao dispositivo de saída.

O seguinte programa redefine a palavra '+':

: mais + ;

Links relacionados[editar | editar código-fonte]

Ícone de esboço Este artigo sobre Informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.