首页 > 编程语言 > 详细

Python虚拟机需求分析和概念模型分析

时间:2020-12-15 20:00:50      阅读:44      评论:0      收藏:0      [点我收藏+]

一、项目概述

Python是一个动态类型语言,其解释器是一个基于栈式字节码的抽象机器。本项目拟实现一个Python虚拟机,探索支持动态类型语言的虚拟机的设计与实现技术。

二、需求分析:

Python源文件首先被编译成字节码文件,这个文件的后缀是.pyc,然后由Python虚拟机解释并执行这些字节码。Python虚拟机需要做的工作就是读取并解析.pyc文件,然后根据字节码执行相应的计算。

三、用例图

从上面的需求分析可以得到如下的用例:

技术分享图片

四、业务类图

在Python中,一切都是对象,数字、字符串、元组、列表、字典、函数、方法、类、模块等等都是对象。PyObject类是Python中所有类型的基类,整型、浮点型、列表、词典、字符串等类型都继承自它。在pyc文件中,CodeObject结构存放着程序的绝大部分信息,它是程序源代码编译之后的结果,我们用CodeObject类用来保存它的信息。

技术分享图片

Python拥有自动内存管理机制,因此需要一个GC进行所有对象的回收。我们需要一个虚拟机的堆,所有对象的内存分配就在这个堆中进行。

技术分享图片

程序的每一次函数调用都会有一个栈帧与之对应,因此要实现一些数据结构堆函数调用过程进行记录。这里用FrameObject实现栈帧调用。

技术分享图片

五、数据模型

pyc文件以二进制形式读入内存,经由虚拟机分析、运行,不需要数据模型。

Python虚拟机需求分析和概念模型分析

原文:https://www.cnblogs.com/xiop/p/14140083.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!