我来我网
https://5come5.cn
您尚未
登录
注册
|
菠菜
|
软件站
|
音乐站
|
邮箱1
|
邮箱2
|
风格选择
|
更多 »
vista
鍙よ壊涔﹂
card
wind
绮夌孩濂抽儙
帮助
统计与排行
无图版
我来我网·5come5 Forum
»
电脑技术
»
Linux专区
»
写了个编译器,放出来,大家看看
«
1
2
»
Pages: ( 1/2 total )
交 易
投 票
本页主题:
写了个编译器,放出来,大家看看
显示签名
|
打印
|
加为IE收藏
|
收藏主题
|
上一主题
|
下一主题
蜀山狂斩
∷
性别:
保密
∷
状态:
∷
等级:
希望之光
∷
发贴:
1981
∷
威望:
1
∷
浮云:
1435
∷
在线等级:
∷
注册时间: 2004-02-27
∷
最后登陆: 2011-11-23
【
复制此帖地址
只看此人回复
】
5come5帮你背单词 [
outcome
/'autk
ə
m/
n. 结果,后果,成果
]
写了个编译器,放出来,大家看看
解压后,直接"make all"就可以了
实现的语言是
C-(不是C哈,文法和C相似而已)
,文法是kenneth c.louden给出的,实现的时候,改了一下,主要是数组做参数的时候要加方括号.
实现的时候我暂时把数组大小限定为10,每个程序允许最多20个函数,主要是我很多地方数组实现.
全局变量可以声明在所有的函数之外,也可以声明在main的里面.
程序的执行入口地址为main
salad把源文件编译为中间代码,就是tm虚拟机(由K.C.L实现,我只稍微改了一下)的汇编,我没有直接生成unix下的汇编,主要是考虑移植性,弄成java那种形式的样子,然后用虚拟机执行生成的以.tm结尾的文件,
包里面有两个例子程序.
写了10天,还是有点成就感,主要是调试了N久,汗一个,终于搞出来了.
注意,包的后缀要改为 .tar,gz 然后再解压
差点忘了,用tm执行.tm结尾的中间汇编文件的时候,会首先提示输入命令,输入g就可以了代表开始运行,比较古老哈
还有数组要声明在所有函数之外,必须为全局,同时,所有全局变量要先声明,再赋值.
[ 此贴被蜀山狂斩在2005-09-17 23:03重新编辑 ]
Posted: 2005-09-06 22:29 |
[楼 主]
蜀山狂斩
∷
性别:
保密
∷
状态:
∷
等级:
希望之光
∷
发贴:
1981
∷
威望:
1
∷
浮云:
1435
∷
在线等级:
∷
注册时间: 2004-02-27
∷
最后登陆: 2011-11-23
【
复制此帖地址
只看此人回复
】
5come5帮你背单词 [
treasury
/'tre
3
ə
ri/
n. 宝库,国库,金库,文库
]
编译时,-S参数为源程序回显,-s参数为显示扫描过程,-p为显示语法分析结果,一个语法树,-t为显示符号表的情况.
Posted: 2005-09-06 22:30 |
[1 楼]
weigun
∷
性别:
∷
状态:
∷
头衔:
逍遥王(常驻5COME5理事)
∷
等级:
荣誉会员
∷
发贴:
6441
∷
威望:
1
∷
浮云:
831
∷
在线等级:
∷
注册时间: 2004-05-20
∷
最后登陆: 2009-10-16
【
复制此帖地址
只看此人回复
】
5come5帮你背单词 [
lawn
/lo:n/
n. 草地,草坪
]
技术人员...
国家得基层建设靠你们了...
Posted: 2005-09-06 22:35 |
[2 楼]
蜀山狂斩
∷
性别:
保密
∷
状态:
∷
等级:
希望之光
∷
发贴:
1981
∷
威望:
1
∷
浮云:
1435
∷
在线等级:
∷
注册时间: 2004-02-27
∷
最后登陆: 2011-11-23
【
复制此帖地址
只看此人回复
】
5come5帮你背单词 [
hearty
/'ha:ti/
ad. 诚恳的,衷心的,亲切的
]
支持递归和函数的功能,估计bug N多,目前只支持整型
没有类型检查,大家最好程序直接写正确,编译的检查功能很差,只能检查一下词法和语法上的基本错误.
Posted: 2005-09-06 22:46 |
[3 楼]
nicky1452
∷
性别:
保密
∷
状态:
∷
等级:
希望之光
∷
发贴:
1951
∷
威望:
0
∷
浮云:
1155
∷
在线等级:
∷
注册时间: 2003-07-03
∷
最后登陆: 2006-11-01
【
复制此帖地址
只看此人回复
】
5come5帮你背单词 [
maize
/meiz/
n. 玉米
]
顶,牛人
Posted: 2005-09-06 22:49 |
[4 楼]
u0u0
∷
性别:
∷
状态:
∷
头衔:
韩剧主力(曾经),FreeBSD fans
∷
等级:
荣誉会员
∷
发贴:
4710
∷
威望:
6
∷
浮云:
578
∷
在线等级:
∷
注册时间: 2003-11-22
∷
最后登陆: 2011-01-13
【
复制此帖地址
只看此人回复
】
5come5帮你背单词 [
straw
/stro:/
n. 稻草,麦杆,吸管
]
我的编程技术。。。唉!!!
明天编译看看,有bug我提交上了。
Posted: 2005-09-06 22:57 |
[5 楼]
chasedreamer
∷
性别:
∷
状态:
∷
等级:
人见人爱
∷
发贴:
2491
∷
威望:
0
∷
浮云:
1105
∷
在线等级:
∷
注册时间: 2004-08-24
∷
最后登陆: 2009-05-12
【
复制此帖地址
只看此人回复
】
5come5帮你背单词 [
straw
/stro:/
n. 稻草,麦杆,吸管
]
我看了怎么没有看懂呢
Posted: 2005-09-06 22:58 |
[6 楼]
u0u0
∷
性别:
∷
状态:
∷
头衔:
韩剧主力(曾经),FreeBSD fans
∷
等级:
荣誉会员
∷
发贴:
4710
∷
威望:
6
∷
浮云:
578
∷
在线等级:
∷
注册时间: 2003-11-22
∷
最后登陆: 2011-01-13
【
复制此帖地址
只看此人回复
】
5come5帮你背单词 [
infection
/in'fek
∫
ə
n/
vt. 传染(病),影响
]
helloworld编译不过。
Quote:
#include<stdio.h>
int main()
{
printf("%s\n","hello world");
return 0;
}
#./salad hello.c
然后就是无限循环
>>> Syntax error at line 1: unexpected token -> ERROR: #
Posted: 2005-09-07 15:03 |
[7 楼]
蜀山狂斩
∷
性别:
保密
∷
状态:
∷
等级:
希望之光
∷
发贴:
1981
∷
威望:
1
∷
浮云:
1435
∷
在线等级:
∷
注册时间: 2004-02-27
∷
最后登陆: 2011-11-23
【
复制此帖地址
只看此人回复
】
5come5帮你背单词 [
sieve
/siv/
n. 筛,滤器;vt. 筛,滤
]
晕,我实现的这个语言不是C,只是语法和C基本一样,是完全新的,所以根本没有库的概念,除非自己写程序,再包含进去.而且我还没有包含#include命令.
相当于是一个全新的语言,现在是一片空白,只能按相应的语法规则编程,其它什么都没有.
可以用while,if等语句.
不是C的编译器哈,是模仿C的语法的一gate新的语言,不过很瓜的那种
而且你用了printf,这是C的库函数,不能用,现在的IO只能用input和output来实现,只有这两条语句.
其实我写这个编译器主要实践编译原理中的一些概念,想实践一下,基本没有什么实际的作用.不过对编译器的基本理论基础比较熟了.
如果要使用,我觉得要用汇编写,还要自己写很多API,不是一个人能干的
Posted: 2005-09-07 22:38 |
[8 楼]
蜀山狂斩
∷
性别:
保密
∷
状态:
∷
等级:
希望之光
∷
发贴:
1981
∷
威望:
1
∷
浮云:
1435
∷
在线等级:
∷
注册时间: 2004-02-27
∷
最后登陆: 2011-11-23
【
复制此帖地址
只看此人回复
】
5come5帮你背单词 [
again
/
ə
'gein,
ə
'gen/
ad. 再,又,倍
]
如果要论实际作用,我只觉得它有一小部分fortran的作用...
对了,目前只有整型变量可以用
,等考完研,再来弄其它的.
大体程序应该这样写
int...... 变量声明
void or int Function(args)
{ .....函数部分,最多可以定义20个函数
...
...
}
void main(void)
{ .....主函数部分
int ...
while...
if...
}
其实是我自己没有说清楚,我会写一个文档,详细阐述语法和实现方法
[ 此贴被蜀山狂斩在2005-09-07 22:59重新编辑 ]
Posted: 2005-09-07 22:44 |
[9 楼]
rockins
∷
性别:
保密
∷
状态:
∷
等级:
论坛贵宾
∷
发贴:
261
∷
威望:
0
∷
浮云:
544
∷
在线等级:
∷
注册时间: 2003-12-02
∷
最后登陆: 2006-04-23
【
复制此帖地址
只看此人回复
】
5come5帮你背单词 [
due
/dju:/
a. 预定的,应得的,应有的,充分的,到期的
]
向楼主学习。。。
Posted: 2005-09-07 23:31 |
[10 楼]
rockins
∷
性别:
保密
∷
状态:
∷
等级:
论坛贵宾
∷
发贴:
261
∷
威望:
0
∷
浮云:
544
∷
在线等级:
∷
注册时间: 2003-12-02
∷
最后登陆: 2006-04-23
【
复制此帖地址
只看此人回复
】
5come5帮你背单词 [
expertise
/eksp
ə
'ti:z/
n. 专门,知识,专长
]
敬个礼先。。。
Posted: 2005-09-07 23:31 |
[11 楼]
u0u0
∷
性别:
∷
状态:
∷
头衔:
韩剧主力(曾经),FreeBSD fans
∷
等级:
荣誉会员
∷
发贴:
4710
∷
威望:
6
∷
浮云:
578
∷
在线等级:
∷
注册时间: 2003-11-22
∷
最后登陆: 2011-01-13
【
复制此帖地址
只看此人回复
】
5come5帮你背单词 [
voice
/vois/
n. 声音,嗓音,发言权
]
C-啊!
没听说过。
Posted: 2005-09-08 08:36 |
[12 楼]
蜀山狂斩
∷
性别:
保密
∷
状态:
∷
等级:
希望之光
∷
发贴:
1981
∷
威望:
1
∷
浮云:
1435
∷
在线等级:
∷
注册时间: 2004-02-27
∷
最后登陆: 2011-11-23
【
复制此帖地址
只看此人回复
】
5come5帮你背单词 [
ms.
/mis/
(对婚姻状况不明的女子的称呼)女士
]
C-就是为了便于学生学习实践,把C的文法简化了的新语言.也可以叫其它的,只是未了尊重C,毕竟是从它学的
你可以找到C的文法,自己改一下,你可以称为C--,或其它的想怎么就怎么.
设计文法的人一般都是语言大师,而实现文法的人就是编译器的作者.
Posted: 2005-09-08 11:05 |
[13 楼]
蜀山狂斩
∷
性别:
保密
∷
状态:
∷
等级:
希望之光
∷
发贴:
1981
∷
威望:
1
∷
浮云:
1435
∷
在线等级:
∷
注册时间: 2004-02-27
∷
最后登陆: 2011-11-23
【
复制此帖地址
只看此人回复
】
5come5帮你背单词 [
tabulate
/'t
æ
bjuleit/
vt. 将(事实、数据等)列成表,列表显示
]
包里面有两个例子程序,这个语言的编程格式应该按照那两个例子的语法来写.
Posted: 2005-09-08 11:10 |
[14 楼]
«
1
2
»
Pages: ( 1/2 total )
快速跳至
|- 站务管理
|- 惩罚,奖励公布区
|- 会员咨询意见区
|- 申请区
|- 已批准申请区
|- 威望和荣誉会员推荐区
|- 5come5名人堂·Hall of Fame
>> 休闲娱乐
|- 灌水乐园 大杂烩
|- 精水区
|- 幽默天地
|- 开怀大笑(精华区)
|- 灵异空间
|- 运动新时空·菠菜交流
|- 动之风.漫之舞
|- 新货上架
|- 古董挖挖
|- 唯美贴图
|- 创意&美化&设计
|- 5COME5头像及签名档图片引用专区
|- 艺术摄影
|- 音乐咖啡屋
|- 音道乐经
>> 热点讨论
|- 工作交流
|- 求职信息
|- 就业精华区
|- 同城联谊
|- 留学专版
|- 情感物语
|- 情感物语精华区
|- 带走一片银杏叶
|- 精华区
|- 新闻直通车
|- 众志成城,抗震救灾
|- 衣食住行
|- 跳蚤市场
|- 旅游出行
>> 学术交流
|- 学业有成
|- 智力考场
|- 考研专版
|- 外语乐园
|- 考试·毕业设计
|- 电子设计·数学建模
|- 学生工作·社团交流·RX
|- 电脑技术
|- 电脑F.A.Q.
|- 软件交流
|- 硬件·数码
|- 程序员之家
|- Linux专区
|- 舞文弄墨
|- 历史&文化
|- 军临天下
|- 军事精华区
|- 财经频道
>> 游戏新干线[电子竞技俱乐部]
|- Blizz@rd游戏特区
|- WarCraft III
|- 魔兽区档案库
|- 魔兽争霸3博彩专区
|- StarCraft(new)
|- 暗黑专区
|- 休闲游戏区
|- PC GAME综合讨论区
|- 实况足球专区
|- Counter-Strike专区
|- TV GAME& 模拟器
|- 网络游戏
>> 资源交流
|- 恋影部落
|- 连续剧天地
|- 综艺开心档
|- 书香小筑
|- 小说发布
|- 资源交流
|- 综艺、体育、游戏资源发布
|- 音乐资源发布区
|- 电影电视剧发布区
|- 字幕园地
我来我网·5come5 Forum
»
Linux专区
Total 0.019086(s) query 7, Time now is:12-23 06:05, Gzip enabled
Powered by PHPWind v5.3, Localized by
5come5 Tech Team
,
黔ICP备16009856号