作者rod13824 (猛矮)
看板NTU-Exam
标题[试题] 100下 陈俊良 编译程式设计 期中考
时间Thu May 3 21:46:24 2012
课程名称︰编译程式设计
课程性质︰系必修
课程教师︰陈俊良
开课学院:电资学院
开课系所︰资讯工程学系
考试日期(年月日)︰2012/5/3
考试时限(分钟):120
是否需发放奖励金:是的,感谢
(如未明确表示,则不予发放)
试题 :
Consider the following grammar for questions 1~4
1.A -> B C
2.B -> e D
3.B -> λ
4.C -> f
5.C -> λ
6.D -> f e D
7.D ->λ
1.Complete the SetSetSet table.(15%)
2.Complete the LR(1) item sets, including non-kernel items. The following
reference figure is generated by "bison --graph".(20%)
图:
http://i.imgur.com/TDT2B.jpg
3.Is the grammar LR(1)? Explain your reason briefly.(2+3%)
4.Prove that it is an LL(3) grammar.(20%)
5.In Java SE 6 and earlier, a decimal floating point literal is defined by:
DecimalFloatingPointLiter:
Digits.Digits(opt)FloatTypeSuffix(opt)
.Digits FloatTypeSuffix(opt)
Digits FloatTypeSuffix
FloatTypeSuffix: one of f F d D
In java SE 7 and later, any number of underscore characters(_) can appear
anywhere between digits in a numberical literal. This feature enables you,
for example, to separate groups of digits in numberic literals,which can
improve the readability of your code. The following example shows several ways
you can use the underscore in numberic literals:
long creditCardNumber = 1234_5678_9012_3456L;
float pi = 3.14_15F;
long hexWords = 0xCAFE_BABE;
long bytes = 0b11010010_01101001_10010100-10010010;
You can place underscores only between digits; you cannot place underscores in
the following places:
At the beginning or end of a number
Adjacent to a decimal point in a floating point literal
Prior to an F,D or L suffix
The following examples demonstrate valid and invalid underscore placements in
numberic literals:
int x1 = _52; //This is an identifier, not a numberic literal
int x2 = 5_2; //OK(decimal literal)
int x3 = 52_; //Invalid; cannot put underscores at the end of a literal
int x4 = 5______2; //OK(decimal literal)
float pi1 = 3_.1415F; //Invalid; cannot put underscores adjacent to a decimal
point
float pi2 = 3._1415F; //Invalid; cannot put underscores adjacent to a decimal
point
float pi3 = 3.1415_F; //Invalid; cannot put underscores prior to an F suffix
Please give a regular expression to represent the decimal floating point
literal for Java SE7.(20%)
6.The conditional operator ?: has three operand expressions;? appears between
the first and second expressions, and : appears between the second and third
expressions. At run time, the first operand expression is evaluated first. If
it is true, then the second operand expression is chosen. If it is false,
then the third operand expression is chosen. The conditional operator is
syntacitcally right-associative, so that a?b:c?d:e?f:g means the same as
a?b:(c?d:(e?f:g)).
Please give grammar rule(s) for a conditional expression.(20%)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.193.6.232
1F:→ rod13824 :第二题的图我明天补 05/03 21:46
※ 编辑: rod13824 来自: 140.112.30.42 (05/04 18:48)