Scratch-VM:修订间差异
创建页面,内容为“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''' | ||
|- | |- | ||
| 运行环境 || '''浏览器、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]] | |||