Hello! I am Kevin Benavides. I am a programmer focused on the development, design, and scalability of web/apps/APIs and the design and construction of compilers for dialects or programming languages such as C, Rust, or C++ with LLVM, QBE, or GCC.
On the other hand, I speak languages, such as Spanish (native) and English (B2), corresponding to the CEFR. I am very determined when there are pending tasks to do, in addition to being patient and a good conversationalist with people. Some facts about this are that I started in the world of programming more than 6 years ago.
On the other hand, I am currently developing my own programming language powered by LLVM and Q# for traditional and quantum programming.
- Everything you will see in this place is entirely studied in a completely self-taught way. -
The Thrush Programming Language. A programming language dedicated to creating highly adaptable software.
There's currently a breach: there's no memory-safe language focused on systems development that also offers easy-to-use features and a language environment. For example:
Rust
Complexity is inherited by the borrow checker itself, and in addition to having an advanced LLVM lifetimes system, by default it is not beginner-friendly.Swift
It is beginner-friendly, but at the same time it cannot be used as a systems language due to its very closed systems compared to FFI and C. It is not advanced-friendly.
The programming language focuses on providing an advanced yet beginner-friendly experience while allowing for complete adaptability in certain circumstances, allowing for highly adaptable code based on the programmer's experience.
- Intrinsic manipulation of code generation.
- Strong sublanguage, with the ability to interoperate directly with LLVM and Assembler.
- Strongly statically typed.
- Memory safety environment.
- Complex unsafe environment.
- C interop.
- Compiled to machine code.
mkdir build
thrushc -build-dir "build/" -llvm fibonacci.th -lkflags "-ofibonacci;-melf_x86_64;--dynamic-linker=/lib64/ld-linux-x86-64.so.2;/usr/lib/crt1.o;/usr/lib/crti.o;/usr/lib/gcc/x86_64-pc-linux-gnu/15.
1.1/crtbegin.o;-L/usr/lib;-L/usr/lib/gcc/x86_64-pc-linux-gnu/15.1.1;-lc;/usr/lib/gcc/x86_64-pc-linux-gnu/15.1.1/crtend.o;/usr/lib/crtn.o" && ./fibonacci
thorium run
fn print(fmt: ptr) s32 @public @ignore @extern("printf");
fn fibonacci(n: u64) u64 @alwaysinline @strongstack @hot {
if n <= 1 {
return n;
}
return fibonacci(n - 2) + fibonacci(n - 1);
}
fn main() {
for local i: u64 = 0; i < 10; i++; {
local format: str = "fibonacci of '%ld': %ld\n";
// Explicit pointer arithmetic.
print(carry[ptr] address format[0][0], i, fibonacci(i));
}
}