[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-detail-82537-en":3,"doc-seo-82537-105":30,"detail-sidebar-cat-0-en-105":91},{"code":4,"msg":5,"data":6},0,"success",{"doc_id":7,"user_id":8,"nickname":9,"user_avatar":10,"doc_module":4,"category_id":11,"category_name":12,"doc_title":13,"doc_description":14,"doc_content":15,"file_id":16,"file_url":17,"file_type":18,"file_size":19,"view_count":20,"is_deleted":4,"is_public":21,"is_downloadable":21,"audit_status":21,"page_count":22,"language":23,"language_code":24,"site_id":25,"html_lang":24,"table_of_contents":26,"faqs":27,"seo_title":13,"seo_description":14,"update_tm":28,"read_time":29},82537,549758146520,"Patrick","https://ap-avatar.wpscdn.com/avatar/80002397d8c0411e94?_k=1775819394049821470",8,"Research & Report","SchedCheck: Schedule Robustness Analysis for Event-Driven Block Programs","Block-based languages such as Scratch support concurrency without explicit thread creation, allowing scripts from green flag, broadcasts, and clones to cooperatively run over shared sprite and stage state. This document shows that observable behavior can depend on an order left nondeterministic by the language. Editing or remixing may change layer order and thus initial script start order. It formalizes the realizable schedule space as sprite-layer permutations and defines schedule-robustness using an observation-lens lattice across a fixed horizon. A partial-order exploration under dependence equivalence is validated by an independent oracle and implemented in SchedCheck.","SchedCheck: Schedule-Robustness Analysis for Event-Driven Block Programs  \nYuan Si and Jialu Zhang∗  \nUniversity of Waterloo, Waterloo, Canada  \n[yuan.si@uwaterloo.ca](yuan.si@uwaterloo.ca), [jialu.zhang@uwaterloo.ca](jialu.zhang@uwaterloo.ca)  \narXiv :2607 .00623v 1 [ cs . SE] 1 Jul 2026  \nAbstract—Block-based languages such as Scratch let beginners assemble interactive programs from sprites and scripts. These programs are concurrent in practice: green-flag scripts, broadcasts, and clones run as cooperatively scheduled threads over shared sprite and stage state, and their authors never write a thread. We show that such programs contain schedule-sensitive behaviors whose observable result depends on an execution order the language leaves open. Editing, saving, or remixing a project can produce a copy with the same blocks but a different layer order, changing the order the virtual machine starts scripts. We formalize the schedule space a Scratch virtual machine can realize as the permutations of the initial executable-target order, and define schedule-robustness against a lattice of observation lenses over a fixed horizon. A partial-order exploration runs one schedule per dependence-equivalence class, and on projects small enough to enumerate, an independent oracle confirms it recovers every realizable outcome. On larger projects, representatives stand in for the factorial under the validated dependence model. SchedCheck implements this on the production Scratch VM. Across 224 real student projects, at least 21% of the concurrent ones are schedulesensitive at the grading lens, and a uniform random sample of public projects replicates the rate at 17.6%, with two real remixes of a deployed animation arranging its letters differently. On handbuilt fault pairs and a generated benchmark of 32 spec-defined faults across four classes, the tool detects and localizes every schedule fault, with a logic-fault control reporting clean. The oracle exposed four unsoundness gaps in the dependence model, all repaired. The method is parametric in the execution model, instantiating unchanged on a second cooperative event loop.  \nI. INTRODUCTION  \nScratch is the entry point to programming for tens of millions of children. A learner drags blocks onto sprites, clicks the green flag, and watches a scene come alive. Underneath the friendly surface the runtime is concurrent. Every sprite can carry several scripts that start together on the green flag, react to broadcasts, or run inside clones, and all of them read and write shared state: variables, lists, and the position, costume, and visibility of every sprite. The learner writes interacting threads without ever naming one.  \nConsider a child who builds a small game where a ball drops onto a paddle and a counter records the catch: the paddle checks whether it touches the ball and sets a variable, and the ball moves to the paddle. The child runs it, sees the catch register, and shares it. A classmate remixes the project, opening it and saving a copy, which carries the two sprites in a different layer order, and now the paddle sometimes checks for contact  \nCorresponding author: Jialu Zhang.  \nbefore the ball has moved. Same blocks, same inputs, same random seed, yet the counter reads zero, and nothing in the project is a recognizable bug. The behavior depends on the order in which the two green-flag scripts start, and that order is not fixed by the language.  \nThis is a schedule-sensitive fault, and the schedule it depends on is realizable by a routine user action. A Scratch virtual machine starts green-flag scripts in a deterministic sweep over the sprites in layer order, so the relative order of two sprites’scripts is exactly the relative order of the sprites on the stage. Reordering sprites is a one-click operation in the editor, and saved copies of a project can differ in it. A program whose result changes under such a reordering can carry a defect that single runs, fixed inputs, and code review a","cbCainuQXev9R9zb","https://ap.wps.com/l/cbCainuQXev9R9zb","pdf",370052,2,1,12,"English","en",105,"# Introduction\n## Motivation: schedule-sensitive faults in Scratch\n## Related work and limitations of existing analyses\n## Schedule-based testing and schedule-robustness lenses\n# Approach and evaluation overview\n## Partial-order exploration with dependence equivalence\n## Explaining differences and localizing schedule faults","[{\"question\":\"What makes Scratch block programs potentially schedule-sensitive?\",\"answer\":\"Scratch runs multiple scripts concurrently (green flag, broadcasts, and clones) over shared state, while the relative order of scripts can vary when sprite layer order changes. Since the language leaves the effective start order open, observable behavior can change without apparent code bugs.\"},{\"question\":\"How does SchedCheck define the schedule space it tests?\",\"answer\":\"For a fixed input and seed, it defines the realizable schedule space as the set of runs obtained by permuting the initial executable-target order, corresponding to sprite layer order in the Scratch virtual machine.\"},{\"question\":\"How does SchedCheck efficiently explore schedules and validate results?\",\"answer\":\"It uses a partial-order reduction over a typed dependence relation, running once per dependence-equivalence class instead of factorially many schedules. For projects small enough to enumerate, an independent oracle confirms recovery of every realizable outcome; larger cases use representative schedules under the validated dependence model.\"}]",1784181373,30,{"code":4,"msg":31,"data":32},"ok",{"site_id":25,"language":24,"slug":33,"title":13,"keywords":34,"description":14,"schema_data":35,"social_meta":86,"head_meta":88,"extra_data":90,"updated_unix":28},"schedcheck-schedule-robustness-analysis-for-event-driven-block-programs","",{"@graph":36,"@context":85},[37,53,68],{"@type":38,"itemListElement":39},"BreadcrumbList",[40,44,47,50],{"item":41,"name":42,"@type":43,"position":21},"https://docshare.wps.com","Home","ListItem",{"item":45,"name":46,"@type":43,"position":20},"https://docshare.wps.com/document/","Document",{"item":48,"name":12,"@type":43,"position":49},"https://docshare.wps.com/document/research-report/",3,{"item":51,"name":13,"@type":43,"position":52},"https://docshare.wps.com/document/schedcheck-schedule-robustness-analysis-for-event-driven-block-programs/82537/",4,{"url":51,"name":13,"@type":54,"author":55,"headline":13,"publisher":57,"fileFormat":60,"inLanguage":24,"description":14,"dateModified":61,"datePublished":62,"encodingFormat":60,"isAccessibleForFree":63,"interactionStatistic":64},"DigitalDocument",{"name":9,"@type":56},"Person",{"url":41,"name":58,"@type":59},"DocShare","Organization","application/pdf","2026-07-22","2026-07-16",true,{"@type":65,"interactionType":66,"userInteractionCount":20},"InteractionCounter",{"@type":67},"ViewAction",{"@type":69,"mainEntity":70},"FAQPage",[71,77,81],{"name":72,"@type":73,"acceptedAnswer":74},"What makes Scratch block programs potentially schedule-sensitive?","Question",{"text":75,"@type":76},"Scratch runs multiple scripts concurrently (green flag, broadcasts, and clones) over shared state, while the relative order of scripts can vary when sprite layer order changes. Since the language leaves the effective start order open, observable behavior can change without apparent code bugs.","Answer",{"name":78,"@type":73,"acceptedAnswer":79},"How does SchedCheck define the schedule space it tests?",{"text":80,"@type":76},"For a fixed input and seed, it defines the realizable schedule space as the set of runs obtained by permuting the initial executable-target order, corresponding to sprite layer order in the Scratch virtual machine.",{"name":82,"@type":73,"acceptedAnswer":83},"How does SchedCheck efficiently explore schedules and validate results?",{"text":84,"@type":76},"It uses a partial-order reduction over a typed dependence relation, running once per dependence-equivalence class instead of factorially many schedules. For projects small enough to enumerate, an independent oracle confirms recovery of every realizable outcome; larger cases use representative schedules under the validated dependence model.","https://schema.org",{"og:url":51,"og:type":87,"og:title":13,"og:site_name":58,"og:description":14},"article",{"robots":89,"canonical":51},"index,follow",{"doc_id":7,"site_id":25},{"code":4,"msg":5,"data":92},[93,97,101,105,110,115,120,122,127,130,134],{"id":21,"doc_module":4,"doc_module_name":46,"category_name":94,"show_sort_weight":95,"slug":96},"Story & Novel",90,"story-novel",{"id":20,"doc_module":4,"doc_module_name":46,"category_name":98,"show_sort_weight":99,"slug":100},"Literature",80,"literature",{"id":52,"doc_module":4,"doc_module_name":46,"category_name":102,"show_sort_weight":103,"slug":104},"Exam",70,"exam",{"id":106,"doc_module":4,"doc_module_name":46,"category_name":107,"show_sort_weight":108,"slug":109},5,"Comic",60,"comic",{"id":111,"doc_module":4,"doc_module_name":46,"category_name":112,"show_sort_weight":113,"slug":114},6,"Technology",50,"technology",{"id":116,"doc_module":4,"doc_module_name":46,"category_name":117,"show_sort_weight":118,"slug":119},7,"Healthcare",40,"healthcare",{"id":11,"doc_module":4,"doc_module_name":46,"category_name":12,"show_sort_weight":29,"slug":121},"research-report",{"id":123,"doc_module":4,"doc_module_name":46,"category_name":124,"show_sort_weight":125,"slug":126},9,"Religion & Spirituality",20,"religion-spirituality",{"id":125,"doc_module":4,"doc_module_name":46,"category_name":128,"show_sort_weight":125,"slug":129},"World Cup","world-cup",{"id":131,"doc_module":4,"doc_module_name":46,"category_name":132,"show_sort_weight":131,"slug":133},10,"Lifestyle","lifestyle",{"id":135,"doc_module":4,"doc_module_name":46,"category_name":136,"show_sort_weight":106,"slug":137},19,"General","general"]