找回密码
 注册
快捷导航
楼主: endless-rain

极度郁闷!一个一千多行的编译程序让我头大!

 关闭 [复制链接] |自动提醒
阅读字号:

4566

回帖

5

积分

2455

资产值

中级会员 Rank: 2Rank: 2

注册时间
2003-6-5
铜牌荣誉勋章(注册8年以上会员)
发表于 2003-12-2 23:33:45| 字数 107| - 中国–浙江–绍兴 电信 | 显示全部楼层
QUOTE:
Originally posted by drculax at 2003-12-2 23:28:



也是~有空多让两人接触接触;)
我们其他的人顺便骗饭吃

男孩现在一定偷着乐了正在暗暗猜测:要是俺的雷管看到这些会怎么想呢?
回复 支持 反对

使用道具 举报

14

回帖

0

积分

7

资产值

入门会员 Rank: 1

注册时间
2003-11-30
发表于 2003-12-3 03:13:01| 字数 47| - 中国–上海–上海 电信/复旦大学南/东区学生公寓 | 显示全部楼层
姐姐加油!!刚才写毛思论文到这天(夜里3:17)还差不少,也挺郁闷的.明天还有好多事情.

加油啊
回复 支持 反对

使用道具 举报

715

回帖

3

积分

1543

资产值

初级会员 Rank: 1

注册时间
2002-8-26
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2003-12-3 03:20:21| 字数 10| - 中国–浙江–温州 电信 | 显示全部楼层
化整为零、分而治之。
每天都精彩!
回复 支持 反对

使用道具 举报

136

回帖

1

积分

99

资产值

初级会员 Rank: 1

注册时间
2003-2-24
铜牌荣誉勋章(注册8年以上会员)
发表于 2003-12-3 03:35:10| 字数 34| - 中国–上海–上海 鹏博士宽带 | 显示全部楼层
决到,这个有yacc和lex的呀,小写一个教本,run一下就ok来~
回复 支持 反对

使用道具 举报

2065

回帖

1

积分

4092

资产值

初级会员 Rank: 1

注册时间
2002-6-28
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2003-12-3 09:51:09| 字数 57| - 中国–江苏–苏州–吴江区 电信/台达厂 | 显示全部楼层
小声的问一句:RAIN的编译程序是用什么语言写的?C吗?
我的理解是你写了一个C++的编译器,但不知你用什么语言写的
既然选择了远方,我便只顾风雨兼程...
回复 支持 反对

使用道具 举报

2万

回帖

2

积分

1万

资产值

初级会员 Rank: 1

注册时间
2003-4-9
铜牌荣誉勋章(注册8年以上会员)
发表于 2003-12-3 10:15:28| 字数 98| - 中国–上海–上海 电信 | 显示全部楼层
QUOTE:
Originally posted by kanazi at 2003-12-2 23:33:

男孩现在一定偷着乐了正在暗暗猜测:要是俺的雷管看到这些会怎么想呢?




???雷管到底是啥意思???请指教!
聋子听哑巴说瞎子看到了鬼
理性是个力气活儿

还好会长不嫩古董玩
回复 支持 反对

使用道具 举报

551

回帖

2

积分

790

资产值

禁止发言

注册时间
2003-8-2
铜牌荣誉勋章(注册8年以上会员)
 楼主| 发表于 2003-12-3 10:59:22| 字数 72| - 中国–河北–邢台 联通 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

846

回帖

0

积分

716

资产值

入门会员 Rank: 1

注册时间
2003-6-23
铜牌荣誉勋章(注册8年以上会员)
发表于 2003-12-3 11:02:19| 字数 13| - 中国–上海–上海–长宁区 电信/富丽网吧 | 显示全部楼层
你这时候也在线啊,逃课了吧
A30P-65U+256M
R61e-A56+2G
回复 支持 反对

使用道具 举报

551

回帖

2

积分

790

资产值

禁止发言

注册时间
2003-8-2
铜牌荣誉勋章(注册8年以上会员)
 楼主| 发表于 2003-12-3 11:27:22| 字数 17| - 中国–河北–邢台 联通 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

551

回帖

2

积分

790

资产值

禁止发言

注册时间
2003-8-2
铜牌荣誉勋章(注册8年以上会员)
 楼主| 发表于 2003-12-3 11:29:51| 字数 124| - 中国–河北–邢台 联通 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

