Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

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写的程序只需要编译一次,就能
在不同平台上同时运行同样的二进制代码文件
只要该平台上实现了相同的虚拟机

About

A languge and Vritual Machine

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages