por Phil Burk con Larry Polansky, David Rosenboom y Darren Gibbs. Soporte para células de 64 bits por Aleksej Saushev.
Última actualización: 27 de noviembre de 2022
Portable Forth escrito en 'C' para la mayoría de las plataformas de 32 y 64 bits.
Pforth está escrito en 'C' y se puede transferir fácilmente a nuevas plataformas de 32 y 64 bits. Solo necesita funciones de entrada y salida de caracteres para operar y, por lo tanto, no requiere un sistema operativo. Esto lo hace útil para mencionar y probar sistemas integrados.
Pforth también funciona en escritorios, incluidos Windows, Mac y Linux, y admite el historial de la línea de comandos. Esto le permite desarrollar pruebas de hardware en un escritorio antes de probarlas en su sistema integrado. Pero Pforth no es un entorno de programación de escritorio rico y amigable. No hay herramientas GUI para desarrollar aplicaciones de escritorio. Pforth es delgado y promedio y optimizado para la portabilidad.
PForth tiene una herramienta para compilar código en un escritorio, luego exportar el diccionario en formato Big o Little Endian como código fuente 'C'. Esto le permite compilar pruebas para un sistema integrado que no tiene E/S de archivos.
Pforth se basa en ANSI-Forth pero no es 100% compatible. https://forth-standard.org/standard/words
El código para Pforth se mantiene en GitHub en: https://github.com/philburk/pforth
Documentación para Pforth en: http://www.softsynth.com/pforth/
Para informar los errores o las funciones de solicitud, presenten un problema de GitHub.
Para preguntas o discusión general, use el foro de Pforth en: http://groups.google.com/group/pforthdev
Se otorga permiso para usar, copiar, modificar y/o distribuir este software para cualquier propósito con o sin tarifa.
El software se proporciona "tal cual" y el autor renuncia a todas las garantías con respecto a este software, incluidas todas las garantías implícitas de comerciabilidad y estado físico. En ningún caso, el autor será responsable de ningún daño especial, directo, indirecto o consecuente o daños que resulten de la pérdida de uso, datos o ganancias, ya sea en una acción de contrato, negligencia u otra acción tortuosa, que surja de o en relación con el uso o rendimiento de este 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
El edificio Pforth implica dos pasos:
Hemos proporcionado scripts de compilación para simplificar este proceso.
En UNIX y macOS usando MakeFile:
cd platforms/unix
make all
./pforth_standalone
Para más detalles, vea la wiki
Usando cmake:
cmake .
make
cd fth
./pforth_standalone
Para los sistemas integrados, consulte el Manual de referencia de Pforth en:
http://www.softsynth.com/pforth/pf_ref.php
Para ejecutar el Pforth Enter todo en uno:
./pforth_standalone
O, para ejecutarse usando el archivo del diccionario, ingrese:
./pforth
Verificación rápida de Forth:
3 4 + .
words
bye
Para compilar archivos de código fuente use:
INCLUDE filename
Para crear un diccionario personalizado, ingrese en Pforth:
c" newfilename.dic" SAVE-FORTH
El nombre debe terminar en ".dic".
Para ejecutar Pforth con el nuevo diccionario, ingrese en el shell:
pforth -dnewfilename.dic
Para ejecutar Pforth e incluir automáticamente un archivo Forth: Pforth myprogram.fth
Pforth viene con una pequeña suite de prueba. Para probar las palabras centrales, puede usar el Coretest desarrollado por John Hayes.
En UNIX y macOS usando MakeFile:
cd platforms/unix
make test
Usando cmake:
cmake .
make
cd fth
./pforth
include tester.fth
include coretest.fth
Para ejecutar las otras pruebas, ingrese:
pforth t_corex.fth
pforth t_strings.fth
pforth t_locals.fth
pforth t_alloc.fth
Informarán el número de pruebas que pasan o fallan.
También puede probar el núcleo Pforth sin cargar un diccionario usando la opción "-i". Solo las palabras primitivas definidas en C estarán disponibles. Esto podría ser necesario si el diccionario no se puede construir.
./pforth -i
3 4 + .
23 77 swap .s
loadsys