551

回帖

2

积分

790

资产值

禁止发言

注册时间
2003-8-2
铜牌荣誉勋章(注册8年以上会员)
 楼主| 发表于 2003-12-3 11:33:34| 字数 206| - 中国–河北–邢台 联通 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

506

回帖

1

积分

1337

资产值

初级会员 Rank: 1

注册时间
2003-4-1
铜牌荣誉勋章(注册8年以上会员)
发表于 2003-12-3 11:34:05| 字数 101| - 中国–上海–上海–普陀区 电信 | 显示全部楼层
QUOTE:
Originally posted by endless-rain at 2003-12-3 11:29 AM:

呵呵
他比我小2岁多呢
当我弟弟差不多
不过
我是不收弟弟的 觉得好肉麻的说:P:cool:



收哥哥吗?
回复 支持 反对

使用道具 举报

826

回帖

1

积分

1330

资产值

初级会员 Rank: 1

注册时间
2002-3-11
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2003-12-3 11:50:46| 字数 47| - 中国–上海–上海–黄浦区 电信 | 显示全部楼层
如果你是读广告或者是市场的,我就保证提供优质枪稿,呵呵。

程序。。。。学是学过,都还给老师了:(
T60 2007BF6   1g ddr2 667
回复 支持 反对

使用道具 举报

551

回帖

2

积分

790

资产值

禁止发言

注册时间
2003-8-2
铜牌荣誉勋章(注册8年以上会员)
 楼主| 发表于 2003-12-3 12:27:48| 字数 51| - 中国–上海–上海 电信 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

2万

回帖

216

积分

2万

资产值

至尊会员II Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2002-8-27
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)金牌荣誉勋章(注册20年以上会员)
发表于 2003-12-3 12:34:18| 字数 100| - 中国–北京–北京 鹏博士BGP | 显示全部楼层
去图书馆查资料,天下文章一大抄。你们老师也不会仔细看。

当然如果时间充裕,而且想对得起自己一直以来的努力,就把编译程序从头到尾分析一遍
对于每行代码,所有可能遇到的问题都列举一下,为什么这行代码写成这样。
爵爷:我把这个问题留给读者。
我:做个没好处不主动去赞美的人。
你们:星宿老仙,德配天地,威震寰宇,古今无比
回复 支持 反对

使用道具 举报

551

回帖

2

积分

790

资产值

禁止发言

注册时间
2003-8-2
铜牌荣誉勋章(注册8年以上会员)
 楼主| 发表于 2003-12-3 12:41:53| 字数 34| - 中国–上海–上海 电信 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

2065

回帖

1

积分

4092

资产值

初级会员 Rank: 1

注册时间
2002-6-28
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2003-12-3 13:57:19| 字数 129| - 中国–江苏–苏州–吴江区 电信/台达厂 | 显示全部楼层
QUOTE:
Originally posted by endless-rain at 2003-12-3 12:41 PM:
也不是
是对自己写的程序进行说明分析 编程思路
一个是JAVA的 一个是C的

废话还不会说啊,什么个有中国特色,三个代表的一大堆,保证看得你的导师心花“怒”放
既然选择了远方,我便只顾风雨兼程...
回复 支持 反对

使用道具 举报

603

回帖

0

积分

716

资产值

禁止发言

注册时间
2003-7-24
铜牌荣誉勋章(注册8年以上会员)
发表于 2003-12-3 14:12:41| 字数 52| - 中国–上海–上海–浦东新区 电信 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

2065

回帖

1

积分

4092

资产值

初级会员 Rank: 1

注册时间
2002-6-28
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2003-12-3 14:23:56| 字数 179| - 中国–江苏–苏州–吴江区 电信/台达厂 | 显示全部楼层
QUOTE:
Originally posted by endless-rain at 2003-12-3 11:33 AM:

