-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
是否要设计一个基于ASM76的高级语言,或者说底层实现? #14
Comments
你去看看Free Pascal用户手册有多少页,你就知道Pascal一样玩不起了。 |
这ASM76又没挑调试工具,指令集又不那么好用(别人一个MOV在这里被拆成了十几种指令),架构又鬼畜……写ASM76已经可以写到吐了,不弄个高级语言看样子是不行了。 |
写个RGSS脚本编辑器等级的高级语言吧 (其实别人的mov也是拆开的,只是拆分的工作交给assembler了 |
你会发现mov $eax, $ebx和mov [0x100c], $eax编译出来是两条不同的指令 |
Ruby好像更玩不起…… 别人的MOV确实是分开的,但是它们都叫MOV啊。这里不仅叫MOV,还叫DAT、MVP…… 我觉得我们只能再造一个autocode级别的语言了 |
搞个nasm如何( |
高级汇编语言没必要了,因为已经有个ASM76官配汇编器了233 |
建议参考语言 FORTRAN 77 |
这examples看了两天,感觉太复杂(啥都复杂还是ASM最好了 |
不不不我们不去实现FORTRAN 90+的特性 |
其实只是我看得有点晕,不过反正自己造个语言,造成什么样都无所谓了,说参考Fortran 77什么的也只是吸收一下这种精神就好了…… |
我觉得Fortran 77 这样的语言写操作系统至少不会像C++一样到处蛋疼 |
嗯我毕业了有空把这项目捡起来继续玩了…… 要不把这个虚拟机独立出去?我觉得比较切实际的是为它写一个Lisp编译器。Lisp的语法相当固定,而且也方便解析(1958年的语言…… 比FORTRAN还清晰,所以能被用到现在吧……) |
惊了,捡坑还行 |
而且ASM76汇编器的bug有点严重……在扫描tags的时候它会把所有行都算进instruct的大小,然后如果代码里有非代码的内容tag就会错位,刚刚修了。我觉得要不把tag的机制改成一次性直接编译,在编译时检查到tag就留0x0000并把这个tag引用加入替换表。在整个程序编译完再根据替换表把tag放回去 |
顺便在ASM76 repo里已经完成了VMc和VMexec,成功地完成了一个Hello World,嗯…… 我在想,我们是准备硬核一点,用ASM76写这个LISP编译器还是用C写……有点想用ASM76写 |
用ASM76 emmmmm... |
e.g. 实现一个pascal支持(gcc太复杂了玩不起
The text was updated successfully, but these errors were encountered: