Skip to content
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

Open
bobcao3 opened this issue Feb 18, 2017 · 17 comments
Open

Comments

@bobcao3
Copy link
Member

bobcao3 commented Feb 18, 2017

e.g. 实现一个pascal支持(gcc太复杂了玩不起

@satgo1546
Copy link
Member

你去看看Free Pascal用户手册有多少页,你就知道Pascal一样玩不起了。

@satgo1546
Copy link
Member

这ASM76又没挑调试工具,指令集又不那么好用(别人一个MOV在这里被拆成了十几种指令),架构又鬼畜……写ASM76已经可以写到吐了,不弄个高级语言看样子是不行了。

@bobcao3
Copy link
Member Author

bobcao3 commented Feb 18, 2017

写个RGSS脚本编辑器等级的高级语言吧

(其实别人的mov也是拆开的,只是拆分的工作交给assembler了

@bobcao3
Copy link
Member Author

bobcao3 commented Feb 18, 2017

你会发现mov $eax, $ebx和mov [0x100c], $eax编译出来是两条不同的指令

@satgo1546
Copy link
Member

Ruby好像更玩不起……

别人的MOV确实是分开的,但是它们都叫MOV啊。这里不仅叫MOV,还叫DAT、MVP……

我觉得我们只能再造一个autocode级别的语言了

@bobcao3
Copy link
Member Author

bobcao3 commented Feb 19, 2017

搞个nasm如何(

@satgo1546
Copy link
Member

高级汇编语言没必要了,因为已经有个ASM76官配汇编器了233
至少得是结构化的,要不然好意思叫高级语言吗……
想来想去还是觉得类似C那种级别的“高级汇编”比较靠谱。
(C++76?不可能。我觉得CMM76就可以了——C Minus Minus 76之类的。
语法弄得越简单越好,比如说前缀表达式什么的都可以,要不然parser不会写就很滑稽了。

@bobcao3
Copy link
Member Author

bobcao3 commented Feb 23, 2017

建议参考语言 FORTRAN 77

https://en.wikibooks.org/wiki/Fortran/Fortran_examples

@satgo1546
Copy link
Member

这examples看了两天,感觉太复杂(啥都复杂还是ASM最好了

@bobcao3
Copy link
Member Author

bobcao3 commented Feb 25, 2017

不不不我们不去实现FORTRAN 90+的特性
FORTRAN 77的就很适合这个项目,毕竟是最接近汇编的编程语言了

@satgo1546
Copy link
Member

其实只是我看得有点晕,不过反正自己造个语言,造成什么样都无所谓了,说参考Fortran 77什么的也只是吸收一下这种精神就好了……

@bobcao3
Copy link
Member Author

bobcao3 commented Feb 26, 2017

我觉得Fortran 77 这样的语言写操作系统至少不会像C++一样到处蛋疼

@bobcao3
Copy link
Member Author

bobcao3 commented May 13, 2018

嗯我毕业了有空把这项目捡起来继续玩了…… 要不把这个虚拟机独立出去?我觉得比较切实际的是为它写一个Lisp编译器。Lisp的语法相当固定,而且也方便解析(1958年的语言…… 比FORTRAN还清晰,所以能被用到现在吧……)

@satgo1546
Copy link
Member

惊了,捡坑还行
Lisp语法是很好看(嗯,好看),就是方言太多了(于是不在乎多加一个VM76Lisp dialect 233
其实选啥语言实现没有那么大关系啦(?),就算自己造一种语言也可以的,目前这个VM的当务之急不是ASM76的语法根本就太丑了吗23333 所以才会想要做个高级语言的嘛。

@bobcao3
Copy link
Member Author

bobcao3 commented May 13, 2018

而且ASM76汇编器的bug有点严重……在扫描tags的时候它会把所有行都算进instruct的大小,然后如果代码里有非代码的内容tag就会错位,刚刚修了。我觉得要不把tag的机制改成一次性直接编译,在编译时检查到tag就留0x0000并把这个tag引用加入替换表。在整个程序编译完再根据替换表把tag放回去

@bobcao3
Copy link
Member Author

bobcao3 commented May 13, 2018

顺便在ASM76 repo里已经完成了VMc和VMexec,成功地完成了一个Hello World,嗯……

我在想,我们是准备硬核一点,用ASM76写这个LISP编译器还是用C写……有点想用ASM76写

@satgo1546
Copy link
Member

用ASM76 emmmmm...
我觉得可以

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants