August 6th, 2024

#F – A Minimalistic Scheme System

#F is a minimalistic Scheme system that compiles to portable C code for integration with C projects. It is not standard-compliant and has performance limitations, with installation requiring C file compilation.

Read original articleLink Icon
#F – A Minimalistic Scheme System

#F (Sharp-F or False) is a minimalistic Scheme system designed as a portable compiler/runtime for a subset of the Scheme programming language. Its primary purpose is to create specialized code fragments that can be easily integrated with C code. The system compiles itself into standard portable C code, ensuring usability across various platforms without OS or hardware-specific dependencies. The #F compiler (SFC) generates readable and efficient C code, facilitating integration into C projects. Its runtime is scalable and does not embed knowledge of standard functions or data types, except for the `#f` value. #F allows the use of pointers to C objects and features a C-friendly garbage collector. However, it is not a standard-compliant Scheme implementation and lacks many features of full Scheme, including dynamic loading and certain data types. Performance limitations exist, particularly with large data structures. Installation involves compiling C files from the `fixpoint` subdirectory using a C compiler. The repository includes documentation and examples, such as `hello.sf` and `tak.sf`, to assist users in getting started with #F.

- #F is a portable compiler/runtime for a subset of the Scheme programming language.

- It generates efficient C code for easy integration with C projects.

- The system is not standard-compliant and has limitations in performance and functionality.

- Installation requires compiling C files from the repository.

- Documentation and examples are available to help users get started.

Related

F (2006)

F (2006)

F is a functional concatenative language with K3 list operations and Joy's dip combinator. It enforces one-time assignment, supports floating-point and symbolic datatypes, and emphasizes function-valence and -charge theories. The language is purely functional, prohibiting side-effects and reassignment, with various primitives for arithmetic, logic, and list operations. F also provides interactive commands for debugging and manipulation, focusing on simplicity, efficiency, and functional programming paradigms.

As you learn Forth, it learns from you (1981)

As you learn Forth, it learns from you (1981)

The Forth programming language is highlighted for its unique features like extensibility, speed, and efficiency. Contrasted with Basic, Forth's threaded code system and data handling methods make it versatile.

A portable lightweight C FFI for Lua, based on libffi

A portable lightweight C FFI for Lua, based on libffi

A GitHub repository offers a portable lightweight C FFI for Lua, based on libffi. It aims for LuaJIT FFI compatibility, developed in C. Includes features, examples, basic types, build instructions, testing, and acknowledgements.

A FORTH compiler tutorial in x86 asm (2009)

A FORTH compiler tutorial in x86 asm (2009)

This text introduces a tutorial and compiler for FORTH, a minimalist programming language known for creating complete operating systems in a few thousand lines. It covers FORTH's structure, direct threaded code, setup on Linux, and additional learning resources.

Matters Computational [pdf]

Matters Computational [pdf]

The FXT page hosts a library of efficient algorithms, complemented by the fxtbook "Matters Computational." Authored by Jörg Arndt, it offers free downloads, demo programs, and comprehensive documentation on various computational topics.

Link Icon 4 comments
By @moomin - 2 months
Well, that’s a confusing name to give your project.
By @mrgoldenbrown - 2 months
That's a confusing name choice, I expected this to be some kind of scheme implementation based on the existing language F#
By @wdkrnls - 2 months
I really like that it tries to be extremely minimal, but was surprised to read it didn't support eval/apply at the lowest level.
By @nj5rq - 2 months
The C source code in the GitHub looks... Interesting. At least the "fixpoint" directory.