我设计的单片机C语言编译器,大家看有用吗

[复制链接]
楼主: 0xCC
手机看帖
扫描二维码
随时随地手机跟帖
0xCC|  楼主 | 2010-1-26 14:15 | 显示全部楼层
"标准"的写法:
i=9;
while( i != 0 )
{
      i--;
}
或是
loop(8)
{
}
延时一秒可以这样写:
loop( 250 ) loop( 250 ) {}
其实我主要不是为了争论这个loop, 如果有时间不妨看看其中相对于C语言新增的"元件类型",我认为那才是这个编译器的最重要功能.

使用特权

评论回复
lxyppc| | 2010-1-26 14:24 | 显示全部楼层
"标准"的写法:
其实我主要不是为了争论这个loop, 如果有时间不妨看看其中相对于C语言新增的"元件类型",我认 ...
0xCC 发表于 2010-1-26 14:15

我也不是在争这个loop的写法
我只是想确认一下一些现有的代码能不能用你的这个编译器来编译
因为我认为这才是这个编译器重要的功能

使用特权

评论回复
0xCC|  楼主 | 2010-1-26 14:30 | 显示全部楼层
不能啊,只能修改代码了. 不过我想,如果编译器能移植到AVR和PIC上,那么代码将不必进行任何改动(或仅修改端口)就能正常工作,这样也不错.

使用特权

评论回复
lxyppc| | 2010-1-26 14:35 | 显示全部楼层
不能啊,只能修改代码了. 不过我想,如果编译器能移植到AVR和PIC上,那么代码将不必进行任何改动(或仅修改端口)就能正常工作,这样也不错.
0xCC 发表于 2010-1-26 14:30

呵呵,当年C++出来都不敢这么说啊
楼主可要想清楚了

使用特权

评论回复
0xCC|  楼主 | 2010-1-26 14:49 | 显示全部楼层
电脑和单片机编程是两回事么. 对于移植性,我是这么考虑的, 即所有类型都有固定的长度,如uint8是8位无符号数,
int16是16位无符号数,通过编译器不论在哪种单片机上都有相同的结果. 实际上编程时就好像在一个虚拟的单片机上运行一样,换成另一种单片机时,只要编译器提供了相同的变量类型和语法,源程序就不需改动了. 而标准C变量类型的长度不是确定的,就不太好移植.

使用特权

评论回复
lxyppc| | 2010-1-26 15:12 | 显示全部楼层
但是你的编译器还是不能编译现有代码啊
像我比较懒,要写什么程序的时候先去几大芯片厂的网站看看有没有现成的AppNote
有的话直接就拿过来用了,一般只需要改改配置什么的

使用特权

评论回复
0xCC|  楼主 | 2010-1-26 15:24 | 显示全部楼层
我会在下一版本中增加一个功能齐全的函数库,其中包含24c256,ds18b20等常见芯片的驱动程序.
而且会提供一种专门的语法来处理库函数的配置问题

使用特权

评论回复
xmar| | 2010-1-26 15:24 | 显示全部楼层
记住 不要玩!!
开发国产编译器的大任就降落在楼主的身上了!!______同意17楼的意见。

使用特权

评论回复
arm86| | 2010-1-26 15:29 | 显示全部楼层
唉……
看来还是得继续用keil
楼主努力啊!

使用特权

评论回复
icecut| | 2010-1-26 15:50 | 显示全部楼层
现在语言有那么多种.你还是看看发展史吧.

还有国外代码的层次架构.

啥优势都想占,往往是什么都占不到.

使用特权

评论回复
inter_zhou| | 2010-1-26 17:01 | 显示全部楼层
还是先完成至少能编译像UCOSII那样的源码,并且测试正常之后再考虑新的扩展功能。

使用特权

评论回复
ffxz| | 2010-1-26 18:07 | 显示全部楼层
还是严格支持C的标准好,因为到后面会发觉,自定义的东西很难推广开。

早几年前我写FinC就碰到了类似的问题,所以到了RT-Thread里的finsh shell,就严格使用C的方式。编译器方面,前端语法实际上是非常小非常小的一方面,优化是功力所在,然后是各种各样的后端支持。

使用特权

评论回复
sharpstar| | 2010-1-26 18:18 | 显示全部楼层
学习了

使用特权

评论回复
cauhorse| | 2010-1-26 18:31 | 显示全部楼层
楼主做的尝试不错。
只是,现在C语言编译器不少呵,就算只玩C51,多数人也就算个大众化的IDE直接弄了。
随便提的建议:
要是整成这样:图形化编程,最好能和别的软件做接口,比方Matlab/Simulink,弄个框图,一编译,直接下载到MCU运行。这种“硬件在回路”的东西现在还是有些市场的,至少专门做控制算法的一些人能用得上。国外这东西现在卖得爆贵。。呵呵。

使用特权

评论回复
0xCC|  楼主 | 2010-1-26 18:47 | 显示全部楼层
楼主做的尝试不错。
只是,现在C语言编译器不少呵,就算只玩C51,多数人也就算个大众化的IDE直接弄了。

cauhorse 发表于 2010-1-26 18:31

呵呵,我的目标是设计一个和任何单片机无关的编译器,也就是说编译器的语法对于每种单片机都是完全一致的,这样一种单片机上的程序有可能不做改动就能在另一种单片机上运行,例如在MCS51上编了个俄罗斯方块,只要编译器移植到AVR上,那么这个俄罗斯方块程序不用修改就可以在AVR中运行.  多好啊!  以后就向着这个方向努力!

使用特权

评论回复
ningling_21| | 2010-1-26 19:10 | 显示全部楼层
本帖最后由 ningling_21 于 2010-1-26 19:15 编辑

不错,强人很多...
用什么打开呢?

使用特权

评论回复
McuPlayer| | 2010-1-26 20:40 | 显示全部楼层
楼主做得很不错。

使用特权

评论回复
aniu27| | 2010-1-27 15:58 | 显示全部楼层
21里面确实藏龙卧虎,以后要多逛逛

使用特权

评论回复
wwwq| | 2010-1-27 22:29 | 显示全部楼层
好样的,我们也在做编译器,我们聊聊。QQ563996855

使用特权

评论回复
xjavr| | 2010-1-28 15:48 | 显示全部楼层
呵呵,我的目标是设计一个和任何单片机无关的编译器,也就是说编译器的语法对于每种单片机都是完全一致的,这样一种单片机上的程序有可能不做改动就能在另一种单片机上运行,例如在MCS51上编了个俄罗斯方块,只要编译器 ...
0xCC 发表于 2010-1-26 18:47


你说的这个和当年JAVA初衷是一样的,所以后面多了个JAVA的虚拟机,你不会也来个虚拟机吧。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则