🌟 Introduction • ✨ Features • 🎮 Quick Example • 🚀 Installation • 📖 Documentation • 🧪 Testing • 🤝 Contributing • 📜 License
F-- (F Minus Minus) is not just another programming language – it's a passion project by a 13-year-old developer who believes that age is just a number when it comes to creativity!
"Just code, the compiler handles the rest!"
Built entirely with .NET, F-- aims to make programming fun, intuitive, and accessible to everyone. Whether you're a beginner or an experienced developer, F--'s unique philosophy will bring a smile to your face while you code!
- For beginners: Simple syntax, clear error messages
- For fun: Playful design, quirky features
- For learning: Open source, well-documented, community-driven
| Feature | Description | Example | Status |
|---|---|---|---|
| 🖥️ Super Import | Import the entire computer, no hardware worries! | import computer |
✅ Stable |
| 🔤 String Interpolation | Embed variables directly in strings | $"Hello {name}!" |
✅ Stable |
| 🧠 Memory Management | Automatic memory checking | memory.memoryleft |
✅ Stable |
| 📁 Intuitive File I/O | File operations made simple | at "file.txt" { ... } |
✅ Stable |
| 🚨 FMM Error Codes | Professional F Minus Minus error system | fmm001: syntax error |
✅ Stable |
| 🔄 Loops & Conditions | Control flow made easy | if (x > 5) { ... } |
🚧 In Progress |
| 📦 Package Manager | Share your F-- code with the world | import "mylib.f--" |
🚧 Coming Soon |
Here's a complete F-- program that demonstrates the language's power and simplicity:
import computer
start()
{
# Variable declaration
name = "F--"
version = alpha0
luckyNumber = 42
# Print with interpolation
println($"Hello from {name} v{version}!")
println($"Memory left: {memory.memoryleft} MB")
# Simple calculation
result = luckyNumber * 2
println($"The answer to everything multiplied by 2 is: {result}")
# File operations
io.cfile("hello"(path "txt"))
at "hello.txt"
{
io.println("Hello file!")
io.println($"Created by F-- v{version}")
io.println($"Today's lucky number: {luckyNumber}")
io.save()
}
println("✅ File created successfully!")
return(0) # Success
end() # End program
}
Output:
Hello from F-- alpha0!
Memory left: 7823 MB
The answer to everything multiplied by 2 is: 84
✅ File created successfully!
- .NET SDK 8.0 or higher
- Git (to clone repository)
- OS: Windows, Linux, macOS (any platform that supports .NET!)
- Go to the Releases page
- Download the latest
Fminusminus-{version}.zip - Extract the archive
- Open terminal/command prompt in the extracted folder
Windows:
build(Windows).cmd
dotnet run --project Compiler/compiler.csproj -- run examples/hello.f--Linux / macOS:
chmod +x build\(Mac\,Linux\).sh
./build\(Mac\,Linux\).sh
dotnet run --project Compiler/compiler.csproj -- run examples/hello.f--git clone https://github.com/realmg51-cpu/F---Programming-Language.git
cd F---Programming-Language
# Build the project
dotnet build
# Run your first F-- program
dotnet run --project Compiler/compiler.csproj -- run examples/hello.f--
# View the Abstract Syntax Tree (AST)
dotnet run --project Compiler/compiler.csproj -- ast examples/hello.f--# Install as global tool
dotnet tool install --global Fminusminus --version 2.0.0
# Run directly from terminal
fminus run hello.f--# Build Docker image
docker build -t fminusminus .
# Run F-- program
docker run --rm -v $(pwd):/app fminusminus run /app/examples/hello.f--| Construct | Syntax | Example |
|---|---|---|
| Import | import computer |
import computer |
| Entry Point | start() { ... } |
start() { println("Hello!") } |
| Variables | name = value |
age = 15 |
print("text") |
print("No newline") |
|
| Print Line | println("text") |
println("With newline") |
| String Interpolation | $"text {var}" |
$"Hello {name}!" |
| Return | return(value) |
return(0) |
| End Program | end() |
end() |
``f-- // Create a file with extension io.cfile("myfile"(path "txt"))
// Write to file at "myfile.txt" { io.println("Line 1") io.print("No newline here") io.println("Line 2 with newline") }
// Save file io.save() // or save to specific path io.save("C:/myfolder/") ``
``f-- memory.memoryleft // Check available memory memory.memoryused // Check used memory memory.memorytotal // Check total memory
println(
F-- uses a professional error code system (FMM - F Minus Minus):
| Error Code | Description | Example |
|---|---|---|
fmm001 |
Syntax error | Missing semicolon |
fmm002 |
Undefined variable | Using variable before declaration |
fmm003 |
Type mismatch | String vs number |
fmm004 |
File not found | Cannot open file |
fmm005 |
Memory overflow | Not enough memory |
F-- comes with a comprehensive test suite to ensure everything works as expected:
# Run all tests
dotnet test
# Run tests with code coverage
dotnet test --collect:"XPlat Code Coverage" --results-directory ./coverage
# Run specific test category
dotnet test --filter "Category=Lexer"
dotnet test --filter "Category=Parser"
dotnet test --filter "Category=CodeGen"
# Generate test report
dotnet test --logger "trx;LogFileName=test_results.trx"Current coverage: 0%??? (We're working on it! 😅)
| Coverage Level | Status | Meaning |
|---|---|---|
| 🔴 < 60% | Poor | Needs urgent testing |
| 🟡 60-75% | Average | Acceptable |
| 🟢 75-85% | Good | Stable |
| 💚 > 85% | Excellent | High quality |
Whether you're a seasoned developer or just starting out, your contributions are valuable!
- 🐛 Report bugs: Create a new Issue
- 💡 Suggest features: Share ideas through Issues
- 🔧 Submit Pull Request: Fork the repo and create a Pull Request
# Fork and clone your fork
git clone https://github.com/YOUR_USERNAME/F---Programming-Language.git
cd F---Programming-Language
# Add upstream remote
git remote add upstream https://github.com/realmg51-cpu/F---Programming-Language.git
# Create a feature branch
git checkout -b feature/amazing-feature
# Make your changes and test
dotnet test
# Commit with clear message
git commit -m "Add: amazing feature that does X"
# Push to your fork
git push origin feature/amazing-feature
# Open a Pull Request on GitHub- Write clear commit messages
- Add tests for new features
- Update documentation
- Be respectful and kind
- Have fun! 🎉
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2026 RealMG
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...
If you find F-- interesting or useful, please consider:
- ⭐ Star this repository
- 🔄 Fork and develop further
- 📢 Share with your friends
- 💬 Join the conversation in Issues
- 🤝 Contribute with code or ideas
- 🙏 Thanks to the amazing .NET community
- 💡 Inspired by the desire to learn and create
- 👥 Special thanks to @chaunguyen12477-cmyk for being the first contributor!
- 🌍 Everyone who stars, forks, or shares this project
| Metric | Value |
|---|---|
| 📅 Created | March 3, 2026 |
| 🔢 Commits | 86+ |
| 👥 Contributors | 2 |
| ⭐ Stars | Growing... |
| 🍴 Forks | Growing... |
- Basic syntax and compiler
- File I/O operations
- Memory management
- Error handling system
- v1.0.0-alpha0 (March 8, 2026)
- Loops and conditions
- VS Code extension
- Package manager
- NuGet package
- v1.0.0 stable
