Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LAM Specification Status #5

Open
1 of 37 tasks
leostera opened this issue Dec 19, 2020 · 0 comments
Open
1 of 37 tasks

LAM Specification Status #5

leostera opened this issue Dec 19, 2020 · 0 comments
Labels
spec Related to the specification of LAM tracking This issue is used for tracking status

Comments

@leostera
Copy link
Owner

leostera commented Dec 19, 2020

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
  • Move
  • RestoreLocals
  • ShiftLocals
  • Swap

Scheduler

  • Boot
  • Step

Scheduler Coordinator

  • Setup
  • Step
  • Halt
@leostera leostera added tracking This issue is used for tracking status spec Related to the specification of LAM labels Dec 19, 2020
leostera added a commit that referenced this issue Dec 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spec Related to the specification of LAM tracking This issue is used for tracking status
Projects
None yet
Development

No branches or pull requests

1 participant