b"\n_START_ARTICLE_\nForth\n_START_SECTION_\nHist\xc3\xb3ria\n_START_PARAGRAPH_\nForth evoluiu do sistema de programa\xc3\xa7\xc3\xa3o pessoal de Charles H. Moore's, que estava em constante desenvolvimento desde 1968. Forth foi exposto pela primeira vez a outros programadores no in\xc3\xadcio dos anos 70, come\xc3\xa7ando com Elizabeth Rather no US National Radio Astronomy Observatory. Depois do trabalho no NRAO, Charles Moore e Elizabeth Rather formaram a FORTH, Inc. em 1973, refinando e portando sistemas Forth para dezenas de outras plataformas na pr\xc3\xb3xima d\xc3\xa9cada._NEWLINE_Forth foi assim nomeado porque em 1968 \xe2\x80\x9cum arquivo contendo o interpretador foi nomeado FOURTH, de 4\xc2\xaa (pr\xc3\xb3xima) gera\xc3\xa7\xc3\xa3o de software \xe2\x80\x93 mas o sistema operacional do IBM 1130 restringiu os nomes de arquivos a 5 caracteres. Moore viu Forth como o sucessor do compile - link - go de linguagens de programa\xc3\xa7\xc3\xa3o de terceira gera\xc3\xa7\xc3\xa3o, ou software para a \xe2\x80\x9cquarta gera\xc3\xa7\xc3\xa3o\xe2\x80\x9d de hardware, n\xc3\xa3o uma linguagem de programa\xc3\xa7\xc3\xa3o de quarta gera\xc3\xa7\xc3\xa3o como o termo veio a ser usado._NEWLINE_Como Charles Moore frequentemente passava de emprego a emprego ao longo de sua carreira, uma press\xc3\xa3o inicial na linguagem em desenvolvimento foi a facilidade de portabilidade para diferentes arquiteturas de computadores. O sistema Forth tem sido frequentemente usado para levantar novo hardware. Por exemplo, Forth foi o primeiro monitor residente no novo Intel 8086 chip em 1978 e MacFORTH o primeiro residente\xc2\xa0 para o primeiro Apple Macintosh em 1984._NEWLINE_FORTH, Inc\xe2\x80\x99s microFORTH foi desenvolvido para os microprocessadores Intel 8080, Motorola 6800 e Zilog em 1976. MicroFORTH foi usado mais tarde por hobbyists para gerar sistemas Forth para outras arquiteturas, como o 6502 em 1978. Larga dissemina\xc3\xa7\xc3\xa3o finalmente conduziu a padroniza\xc3\xa7\xc3\xa3o da linguagem. A pr\xc3\xa1tica comum foi codificada de fato nos padr\xc3\xb5es FORTH-79 e FORTH-83 nos anos 1979 e 1983, respectivamente. Esses padr\xc3\xb5es foram unificados pela ANSI em 1994, comumente referido como ANS Forth._NEWLINE_Forth se tornou popular na d\xc3\xa9cada de 1980, porque era bem adequado para os microcomputadores da \xc3\xa9poca, sendo compacto e port\xc3\xa1til. Pelo menos um computador dom\xc3\xa9stico, o brit\xc3\xa2nico Jupiter ACE, tinha o Forth em seu sistema operacional residente em ROM. O Canon Cat tamb\xc3\xa9m usou Forth para sua programa\xc3\xa7\xc3\xa3o de sistemas, e Rockwell produziu microcomputadores de chip \xc3\xbanico com Kernels residentes de Forth, o R65F11 E R65F12. Uma \xc3\xa1rvore geneal\xc3\xb3gica completa est\xc3\xa1 em TU-Wien. O Insoft GraFORTH era uma vers\xc3\xa3o do Forth com extens\xc3\xb5es gr\xc3\xa1ficas para o Apple II. ASYST foi um expans\xc3\xa3o do Forth para medir e controlar computadores pessoais. _NEWLINE_A partir de 2018, a fonte da vers\xc3\xa3o original do FORTH 1130 foi recuperada, e agora est\xc3\xa1 sendo atualizado para rodar em um sistema 1130 restaurado ou emulado.\n_START_SECTION_\nEstrutura da linguagem\n_START_PARAGRAPH_\nA estrutura b\xc3\xa1sica de dados de Forth \xc3\xa9 um \xe2\x80\x9cdicion\xc3\xa1rio\xe2\x80\x9d que mapeia \xe2\x80\x9cpalavras\xe2\x80\x9d para c\xc3\xb3digo execut\xc3\xa1vel ou estrutura de dados nomeadas. O dicion\xc3\xa1rio \xc3\xa9 apresentado na mem\xc3\xb3ria como uma \xc3\xa1rvore de listas ligadas com as liga\xc3\xa7\xc3\xb5es que v\xc3\xa3o da \xc3\xbaltima (mais recente) palavra definida para a palavra mais antiga, at\xc3\xa9 um valor de sentinela, normalmente um ponteiro para NULL, seja encontrado. A troca de contexto faz com que uma pesquisa de lista se inicie em uma folha diferente. Uma pesquisa na lista ligada continua enquanto a ramifica\xc3\xa7\xc3\xa3o mescla no tronco principal, levando eventualmente de volta \xc3\xa0 sentinela, a raiz. Pode haver diversos dicion\xc3\xa1rios. Em casos raros, como a meta-compila\xc3\xa7\xc3\xa3o, um dicion\xc3\xa1rio pode ser isolado e aut\xc3\xb4nomo. O efeito se assemelha ao de espa\xc3\xa7os de nomes de aninhamento e pode sobrecarregar palavras-chave dependendo do contexto._NEWLINE_Uma palavra definida geralmente consiste de cabe\xc3\xa7alho e corpo, com o cabe\xc3\xa7alho consistindo no campo de nome (NF) e o campo de liga\xc3\xa7\xc3\xa3o (LF) e o corpo consistindo no campo do c\xc3\xb3digo (CF) e no campo de par\xc3\xa2metro (PF)._NEWLINE_Cabe\xc3\xa7alho e corpo de uma entrada de dicion\xc3\xa1rio s\xc3\xa3o tratados separadamente porque podem n\xc3\xa3o ser cont\xc3\xadnuos. Por exemplo, quando um programa Forth \xc3\xa9 recompilado para uma nova plataforma, o cabe\xc3\xa7alho pode permanecer no computador de compila\xc3\xa7\xc3\xa3o, enquanto o corpo vai para a nova plataforma. Em alguns ambientes (como sistemas embarcados) os cabe\xc3\xa7alhos ocupam mem\xc3\xb3ria desnecessariamente. No entanto, alguns cross-compiladores podem colocar cabe\xc3\xa7alhos no alvo se o alvo em si \xc3\xa9 esperado para suportar um Forth interativo.\n_START_SECTION_\nProgramando\n_START_PARAGRAPH_\nPalavras escritas em Forth s\xc3\xa3o compiladas em formato execut\xc3\xa1vel. Alguns sistemas possuem compiladores otimizados. De modo geral, um programa Forth \xc3\xa9 salvo como a imagem de mem\xc3\xb3ria do programa compilado com um \xc3\xbanico comando (ex., RUN) que \xc3\xa9 executado quando a vers\xc3\xa3o compilada \xc3\xa9 carregada._NEWLINE_Durante o desenvolvimento, o programador usa o interpretador no modo REPL para executar e testar cada pequeno peda\xc3\xa7o enquanto \xc3\xa9 desenvolvido. A maioria dos programadores, assim sendo, abordam o desenvolvimento top-down e bottom-up com testes e integra\xc3\xa7\xc3\xb5es cont\xc3\xadnuos."