Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ynx0/exa-sim
simulates exas
https://github.com/ynx0/exa-sim
exa exapunks simulation
Last synced: 23 days ago
JSON representation
simulates exas
- Host: GitHub
- URL: https://github.com/ynx0/exa-sim
- Owner: ynx0
- License: gpl-3.0
- Created: 2019-01-04T01:42:17.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-12-11T01:20:50.000Z (almost 4 years ago)
- Last Synced: 2024-10-11T03:09:49.314Z (about 1 month ago)
- Topics: exa, exapunks, simulation
- Language: TypeScript
- Size: 94.7 KB
- Stars: 6
- Watchers: 5
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# EXA SIM
This program will be able to:
1. Validate and parse exalang (generate a a syntax tree)
2. Execute (a subset) of exalang
3. Simulate multiple exas with interaction (stretch goal)## EXA PARSE
`exaparse` will be a module that will be able to:
1. Validate a line of code
2. Generate a syntax tree for a valid set of instructions
3. Evalute lines of code. This will be a reducer in redux terminologyThere will be a state machine included in the `exaparse` module.
The state will be a redux store object.
The program syntax tree will be part of the state.The state will have:
* Registers
* Program Tree
* Program Counter (PC) - Indicates which line is going to execute currently
* Blocked - whether this is for reading on M register or notThere will be a few key reducers.
* eval - this takes the state of the exa, and update it to match what the state should be after executing the line at the current program counterThe reducer to evaluate, `eval`, will take in the current state and action. If