不是
看了程序你就知道
及其郁闷之中
打死我我也不当编程人员
但是这个学分我是很想要的
不然过年要过不好了:(
下周还有40页的实验报告和程序设计在等我呢
我真的要被逼上绝路了:(
有哪位懂JAVA或算 ...


时间太忙,下载看了一眼大概,打屁股的说,不写注释——通病
既然选择了远方,我便只顾风雨兼程...
回复 支持 反对

使用道具 举报

6418

回帖

7

积分

7115

资产值

中级会员 Rank: 2Rank: 2

注册时间
2003-7-23
铜牌荣誉勋章(注册8年以上会员)
发表于 2003-12-3 14:43:49| 字数 15| - 中国–上海–上海 移动 | 显示全部楼层
这个是题目,不是RAIN写的.
曾经的精英A900移动PC>T21>R31>A30>T30>A31>A31P.现在的T60/2007-72F;T61/7665-FC9;T400/2767-MC6;T500/2055-CD7;T420/4180-EU1
回复 支持 反对

使用道具 举报

194

回帖

0

积分

51

资产值

入门会员 Rank: 1

注册时间
2003-10-16
铜牌荣誉勋章(注册8年以上会员)
发表于 2003-12-3 14:48:00| 字数 85| - 中国–江苏–常州 电信 | 显示全部楼层
QUOTE:
Originally posted by 远方 at 2003-12-3 02:23 PM:


时间太忙,下载看了一眼大概,打屁股的说,不写注释——通病


该打
注释极少
怎么看?
:)
回复 支持 反对

使用道具 举报

1万

回帖

11

积分

1万

资产值

高级会员 Rank: 2Rank: 2

注册时间
2003-6-2
铜牌荣誉勋章(注册8年以上会员)
发表于 2003-12-3 16:42:13| 字数 105| - 中国–上海–上海 东方有线 | 显示全部楼层
QUOTE:
Originally posted by endless-rain at 2003-12-3 11:29 AM:

呵呵
他比我小2岁多呢
当我弟弟差不多
不过
我是不收弟弟的 觉得好肉麻的说:P:cool:


嘿?嘿嘿……嘿嘿嘿
®™ 世风日下,人心不古,长此以往,国将不国...
回复 支持 反对

使用道具 举报

846

回帖

0

积分

716

资产值

入门会员 Rank: 1

注册时间
2003-6-23
铜牌荣誉勋章(注册8年以上会员)
发表于 2003-12-4 12:25:54| 字数 63| - 中国–上海–上海 电信 | 显示全部楼层
QUOTE:
Originally posted by 没故事的男孩 at 2003-12-3 04:42 PM:


嘿?嘿嘿……嘿嘿嘿

节哀。。。
A30P-65U+256M
R61e-A56+2G
回复 支持 反对

使用道具 举报

136

回帖

1

积分

99

资产值

初级会员 Rank: 1

注册时间
2003-2-24
铜牌荣誉勋章(注册8年以上会员)
发表于 2003-12-4 15:52:09| 字数 165| - 中国–上海–上海 鹏博士宽带 | 显示全部楼层
我靠,这种东西竟然手工写,你们老师明显白吃+脑瘫。
这种能用有限自动机跑出来的东西根本没有必要手写的呀,
不然yacc和lex就没有必要开发出来吗~受不了阿
不过话说回来,这年头变态的老师死不光,没有办法的事情拉
送楼主一句话“生活就像强奸,如果不能挣扎,不如静静享受”
虽然有点粗俗,但是事实如此


真没想到
上海还有比我们学校更加变态的学校
回复 支持 反对

使用道具 举报

136

回帖

1

积分

99

资产值

初级会员 Rank: 1

注册时间
2003-2-24
铜牌荣誉勋章(注册8年以上会员)
发表于 2003-12-4 15:53:56| 字数 4,452| - 中国–上海–上海 鹏博士宽带 | 显示全部楼层
package Parse;

%%

%implements Lexer
%function nextToken
%type java_cup.runtime.Symbol
%char

%state COMMENT

ALPHA=[A-Za-z]
DIGIT=[0-9]
NEW_LINE=(\n\r|\r\n|\n)
NONNEWLINE_WHITE_SPACE_CHAR=[\ \t\b]
STRING_TEXT=(\\\"|[^\n\r\"])*
COMMENT_TEXT=([^/*\n\r]|[^*\n\r]"/"[^*\n\r]|[^/\n\r]"*"[^/\n\r]|"*"[^/\n\r]|"/"[^*\n\r])*
%{

private int comment_count = 0;

private void newline() {
  errorMsg.newline(yychar);
}

private void err(int pos, String s) {
  errorMsg.error(pos,s);
}

private void err(String s) {
  err(yychar,s);
}

private java_cup.runtime.Symbol tok(int kind, Object value) {
    return new java_cup.runtime.Symbol(kind, yychar, yychar+yylength(), value);
}

private ErrorMsg.ErrorMsg errorMsg;

Yylex(java.io.InputStream s, ErrorMsg.ErrorMsg e) {
  this(s);
  errorMsg=e;
}

%}

%eofval{
        {
         if(comment_count!=0) err(yychar, "comment block end '*/' missing at end of file");
         return tok(sym.EOF, null);
        }
%eofval}      


%%



<YYINITIAL> "," { return tok(sym.COMMA, null); /* punctuation symbols....  */ }
<YYINITIAL> ":" { return tok(sym.COLON, null); }
<YYINITIAL> ";" { return tok(sym.SEMICOLON, null); }
<YYINITIAL> "(" { return tok(sym.LPAREN, null); }
<YYINITIAL> ")" { return tok(sym.RPAREN, null); }
<YYINITIAL> "[" { return tok(sym.LBRACK, null); }
<YYINITIAL> "]" { return tok(sym.RBRACK, null); }
<YYINITIAL> "{" { return tok(sym.LBRACE, null); }
<YYINITIAL> "}" { return tok(sym.RBRACE, null); }
<YYINITIAL> "." { return tok(sym.DOT, null); }
<YYINITIAL> "+" { return tok(sym.PLUS, null); }
<YYINITIAL> "-" { return tok(sym.MINUS, null); }
<YYINITIAL> "*" { return tok(sym.TIMES, null); }
<YYINITIAL> "/" { return tok(sym.DIVIDE, null); }
<YYINITIAL> "=" { return tok(sym.EQ, null); }
<YYINITIAL> "<>" { return tok(sym.NEQ, null); }
<YYINITIAL> "<"  { return tok(sym.LT, null); }
<YYINITIAL> "<=" { return tok(sym.LE, null); }
<YYINITIAL> ">"  { return tok(sym.GT, null); }
<YYINITIAL> ">=" { return tok(sym.GE, null); }
<YYINITIAL> "&"  { return tok(sym.AND, null); }
<YYINITIAL> "|"  { return tok(sym.OR, null); }
<YYINITIAL> ":=" { return tok(sym.ASSIGN, null); }



<YYINITIAL> "while"        { return tok(sym.WHILE, null); /* reserved words... */ }
<YYINITIAL> "for"         { return tok(sym.FOR, null); }
<YYINITIAL> "to"        { return tok(sym.TO, null); }
<YYINITIAL> "break"        { return tok(sym.BREAK, null); }
<YYINITIAL> "let"        { return tok(sym.LET, null); }
<YYINITIAL> "in"        { return tok(sym.IN, null); }
<YYINITIAL> "end"        { return tok(sym.END, null); }
<YYINITIAL> "function"        { return tok(sym.FUNCTION, null); }
<YYINITIAL> "var"         { return tok(sym.VAR, null); }
<YYINITIAL> "type"         { return tok(sym.TYPE, null); }
<YYINITIAL> "array"         { return tok(sym.ARRAY, null); }
<YYINITIAL> "if"         { return tok(sym.IF, null); }
<YYINITIAL> "then"         { return tok(sym.THEN, null); }
<YYINITIAL> "else"         { return tok(sym.ELSE, null); }
<YYINITIAL> "do"         { return tok(sym.DO, null); }
<YYINITIAL> "of"         { return tok(sym.OF, null); }
<YYINITIAL> "nil"         { return tok(sym.NIL, null); }


<YYINITIAL> {NONNEWLINE_WHITE_SPACE_CHAR}+ { /* whitespace characters are ignored */ }

<YYINITIAL,COMMENT> {NEW_LINE} { newline(); /* newlines call newline() to know the line number if an error occurs */ }

<YYINITIAL> "/*" { yybegin(COMMENT); comment_count = comment_count + 1; }

<COMMENT> "/*" { comment_count = comment_count + 1; }
<COMMENT> "*/" {
        comment_count = comment_count - 1;
        if(comment_count < 0) err(yychar, "comment block end without comment block start");
        if (comment_count == 0) {
                    yybegin(YYINITIAL);
        }
}

<YYINITIAL> "*/" {
        err(yychar, "comment block end '*/' without comment block start");
}

<COMMENT> {COMMENT_TEXT} { }

<YYINITIAL> \"{STRING_TEXT}\" {
        return tok(sym.STRING, new String(yytext().substring(1,yytext().length() - 1)));
}
<YYINITIAL> \"{STRING_TEXT} {
        String str =  yytext().substring(1,yytext().length());

        err(yychar, "unclosed string");

}
<YYINITIAL> {DIGIT}+ {
        return tok(sym.INT, Integer.valueOf(yytext()));
}       
<YYINITIAL> {ALPHA}({ALPHA}|{DIGIT}|_)* {
        return tok(sym.ID, new String(yytext()));
}       

