langsagne

minimal programming language parser and execution experiment

code

  1. 01i = 0;
  2. 02sum = 0;
  3. 03while (i < 4) {
  4. 04 sum = sum + i * 2;
  5. 05 i = i + 1;

directives

  1. 00JMP 2
  2. 02CONST 0
  3. 04STORE i
  4. 06CONST 0
  5. 08STORE sum

result0

pc0·JMP 2

1/96

step · p play · [ ] program · 13 pick · r restart

state

accumulator (ax)0
value stack (vs)[]
environment (env){}

tokens

  1. 1Identifieri
  2. 1Assign
  3. 1Number0
  4. 1;
  5. 2Identifiersum
  6. 2Assign
  7. 2Number0
  8. 2;
  9. 3While
  10. 3(
  11. 3Identifieri
  12. 3LessThan
  13. 3Number4
  14. 3)
  15. 3{
  16. 4Identifiersum
  17. 4Assign
  18. 4Identifiersum
  19. 4Add
  20. 4Identifieri
  21. 4Multiply
  22. 4Number2
  23. 4;
  24. 5Identifieri
  25. 5Assign
  26. 5Identifieri
  27. 5Add
  28. 5Number1
  29. 5;
  30. 6}
  31. 7Identifiersum
  32. 7Add
  33. 7Identifieri
  34. 7;
  35. 8Identifierprint
  36. 8(
  37. 8Identifiersum
  38. 8Add
  39. 8Number4
  40. 8)
  41. 8;
  42. 8;