play-lang

1.0.3 • Public • Published

Play Programming Language

Play is small programming language intended for used as a test bed for various compiler, runtime, and debugger technologies. It uses nearley.js and moo.js for building the parser.

To learn more about how Play is built:

  • See Play's predecessor: fun-lang.
  • Watch this video series to learn how to make a programming language.

Videos about the Time Traveling Debugger

The current major experimental feature I am going for is the time traveling debugger, to learn more about it, you can watch these videos:

Todo

  • do some code challenges on CodeWars, etc
  • gather closure info function, doesn't work with the loop iterator variable of a for loop
  • make some toy programs
  • anonymous functions as closure providers
  • use static analysis to check for references of undefined functions
  • debugger: don't show vdom?
  • clean up closures when functions are no longer referenced
  • clean up unused heap variables?
  • heap display goes into disarray when there is too much data
  • bug: why is styles object nested in dom.play example?
  • numbers nested inside objects are always being interpreted as heap IDs, we may need ref objects to * distinguish refs
  • there seems to be a bug with VDOM when changes styles across multiple calls to setStyle()
  • Canvas API
  • when scrubbing the timeline, have the code display pan to the selected line
  • syntax highlighter for Atom and/or VS Code

Done

  • suspend execution while in debugger mode
  • display closure variables in stack frame within debugger
  • UI for time-traveling (1st draft done)
  • DOM events
  • make closures work...

Readme

Keywords

none

Package Sidebar

Install

npm i play-lang

Weekly Downloads

0

Version

1.0.3

License

ISC

Unpacked Size

78.5 kB

Total Files

12

Last publish

Collaborators

  • airportyh