<YYINITIAL,COMMENT> . {
        err(yychar, "unmatched input character: "+yytext()+", ASCII: "+ ((int) yytext().charAt(0)) );
}
回复 支持 反对

使用道具 举报

136

回帖

1

积分

99

资产值

初级会员 Rank: 1

注册时间
2003-2-24
铜牌荣誉勋章(注册8年以上会员)
发表于 2003-12-4 15:54:44| 字数 71| - 中国–上海–上海 鹏博士宽带 | 显示全部楼层
上面是我这个学期做的作业
tiger语言
jlex编译
希望对你有所帮助

[ Last edited by henius on 2003-12-4 at 15:56 ]
回复 支持 反对

使用道具 举报

551

回帖

2

积分

790

资产值

禁止发言

注册时间
2003-8-2
铜牌荣誉勋章(注册8年以上会员)
 楼主| 发表于 2003-12-5 12:38:47| 字数 21| - 中国–上海–上海 电信 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

6599

回帖

62

积分

1万

资产值

荣誉版主 Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

注册时间
2002-4-19
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2003-12-5 12:55:08| 字数 115| - 中国–北京–北京 鹏博士BGP | 显示全部楼层
晕,不是学C++么?怎么一个对象都看不到 莫非这个老师觉得用了cout就是C++了?

