A dynamically typed language with automatic memory management
A tribute to my team mates at Payfit who are so incredibly inspiring. Pulse is my first step to follow their track.
Pulse is a dynamically typed programming language. It combines successful concepts from mature languages like Scheme, JavaScript and C#.
Pulse aims to be small, clean and efficient.
It is not feature complete, it is not intended for production, and it does have bugs.
program → statement* EOF ;
statement → exprStmt
| printStmt ;
exprStmt → expression ";" ;
printStmt → "print" expression ";" ;
expression → literal
| unary
| binary
| grouping ;
literal → NUMBER | STRING | "true" | "false" | "nil" ;
grouping → "(" expression ")" ;
unary → ( "-" | "!" ) expression ;
binary → expression operator expression ;
operator → "==" | "!=" | "<" | "<=" | ">" | ">="
| "+" | "-" | "*" | "/" ;
Pulse implementation is largely inspired by the fabulous Crafting Interpreter book from Robert Nystrom.