游戏开发论坛

 找回密码
 立即注册
搜索
查看: 18151|回复: 10

编译器写了一部分,大家帮忙看看(面向过程)

[复制链接]

4

主题

14

帖子

124

积分

灌水组

积分
124
发表于 2024-7-15 17:24:02 | 显示全部楼层 |阅读模式
编译器写了一部分,大家帮忙看看(面向过程)
QQ 1286236708
compiler.zip (18.17 KB, 下载次数: 77)


4

主题

14

帖子

124

积分

灌水组

积分
124
 楼主| 发表于 2024-7-26 14:55:15 | 显示全部楼层
“to C#”的转换器已经全部写好了(包括C#的支持类库)
(这是高级语言转高级语言的转换器,而不是编译器)

PROJECTS CSLib.zip (602.27 KB, 下载次数: 83)

4

主题

14

帖子

124

积分

灌水组

积分
124
 楼主| 发表于 2024-7-30 20:14:41 | 显示全部楼层
大家好 最近决定重构:
compiler编译出来的字节码原本是在vm里运行的,操纵内存地址
现在是编译成中间代码,在“解释器”里运行(解释器支持变量名)

然后to C#的转换器就不需要了,
改为了“商朝字母”(我发明的字,不支持unicode,有6百多字)
直接转换成C#

4

主题

14

帖子

124

积分

灌水组

积分
124
 楼主| 发表于 2024-8-4 13:10:11 | 显示全部楼层
大家好 这两天又觉得,
(支持变量名的)“解释器”的实现太过繁琐了,
所以还是在vm里运行(操纵内存地址)

----但是语法要改得简单,比如说:
if b
do f()
endif
do g()
改成
if b goto _f;
goto _f_end;
_f:
do f()
_f_end:
do g()
再比如说:
x = a + b + c +d
改成
t=a+b
s=t+c
x=s+d
再比如
ret a + b
ret f(x)
改成
t=a+b
ret t
t=f(x)
ret t

4

主题

14

帖子

124

积分

灌水组

积分
124
 楼主| 发表于 2024-8-10 19:33:31 | 显示全部楼层
大家好,这么“简化”代码受不受得了?
答案是 yes

实际的代码里,很少用到 a+b+c
一般就 a+b 就可以了

至于 g(f(x))倒是比较常用,
但是函数嵌套会降低可读性

至于 if b goto label
Basic就是这样的

0

主题

9

帖子

81

积分

注册会员

Rank: 2

积分
81
发表于 2024-9-4 17:18:17 | 显示全部楼层
大家好
我打算放弃*自己*写编译器

VM和ASM早(4年前)就已经写好

以后花钱雇人写,100万日元)
(调用ASM库)

暂时先用我的VM的汇编码

0

主题

9

帖子

81

积分

注册会员

Rank: 2

积分
81
发表于 2024-9-4 18:20:58 | 显示全部楼层
我又打算,继续写

因为:
看了编译原理教材,
都是语法“树”

但是我的语言没有“树”
(因为比如 x=a+b+c => t=a+b; x=t+c)

既然连树都没有,那么就简单多了,
也不需要看编译原理书了。

0

主题

9

帖子

81

积分

注册会员

Rank: 2

积分
81
发表于 2024-10-20 13:06:42 | 显示全部楼层
https://bbs.gameres.com/forum.php?mod=attachment&aid=MTExODMyMHw4NzY3OTIyMjljMWU1NmVmODM1ZDMwYWRlNWIyNjgwOHwxNzMyMTgyODI4&request=yes&_f=.zip

大家好 全部写好了 编译器(C#)
(运行的话需要手工修改path,在Form1.cs里面,否则提示找不到文件路径)


0

主题

9

帖子

81

积分

注册会员

Rank: 2

积分
81
发表于 2024-11-3 04:21:02 | 显示全部楼层
Simulang.rar (722.16 KB, 下载次数: 9)
可执行文件,源代码,例子


0

主题

9

帖子

81

积分

注册会员

Rank: 2

积分
81
发表于 2024-11-3 04:30:34 | 显示全部楼层
Simulang.rar (722.18 KB, 下载次数: 10)

修正一下(Bin, Source, 例子)


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-11-21 17:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表