lam
lam copied to clipboard
LAM Specification Status
One of the goals of LAM is to be formally specified.
This will allow other implementations to appear that are interchangeable with it, and will allow us to reason mathematically about their expected behaviors.
Instruction Set
Control Flow
- [ ] Badmatch
- [ ] Call
- [ ] ConditionalJump
- [ ] Halt
- [ ] Jump
- [ ] Label
- [ ] Return
- [ ] TailCall
- [ ] Test
Values
- [ ] ConsList
- [ ] GetMapElements
- [ ] GetTupleElement
- [ ] MakeLambda
- [ ] MakeTuple
- [ ] SplitList
- [ ] SplitListHead
- [ ] SplitListTail
Processes & Message Passing
- [ ] Kill
- [ ] Monitor
- [ ] PeekMessage
- [ ] PidSelf
- [ ] RemoveMessage
- [ ] Send
- [ ] Sleep
- [ ] Spawn
Register Machine
- [ ] Allocate
- [ ] Clear
- [ ] Deallocate
- [x] Move
- [ ] RestoreLocals
- [ ] ShiftLocals
- [ ] Swap
Scheduler
- [ ] Boot
- [ ] Step
Scheduler Coordinator
- [ ] Setup
- [ ] Step
- [ ] Halt