Pry Programming Language
Pry is a simple, elegant, statically typed and compiled programming language implemented in Zig, with support for variables, control flow, functions, and code generation using LLVM.
Building and Running
- Ensure you have Zig and LLVM installed on your system.
- Run the compiler on an example file:
zig build run -- examples/8.pry - Link the generated object file to create an executable:
cc output.o - Run the executable:
./a.out
Language Features
- Variables and Declarations: Uses
letfor variable declaration. - Control Flow: Supports
ifandwhilestatements. - Functions: Supports function declarations with parameters and return types.
- Expressions: Includes additive, multiplicative, equality, and unary expressions.
- Code Generation with LLVM: Translates AST to LLVM IR and generates object files for native execution.
- Import System: Allows importing libraries and other Pry files.
Example Program
let main = () => i64 {
let fib = (n: i64) => i64 {
if n == 0 {
return 0;
};
if n == 1 {
return 1;
};
return fib(n-2) + fib(n-1);
};
let result = fib(30);
print(result);
return result;
};
Output: 832040