Kitten is an experimental, concatenative programming language that blends Forth/Joy-style stack programming with modern static typing and effect tracking. Programs are composed by chaining small words that transform a typed stack, and the compiler uses type inference to ensure compositions are valid. The language explores disciplined handling of side effects, aiming to separate pure transformations from operations that perform I/O or mutate state. Its design encourages small, reusable building blocks that compose cleanly, while still permitting low-level control where performance matters. The implementation targets efficient compiled code and investigates how advanced type systems can improve reliability in a stack-based language. As a research project, Kitten serves both as a language to experiment with and as a vehicle for ideas about safety and structure in concatenative programming.
Features
- Interpreter for executing Kitten programs interactively
- Native code compiler (generating static executables)
- Type inference with static typing and effect types
- Stack-based / concatenative style operations
- Minimal runtime overhead / no tracing GC (reference counting or manual)
- REPL / console environment for testing code snippets