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 a breach right now, and that's the fact that there's no memory-safe language focused on systems development that also offers beginner-friendly capabilities and a language environment. Thrush attempts to bridge this breach.
The programming language focuses on providing a beginner-friendly yet advanced experience while also allowing for complete adaptability in certain circumstances, allowing for highly adaptable code.
- 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));
}
}