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

Programming Framework Enhancements #400

Open
6 tasks
walterbender opened this issue Apr 8, 2024 · 0 comments
Open
6 tasks

Programming Framework Enhancements #400

walterbender opened this issue Apr 8, 2024 · 0 comments

Comments

@walterbender
Copy link
Member

Ticket Contents

Description

There are three parts to this project:

  • Improvements and optimizations to the Program Syntax Framework
  • Enhancements and performance optimizations to the Execution Engine
  • Addition of Telemetry and Debugging support

We need to revisit some design considerations made while initially building the Program Syntax Framework. This framework is responsible for defining the business logic and rules for units of a program's syntax (literals, expressions, statements, blocks, functions) and maintaining the Syntax Tree that represents a program. There's scope for some work to be done in it's refinement.

The Execution Engine handles the runtime behavior of a program. Currently, it is in a very rudimentary state and is a work-in-progress. The goal is to build a low overhead interpreter that supports pseudo real-time and concurrency. Of course, JavaScript is single-threaded and the JavaScript engine on the browser doesn't support concurrency. So, we'll have to mock a closer behavior with Events.

It is desirable to be able to monitor the runtime states of an executing program. We want to collect execution information, messages, errors while a program is executing, and also control the execution itself. The goal is to add support for the said.

The framework code is contained in github.com/sugarlabs/musicblocks-v4-lib.

Goals & Mid-Point Milestone

Goals

  • [Improvements and optimizations to the Program Syntax Framework]
  • [Enhancements and performance optimizations to the Execution Engine]
  • [Addition of Telemetry and Debugging support]
  • [Goals Achieved By Mid-point Milestone]
  • [Program Syntax Framework]
  • [Some Execution Engine enhancements]

Setup/Installation

Expected Outcome

A working execution engine integrated into Music Blocks v4

Acceptance Criteria

Implementation Details

Mockups/Wireframes

Product Name

Music Blocks v4

Organisation Name

Sugar Labs

Domain

⁠Education

Tech Skills Needed

  • Strong experience with TypeScript 4
  • Experience of writing tests using Jest
  • Good understanding of the JavaScript Event Loop

Mentor(s)

@meganindya @walterbender

Category

Backend, Documentation, Frontend

@walterbender walterbender changed the title [DMP 2024]: Programming Framework Enhancements Programming Framework Enhancements Apr 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant