作者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)