Portfolio
This page serves as a surface level overview of a few of the projects I’ve made/worked on. This is not a full list, and my GitHub is where you can see all of my projects, including the ones that are not listed here.
Oxylang - C like programming language
Oxylang is a programming language i made over the course of a few months, its core idea is that it is a simple c like language but with less ambiguity, and a more modern syntax. It does not have any safety features, and is designed to be simple but still familiar to c!!
It ditches the c type system where variables might be 8, 16, or 64 bits based on what your architecture or compiler thinks is best, and instead uses a simple type system where you have i8, i16, i32, i64, u8, u16, u32, u64, f32 and f64. It also has a simple module system, where you can @export functions, types and variables, which then can be imported!
It is not feature complete, nor stable, but you can check out the github repo and the spec if you want to learn more about it! unfortunately the documentation is lacking, but to compile stuff you need the Oxylang.Build project, which is a cli tool that manages compilation.
Example:
1import "std" as std;
2@extern @symbol("printf") fn printf(format: ptr<u8>, ...) -> i32;
3
4@entry
5fn main(argc: i32, argv: ptr<ptr<u8>>) -> u8 {
6 let x: i32 = 42;
7 let y: ptr<u8> = "Hello, Oxy. X: %d\n";
8 printf(y, x);
9
10 let math = 3.14 * 2.0; // f64
11 let math_f32: f32 = 3.14f * 2.0f; // f32
12
13 // %f is for f64, so we need to cast math_f32 to f64 (assuming 64 bit architecture)
14 printf("Math: %f, Math_f32: %f\n", math, cast<f64>(math_f32));
15
16 for (let i = 0; i < 5; i = i + 1) {
17 printf("Loop iteration: %d\n", i);
18 }
19
20 while (x > 0) {
21 printf("While loop, x: %d\n", x);
22 x = x - 1;
23 }
24
25 std::println("This is a line printed using the standard library's println function.");
26
27 return 0u8;
28}
learned a lot making this language, and it was a real fun project to work on but i quickly realised some architectural decisions i made early on that made it hard to continue development, so ill probably be trying again with a revised specifiction and architecture, but for now this is what i have, and im proud of it!!