Por Phil Burk com Larry Polansky, David Rosenboom e Darren Gibbs. Suporte para células de 64 bits de Aleksej Saushev.
Última atualização: 27 de novembro de 2022
Portátil escrito em 'C' para a maioria das plataformas de 32 e 64 bits.
A PFORTH está escrita em 'C' e pode ser facilmente portada para novas plataformas de 32 e 64 bits. Ele precisa apenas de funções de entrada e saída de caracteres para operar e, portanto, não requer um sistema operacional. Isso torna útil para criar e testar sistemas incorporados.
A PFORTH também funciona em desktops, incluindo Windows, Mac e Linux, e suporta o histórico de linhas de comando. Isso permite desenvolver testes de hardware em uma área de trabalho antes de experimentá -los no sistema incorporado. Mas o PFORTH não é um ambiente de programação de desktop rico e amigável. Não há ferramentas de GUI para o desenvolvimento de aplicativos de desktop. O PFORTH é magro e mau e otimizado para portabilidade.
O PFORTH possui uma ferramenta para compilar código em um desktop e, em seguida, exportar o dicionário em formato grande ou pequeno e endiano como código -fonte 'C'. Isso permite compilar testes para um sistema incorporado que não possui E/S de arquivo.
O PFORTH é baseado no ANSI-FORTH, mas não é 100% compatível. https://forth-tandard.org/standard/words
O código para Pforth é mantido no Github em: https://github.com/philburk/pforth
Documentação para Pforth em: http://www.softsynth.com/pforth/
Para relatar bugs ou solicitar recursos, registre um problema do GitHub.
Para perguntas ou discussão geral, use o fórum PForth em: http://groups.google.com/group/pforthdev
Permissão para usar, copiar, modificar e/ou distribuir este software para qualquer finalidade com ou sem taxa é concedida.
O software é fornecido "como está" e o autor se isenta de todas as garantias em relação a este software, incluindo todas as garantias implícitas de comercialização e condicionamento físico. Em nenhum caso o autor será responsável por quaisquer danos especiais, diretos, indiretos ou conseqüentes ou quaisquer danos resultantes da perda de uso, dados ou lucros, seja em uma ação de contrato, negligência ou outra ação tortuosa, decorrente de ou em conexão com o uso ou desempenho deste software.
platforms - tools for building pForth on various platforms
platforms/unix - Makefile for unix
csrc - pForth kernel in ANSI 'C'
csrc/pf_main.c - main() application for a standalone Forth
csrc/stdio - I/O code using basic stdio for generic platforms
csrc/posix - I/O code for Posix platform
csrc/win32 - I/O code for basic WIN32 platform
csrc/win32_console - I/O code for WIN32 console that supports command line history
fth - Forth code
fth/util - utility functions
Construir Pforth envolve duas etapas:
Fornecemos scripts de construção para simplificar esse processo.
No Unix e MacOS usando makefile:
cd platforms/unix
make all
./pforth_standalone
Para mais detalhes, consulte o wiki
Usando cmake:
cmake .
make
cd fth
./pforth_standalone
Para sistemas incorporados, consulte o manual de referência do PFORTH em:
http://www.softsynth.com/pforth/pf_ref.php
Para executar o PFORTH ALL-IN-ONE:
./pforth_standalone
Ou, para executar usando o arquivo de dicionário, digite:
./pforth
Verificação rápida de adiante:
3 4 + .
words
bye
Para compilar arquivos de código -fonte, use:
INCLUDE filename
Para criar um dicionário personalizado, digite na PFORTH:
c" newfilename.dic" SAVE-FORTH
O nome deve terminar em ".dic".
Para correr Pforth com o novo dicionário, entre no shell:
pforth -dnewfilename.dic
Para executar o PFORTH e incluir automaticamente um arquivo Forth: pforth myProgram.fth
O PFORTH vem com uma pequena suíte de teste. Para testar as palavras principais, você pode usar o CoreTest desenvolvido por John Hayes.
No Unix e MacOS usando makefile:
cd platforms/unix
make test
Usando cmake:
cmake .
make
cd fth
./pforth
include tester.fth
include coretest.fth
Para executar os outros testes, digite:
pforth t_corex.fth
pforth t_strings.fth
pforth t_locals.fth
pforth t_alloc.fth
Eles relatarão o número de testes que passam ou falham.
Você também pode testar o kernel pforth sem carregar um dicionário usando a opção "-i". Somente as palavras primitivas definidas em C estarão disponíveis. Isso pode ser necessário se o dicionário não puder ser construído.
./pforth -i
3 4 + .
23 77 swap .s
loadsys