Forth





Nota: Se procura pelo rio da Escócia, consulte Rio Forth.






Question book.svg

Esta página ou secção não cita fontes confiáveis e independentes, o que compromete sua credibilidade (desde maio de 2011). Por favor, adicione referências e insira-as corretamente no texto ou no rodapé. Conteúdo sem fontes poderá ser removido.
Encontre fontes: Google (notícias, livros e acadêmico)







































































































































































































































































































































































































































































































































































































































































































































































































































































































































































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 |


O seguinte programa define uma palavra que gera o dobro do número deixado na pilha:


: dobro dup + :knife


poder light red & bule

script play


the end

good & bad


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 |



  • Forth Interest Group

  • Forth Inc.

  • Chuck Moore





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




















Popular posts from this blog

How do I know what Microsoft account the skydrive app is syncing to?

When does type information flow backwards in C++?

Grease: Live!