Scratch-VM:修订间差异

CaelLab​(留言 | 贡献)
创建页面,内容为“Scratch虚拟机(英文:Scratch Virtual Machine,简称Scratch VM或scratch-vm)是Scratch 3.0的核心执行引擎与运行时库,由麻省理工学院媒体实验室(MIT Media Lab)终身幼儿园组(Lifelong Kindergarten Group)开发,现由Scratch基金会(Scratch Foundation)维护<ref name=":0">[https://github.com/scratchfoundation/scratch-vm Scratch VM - GitHub]</ref>。该库以Java…”
 
云云​(留言 | 贡献)
无编辑摘要
 
(未显示另一用户的1个中间版本)
第1行: 第1行:
Scratch虚拟机(英文:Scratch Virtual Machine,简称Scratch VM或scratch-vm)是[[Scratch(全球少儿图形化编程语言)|Scratch]] 3.0的核心执行引擎与运行时库,由麻省理工学院媒体实验室(MIT Media Lab)终身幼儿园组(Lifelong Kindergarten Group)开发,现由Scratch基金会(Scratch Foundation)维护<ref name=":0">[https://github.com/scratchfoundation/scratch-vm Scratch VM - GitHub]</ref>。该库以[[JavaScript]]实现,负责将用户通过拖拽积木构建的图形化程序解析为抽象语法树(AST),并管理程序状态的表示、运行与维护<ref name=":1">[https://github.com/scratchfoundation/scratch-editor/ scratch-editor - GitHub]</ref>。作为Scratch 3.0技术架构的中间层,Scratch虚拟机向上与Scratch Blocks对接以接收积木变更事件,向下调用Scratch Render等模块完成舞台渲染,同时通过扩展系统支持硬件与第三方服务的接入<ref name=":2">[https://www.cnblogs.com/chuaWeb/p/13681999.html Scratch3的结构 - 博客园]</ref>。
[[Scratch]]虚拟机([[英文]]:Scratch Virtual Machine,简称Scratch VM或scratch-vm)是[[Scratch(全球少儿图形化编程语言)|Scratch]] 3.0的核心执行引擎与运行时库,由[[麻省理工学院]]媒体实验室(MIT Media Lab)终身幼儿园组(Lifelong Kindergarten Group)开发,现由Scratch基金会(Scratch Foundation)维护<ref name=":0">[https://github.com/scratchfoundation/scratch-vm Scratch VM - GitHub]</ref>。该库以[[JavaScript]]实现,负责将[[用户]]通过拖拽积木构建的图形化程序解析为抽象语法树(AST),并管理程序状态的表示、运行与维护<ref name=":1">[https://github.com/scratchfoundation/scratch-editor/ scratch-editor - GitHub]</ref>。作为Scratch 3.0技术[[架构]]的中间层,Scratch虚拟机向上与Scratch Blocks对接以接收积木变更事件,向下调用Scratch Render等模块完成舞台渲染,同时通过扩展系统支持硬件与第三方服务的接入<ref name=":2">[https://www.cnblogs.com/chuaWeb/p/13681999.html Scratch3的结构 - 博客园]</ref>。


{| class="infobox" style="border:1px solid #ccc; background:#f8f9fa; width:24em; float:right; margin:0 0 1em 1em; border-spacing:5px;"
{| class="infobox" style="border:1px solid #ccc; background:#f8f9fa; width:24em; float:right; margin:0 0 1em 1em; border-spacing:5px;"
第17行: 第17行:
| 初始发布 || '''2016年'''
| 初始发布 || '''2016年'''
|-
|-
| 编程语言 || '''JavaScript'''
| [[编程]]语言 || '''JavaScript'''
|-
|-
| 运行环境 || '''浏览器、Node.js、桌面端'''
| 运行环境 || '''[[浏览器]]、Node.js、桌面端'''
|-
|-
| 许可证 || '''BSD-3-Clause'''
| 许可证 || '''BSD-3-Clause'''
第38行: 第38行:
=== 核心组件 ===
=== 核心组件 ===


Scratch虚拟机的架构围绕两个关键类构建:<code>VirtualMachine</code>与<code>Runtime</code>。<code>VirtualMachine</code>类位于<code>src/virtual-machine.js</code>,作为外部交互的主要接口,负责协调舞台、积木与扩展之间的连接;其内部包含一个<code>runtime</code>实例,来自<code>src/engine/runtime.js</code>,是实际管理程序执行的核心引擎<ref name=":5">[https://blog.csdn.net/gitblog_01166/article/details/153949711 深度解析scratch-vm架构 - CSDN]</ref>。Runtime存储所有关键运行时数据,包括目标对象(角色与舞台)、积木定义与执行逻辑、I/O设备状态(键盘、鼠标、视频等)以及线程调度队列。
Scratch虚拟机的架构围绕两个关键类构建:<code>VirtualMachine</code>与<code>Runtime</code>。<code>VirtualMachine</code>类位于<code>src/virtual-machine.js</code>,作为外部交互的主要接口,负责协调舞台、积木与扩展之间的连接;其内部包含一个<code>runtime</code>实例,来自<code>src/engine/runtime.js</code>,是实际管理程序执行的核心引擎<ref name=":5">[https://blog.csdn.net/gitblog_01166/article/details/153949711 深度解析scratch-vm架构 - CSDN]</ref>。Runtime存储所有关键运行时[[数据]],包括目标对象(角色与舞台)、积木定义与执行逻辑、I/O设备状态(键盘、鼠标、视频等)以及线程调度队列。


=== 抽象语法树 ===
=== 抽象语法树 ===
第60行: 第60行:
=== 运行时监控 ===
=== 运行时监控 ===


虚拟机内置Playground调试环境,开发者启动开发服务器后可访问本地端口查看项目性能实时监控、积木执行次数统计、内存使用跟踪及帧速率分析等数据<ref name=":10">[https://blog.gitcode.com/eaa4c536e6e930ebc1a8e946d787fb3b.html Scratch核心引擎 - GitCode]</ref>。
虚拟机内置Playground调试环境,开发者启动开发[[服务器]]后可访问本地端口查看项目性能实时监控、积木执行次数统计、内存使用跟踪及帧速率分析等数据<ref name=":10">[https://blog.gitcode.com/eaa4c536e6e930ebc1a8e946d787fb3b.html Scratch核心引擎 - GitCode]</ref>。


== 开发与部署 ==
== 开发与部署 ==
第75行: 第75行:


<references />
<references />
[[Category:Scratch]]