Open bobcao3 opened 7 years ago
你去看看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 至少得是结构化的,要不然好意思叫高级语言吗…… 想来想去还是觉得类似C那种级别的“高级汇编”比较靠谱。 (C++76?不可能。我觉得CMM76就可以了——C Minus Minus 76之类的。 语法弄得越简单越好,比如说前缀表达式什么的都可以,要不然parser不会写就很滑稽了。
建议参考语言 FORTRAN 77
这examples看了两天,感觉太复杂(啥都复杂还是ASM最好了
不不不我们不去实现FORTRAN 90+的特性 FORTRAN 77的就很适合这个项目,毕竟是最接近汇编的编程语言了
其实只是我看得有点晕,不过反正自己造个语言,造成什么样都无所谓了,说参考Fortran 77什么的也只是吸收一下这种精神就好了……
我觉得Fortran 77 这样的语言写操作系统至少不会像C++一样到处蛋疼
嗯我毕业了有空把这项目捡起来继续玩了…… 要不把这个虚拟机独立出去?我觉得比较切实际的是为它写一个Lisp编译器。Lisp的语法相当固定,而且也方便解析(1958年的语言…… 比FORTRAN还清晰,所以能被用到现在吧……)
惊了,捡坑还行 Lisp语法是很好看(嗯,好看),就是方言太多了(于是不在乎多加一个VM76Lisp dialect 233 其实选啥语言实现没有那么大关系啦(?),就算自己造一种语言也可以的,目前这个VM的当务之急不是ASM76的语法根本就太丑了吗23333 所以才会想要做个高级语言的嘛。
而且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太复杂了玩不起