sugarlabs / musicblocks-v4

A complete overhaul of Music Blocks
http://www.sugarlabs.org/music-blocks/
GNU Affero General Public License v3.0
68 stars 96 forks source link

Programming Framework Enhancements #400

Open walterbender opened 5 months ago

walterbender commented 5 months ago

Ticket Contents

Description

There are three parts to this project:

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

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

Mentor(s)

@meganindya @walterbender

Category

Backend, Documentation, Frontend

VANSH3104 commented 1 month ago

@walterbender i like to work on it is this open

walterbender commented 1 month ago

We didn't end up submitting this to DMP this year, but feel free to jump in.