The Birdie handbook
Meet Birdie
On this page
Birdie is an experimental programming language for algorithmic problem solving: coding challenges, interviews, and working through an idea.
It takes inspiration from Python’s readable syntax, with static typing and first-class algorithmic data structures. The goal is to make a solution easier to read and reason about.
Early development
The syntax in this handbook is proposed and is not yet implemented. Birdie is not ready for general use, and there is no runnable browser playground yet.
Start with a problem
Here is the proposed solution to Two Sum:
fn twoSum(nums: [int], target: int) [int]:
seen = map()
for i, num in nums:
diff = target - num
if diff in seen:
return [seen[diff], i]
seen[num] = i
return []
Function parameters have explicit types. The types of local variables and the map are inferred from their use. Indentation defines the blocks.
Find your way around
- Syntax & types: functions, variables, loops, and the first type rules.
- Collections: lists, maps, and dedicated stacks.
- Examples: three familiar algorithms, with explanations.
- What comes next: the implementation direction and future playground.
Follow the language
The Birdie repository contains the evolving design and proposed examples. The implementation is planned in Go, beginning with an AST interpreter.