proc_1到proc_22,呵呵,标准的谭氏C++啊。

rainMM别泄气,你觉得难不是你的问题,是这个老师有点BT,有什么问题大家都可以帮助你的。
Thinkpad T400 AB5 | iMac | FJ S2 pro
Everything that has a beginning has an end.
回复 支持 反对

使用道具 举报

491

回帖

3

积分

388

资产值

初级会员 Rank: 1

注册时间
2002-8-15
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2003-12-5 16:03:39| 字数 382| - 中国–江苏–无锡 电信 | 显示全部楼层
QUOTE:
Originally posted by endless-rain at 2003-12-3 12:41:
也不是
是对自己写的程序进行说明分析 编程思路
一个是JAVA的 一个是C的

不知道你们用的是什么教材,不过刚才看了下程序,接近N.wirth的PL/0语言。清华版的《编译原理》对这个编译器解释的比较详细书后有pascal的源代码,书前面的对这个程序的剖析应该能给你提供很多写报告的素材了。

要是光写思路我看写40页是比较困难的。因为词法,语法分析太模式化了没什么灵活的地方,以致用lex和yacc就能解决了。所以图一定得多,光图就占上它10页也不过分,什么程序流程图,各个模块关系等等少用语言多用图。再来点代码分析,挑点比较有代表性的程序段占个3-4页。最后就是一些常规的原理性的东西了。

发现大学的老师越来越无聊了,写40页报告有啥用。其实做点代码生成的工作倒是不错。
Thinkpad T23 | Nokia E60 | Palm TE2 | Canon IXUS 850IS | Canon 400D
回复 支持 反对

使用道具 举报

551

回帖

2

积分

790

资产值

禁止发言

注册时间
2003-8-2
铜牌荣誉勋章(注册8年以上会员)
 楼主| 发表于 2003-12-5 20:23:10| 字数 149| - 中国–上海–上海 电信 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

Powered by Discuz! X3.5 © 2001-2023 Comsenz Inc

GMT+8, 2025-10-30 12:54 , Processed in 0.169530 second(s), 68 queries , Gzip On, OPcache On.

手机版|小黑屋|安卓客户端|iOS客户端|Archiver|备用网址1|备用网址2|在线留言|专门网

返回顶部