Skip to content
/ Fux Public

Flawless Unambiguous Programming - A Modern, Flexible Programming Language for All

License

Notifications You must be signed in to change notification settings

Fuechs/Fux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flawless Unambiguous Programming

0.1-dev Apache License v2.0 C++ LLVM

Simple Hello World Program
main(argc: u64, argv: **c8): u64 {
    puts "Hello World!\n";
    return 0;
}

Warning
Please note that Fux is still in early development.
As of now only MacOS and Linux will be supported.

The compiler is currently undergoing a major rework.
See the rework branch for progress.

A Modern, Flexible Programming Language for All

Fux is a modern and flexible programming language, perfect for use in a variety of domains by both novice and expert developers. With its efficient use of LLVM, it provides performance similar to C++, while being portable and running on a wide range of platforms.1

  • Easy to Write and Read
    Fux is designed to be easy to write and read, making it accessible for new programmers and offering improved features for experienced developers. Its syntax emphasizes readability and seamless integration of different language elements. For instance, the pipe operators (<< and >>) provide a simple and intuitive way to connect multiple expressions.

        ptr: *i64;
    //  ---------- Start of lifetime
        reserve i64, 10, ptr;
        ret := process(ptr, ptr + 9);
    //         ------------ ^~~ ---- Last usage of `ptr`
        free ptr;
    //  +~~~~~~~~ 
    //  Inserted by Fux at end of lifetime determined by usage
        return ret;
  • Eliminating Common C++ Issues
    Fux's secure memory management eliminates common issues like memory leaks. Its error system provides precise and informative error messages, making debugging easier. These improvements reduce the likelihood of bugs, enabling developers to produce high-quality code.

    error demo

Note

  • As an ongoing development project, Fux may introduce new features or updates that could impact its performance, stability, or compatibility.
  • Fux may have fewer resources available, such as documentation, forums, or tutorials, compared to more established programming languages.

Getting Started

The compiler for this language is not finished yet.
You can compile the source code by running make and then run the executeable with ./fux <filepath>. It will output the parsed tokens and AST.

Footnotes

  1. The usage of certain features may result in decreased program performance and slower compile times.

About

Flawless Unambiguous Programming - A Modern, Flexible Programming Language for All

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Languages