Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
这是我的一个Basic编译器+汇编器+虚拟机实现 首先我们进入src文件夹 我们可以看到UnLike由UnLink,UnLike,UnLikeVM组成 分别对应着编译器,连接器和虚拟机 它们中的每一个都可以独立编译。 SChain.h,SString.h,SToken.h是它们共同使用的链表,字符串,词法分析器 UnLike是用来将程序代码编译为虚拟机汇编代码的编译器 ULink是将虚拟机汇编代码编译为虚拟机机器代码的编译器 UnLikeVM则是虚拟机 进入bin文件夹,这里放着已经编译好的UnLike,ULink和UnLikeVM 我们通过命令行编译一个程序代码test.lik 这是test.lik的代码内容 我们通过命令行调用UnLike对test.lik进行编译 它生成虚拟机了虚拟机汇编语言文件test.unl 可以用UnLike生成的虚拟机汇编代码 我们继续使用ULink编译虚拟机汇编代码test.unl 它生成了二进制文件test.ike 我们调用UnLikeVM执行test.ike 通过虚拟机屏蔽了硬件层,因此UnLike可以很容易地移植到各个平台 准确说只要针对这个平台做个虚拟机就可以 并且UnLike虚拟机的构造是很容易的,它只有若干条指令 所以很容易进行移植 由于使用虚拟机,你用UnLike写的程序只需要编译一次,就能 在不同平台上同时运行同样的二进制代码文件 只要该平台上实现了相同的虚拟机