From 74d4a6d5ec1cd90a5fd89005a01f195a79e9abbd Mon Sep 17 00:00:00 2001 From: gitee-bot Date: Fri, 20 Jun 2025 08:09:57 +0000 Subject: [PATCH] Update README.md --- README.md | 94 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 60 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index b983eab..685c04a 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,62 @@ -# PixtronVM - 轻量级类型安全栈式虚拟机 -
- logo -
-**PixtronVM** 是一款专为高性能场景设计的静态类型栈式虚拟机,通过显式类型标注和字节码优化,在资源受限环境中提供安全高效的代码执行能力。 - -## 核心特性 - -✅ **静态类型系统** -通过字节码级别的显式类型标注,消除运行时类型错误,确保执行安全 - -🚀 **高性能执行** -优化栈式架构配合寄存器缓存机制,实现接近本地代码的执行效率 - -📦 **极简轻量设计** -核心引擎 < 50KB 内存占用,适合嵌入式设备运行 - -🔒 **内存安全保证** -内置边界检查与安全隔离机制,防止越界访问 - -⚙️ **可扩展架构** -模块化设计支持自定义指令集和硬件适配层 - -## 技术架构 - -```mermaid -graph TD - A[源代码] --> B[编译器前端] - B --> C[静态类型字节码] - C --> D[PixtronVM 执行引擎] - D --> E[类型验证器] - E --> F[优化执行器] - F --> G[安全沙箱] - G --> H[目标平台] \ No newline at end of file +PixtronVM - 轻量级类型安全栈式虚拟机 +==== +PixtronVM 是一个轻量级且注重类型安全的栈式虚拟机实现,适用于嵌入式场景及教学用途。 + +核心特性 +---- +- **类型安全**:通过严格的类型检查机制确保运行时数据的正确性。 +- **栈式架构**:基于栈的指令执行模型,简化了指令集的设计和实现。 +- **内存管理**:提供简单的内存分配和释放接口,便于资源控制。 +- **跨平台支持**:使用标准C编写,支持多平台构建和运行。 + +技术架构 +---- +PixtronVM 由多个模块组成,涵盖字节码读取、执行引擎、类处理、内存管理、字符串工具和虚拟栈等组件,确保虚拟机的高效运行。配套的汇编工具链支持将高级脚本编译为虚拟机可执行的字节码。 + +目录结构说明 +---- +- **根目录**:包含虚拟机核心源码文件(如 `Engine.c`, `Klass.c`, `VM.c` 等)。 +- **`include/`**:提供核心模块的头文件(如 `VM.h`, `Klass.h`, `Type.h` 等)。 +- **`assembler/`**:实现了一个基于Java的汇编器,用于将 `.s` 汇编文件转换为虚拟机可执行的字节码。 + - 汇编器入口类为 `Assembler.java`。 + - 包含词法分析 (`Tokenizer.java`)、语法解析 (`Parser.java`) 以及代码生成 (`ASTBuilder.java`)。 + - 示例汇编文件:`assembler/example/HelloWorld.s`。 +- **`tests/`**:提供单元测试及集成测试代码,验证虚拟机的功能。 + +构建与运行 +---- +### 在本地构建 PixtronVM +1. 确保安装了 CMake 和 C 编译器(如 GCC)。 +2. 执行以下命令: + ```bash + mkdir build && cd build + cmake .. + make + ``` + +### 使用汇编器生成字节码 +1. 确保安装了 Java 和 Gradle。 +2. 进入 `assembler/` 目录并运行: + ```bash + ./gradlew assemble + ``` +3. 使用 `Assembler.java` 将 `.s` 汇编文件转换为虚拟机可执行的字节码。 + +示例:运行 HelloWorld 汇编程序 +--- +1. 使用 `assembler/example/HelloWorld.s` 编译生成字节码。 +2. 调用虚拟机运行字节码: + ```c + VM *vm = PixtronVM_CreateVM("path_to_compiled_bytecode"); + PixtronVM_LaunchVM(vm, "HelloWorld", 0, NULL); + ``` + +贡献 +---- +欢迎提交 Issue 和 Pull Request!请确保代码风格一致,并提供清晰的提交说明。 + +许可证 +---- +本项目采用 MIT 许可证,请查看 `LICENSE.txt` 文件获取详细信息。 \ No newline at end of file -- Gitee