PROJ2SPEC.pdf

ý¢ø¤ø
.Àƒ÷¿“ (Standard
Input) ¢¤À÷‘µ¨ ý¢ø¤ø ¥ ¤ ‚ÜÿÆõ ý¢ø¤ø
´ì¢ .´¨ ‚ÜÿÆõ üܬ –¤¬ ¤¢ ùÀª ‚µÔð Ûت ‚“ –¤‘±ä ×þ Ûõ‘ª ý¢ø¤ø
(white
space) ‚ܬ‘ê À÷—üõ (‘ûƒçµõ ø ‘ûÂÚÜÞä ,¢Àä) –¤‘±ä –‘ÞÜî ö‘ƒõ ‚î Àƒ€î
‘Þª ¤‘î üµŸ¤ ýÂ“ .´¨
enter ø tab , space ý‘ûµîÛõ‘ª ‚î Àª‘“ ‚µª¢ ¢›ø
.¢¤¢ ¤Âì
$ µî ×þ ,–¤‘±ä ö‘þ‘• ¤¢
ü›ø¡
.ÀƒÆþ€“ (Standard
Output) ¢¤À÷‘µ¨ ü›ø¡ ¤¢ ¤ ¢¡ ü›ø¡
:´¨ Âþ¥ Ûت ‚“ ü›ø¡ ´õÂê
"
Input expression: ' –¤‘±ä ‘ú€—
:ñø ÂΨ
ö –‘ÞÜî ö‘ƒõ ¤¢ ‚î üþ‘û‚ܬ‘ê öøÀ“ ý¢ø¤ø ¤¢ ùÀª ù¢¢ –¤‘±ä ö‘Þû :ôø¢ ÂΨ
.¢¤¢ ¢›ø
"
Postx: ' –¤‘±ä ‘ú€—
:ô¨ ÂΨ
ø¢  û ß ƒ “ ‚ Ü ¬‘ ê × þ ‘ “ ý¢ø¤ø ¤¢ ùÀ ª ù¢¢ –¤‘ ± ä ýÀ ÷ Æ • ô ê :ô¤‘ ú   Π¨
.ö ý‚ÞÜî
"
Fully parenthesized inx: ' –¤‘±ä ‘ú€—
:ݹ€• ÂΨ
‚ܬ‘ê öøÀ“) Àª‘“ ùÀª ýÀ€“õ÷Â• …
f õ‘î ‚î ý¢ø¤ø ¤¢ ùÀª ù¢¢ –¤‘±ä :ÝȪ ÂΨ
‘ ûà µ ÷Â • ö¢ “ "ü ê‘ ®' ø "¼ ®ø' ö¢ ± ÷ Ó þ 㠗 © ¡ ‚ “ ‚ › — ‘ “ .(–‘ Þ Ü î ö‘ ƒ õ ¤¢
.(õ÷Â• ´Ô› ×þ ,–¤‘±ä ´¡¤¢ ¤¢ ùÂð Âû ý¥ ‚“) Àƒû¢ ¤Âì ¤ ‘ûõ÷Â• ý‚Þû
"
Translation: ' –¤‘±ä ‘ú€—
:ݵÔû ÂΨ
ö‘þ‘• ¤¢ .À€îüõ ‚±¨‘½õ ¤ ý¢ø¤ø –¤‘±ä ‚î ü€ƒª‘õ ö‘“¥ Àî :¡ üó ݵÈû ÂΨ
.Àª‘“ ùÀª ùƒ¡£ ÂÚµª‘±÷ ¤¢ Àþ‘“ –¤‘±ä ¤
c ÀÖõ
‘û´þ¢øÀ½õ
.Àª‘“
.pas ‘þ .java , .cpp ý‘ûÀ÷Æ• ¥ üØþ ø expr ô‘÷ ‘“ Àþ‘“ ‘Þª ý‚õ‘÷“
.¢ªüõ ߃ƒã— ‘µØþ ݵÔû ÂΨ ‘— ¼ƒ½¬ ý‘û‚õ‘÷“ ü›ø¡
ô‘ ¹ ÷ × ƒ —‘ õ — ¤ Ï ‚ “ ‘ û‚ õ‘ ÷ “ ‚ “ ü û¢ùÂ Þ ÷ ø ¼ ƒ ½ Ê — À ÷ø¤ ‚ î ß þ ‚ “ ‚ › — ‘ “
‚÷ð Âû .Àþ¤ø ÛÞä ‚“ ùÀª ‚µÔð ý‘û°ó‘ì ´þ‘ä¤ ¤¢ ¤ ßØÞõ ´ì¢ ·îÀŸ ¢ªüõ
1
ü›ø¡ öÀª ù¢ÂÞª ´¨¤¢‘÷ ‚“ ¹€õ
:::
‘þ –…Þ› ¤¢ ƒƒç— ‘þ ü›ø¡ ý¥‘¨‘±þ¥
.¢ªüõ
Åƒó
shell Í
c ƒ½õ ¤¢ ‘Þª ý‚õ‘÷“ ö ÀƒÆþ€“ ¢¤À÷‘µ¨ …
f õ‘î ¤ ¢¡ ý‚õ‘÷“
.Àª Àû¡ Â› ø ‚ޛ—
.¢ªüõ ù¢¢ Â› ýÂ“ ´ìø ‚ƒ÷‘™ 2 ‘Þª ý‚õ‘÷“ ‚“
µȃ“ µî 100000 ¥ (‚ܬ‘ê ý‘ûÂµî¤‘î ©¤‘Þª öøÀ“) ý¢ø¤ø Ûþ‘ê ýù¥À÷
.¢ªüÞ÷
(TEMP ý‘ û ƒ ç µ õ Ç û‘ î ýÂ “)  þ¥ ý¥‘ ¨‚ € ƒ ú “ ý‘ ûùÀ þ ¥ ¢ ¡ ý‘ û‚ õ‘ ÷ “ ¤¢
:Àƒþ‘Þ÷ ý¤¢¢¡ fÀ›
.TEMP ý‘ûƒçµõ ö€ä ‚“ ý¢ø¤ø –¤‘±ä ¤¢ ùÀª ùÀþ¢ ý‘ûƒçµõ ¥ ù¢‘Ôµ¨
.
a/b = (b/a)
b 1
a-b = (b-a) ‚î ßþ ¥ ù¢‘Ôµ¨
‘þ
.Àû¢üõ ƒƒç— ¤ –¤‘±ä ´¡¤¢ ôÂê ´ÖƒÖŸ ¤¢ ö ´Æƒ÷ ¥‘¹õ ‘fÖ΀õ ¤‘î ßþ
¼ƒ½¬ ü—‘±¨‘½õ ÂÑ÷ ¥ Âð üµŸ) –¤‘±ä ´¡¤¢ Ûت ¤¢ ƒƒç— ‚÷ð Âû ¢‘¹þ
.(a+b)+c
6= a+(b+c) ü€ãþ .(Àª‘“
¤¢ …
f ·õ .‚“‘Èõ üµÞÆì ýÂ“ –¤‘±ä ¥ üµÞÆì ¤¢ ùÀõ ´¨¢ ‚“ ¤ÀÖõ ¥ ù¢‘Ôµ¨
¤¢ ñø ¤‘“ ‚î ßþ ‚÷ ¢ª ’‘ÆŸ ¤‘“ø¢ ‘f ãìø Àþ‘“
.¢ª ù¢‘Ôµ¨
(a+b) ¤ÀÖõ , (a+b)*(a+b)
TEMP1 ¤ÀÖõ ¥ ôø¢ ¤‘“ ¤¢ ø ¢ª ùƒ¡£ TEMP1
üþ‘Þ€û¤
.´ª÷ ö—üõ
( ) ýÂ› ö‘õ¥ ‘“ ¤ ‚õ‘÷“
O n
f  Þ ã õ) ⠓‘ — × þ ¥ ù¢‘ Ô µ ¨ ‘ û‚ õ‘ ÷ “ ‚ ÷ ð ß þ ¤¢
‚ î ´ ¨ ¸ þ¤ (scanner ô‘ ÷ ‘ “ „
ßþ ý¥‘¨ù¢‘ƒ• ‘“ ‚ÜŸÂõ ߃óø ¤¢ ŕ .¢¤¢ ùÀúä “ ¤ ý¢ø¤ø –‘ÞÜî üþ‘¨‘€ª ý‚ÔƒÒø
‘ “ ´ Æ ƒ ÷ ô¥„ Â Ú þ¢ ø À ƒ € ƒ “ü õ ‚ Þ Ü î ‚ Þ Ü î Û Ø ª ‚ “ ¤ ý¢ø¤ø ‚ î À þ ª ß ÿ Þ Î õ ⠓‘ —
.Àƒ÷Ó ‚Üî ø ¨ ý¢ø¤ø ý‘ûµî
8
>>
<
>>
:
.Àƒ€î ‚ãó‘Îõ ´ì¢ ‘“ –¤‘±ä ´¡¤¢ ý‚±¨‘½õ ýÂ“ ¤ Âþ¥ ÂõÂð
E
T
F
P
A
!
!
!
!
!
T
F
P
A
j j j b
j
E
T
T
P
F
F
P
number
j
variable
j(
2
E
)
(E xpression)
(T erm)
(F actor)
(P ower operand)
(Atom)
ýùÀþ ‘“ Àƒ€î ü㨠.´¨‘ûÂÚÜÞä ´þóø °—Âõ ‚ÜÆܨ Ûõ‘ª Ûì ÀŸ ÂõÂð ßþ
Ýû ¨ ´È• ‚î ÀƒÆþ€“
readA ø , readP , readF , readT , readE ⓑ— 5 ÂõÂð ßþ
–¤‘±ä ´¡¤¢ ¥ ùÂð ×þ ‚“ À€÷¢Âðüõ “ ýÂðù¤‘ª ø À€€îüõ ü÷¡Âê ¤ ÂÚþÀØþ
ßþ ‘“ .(´¨ ùÀª ‚µ¡‘¨ ö€î‘— —üÜ¡¢ ý‘ûü÷¡Âê ‘“ ùÂð ö Âþ¥ ´¡¤¢ Âþ¥ ‚î)
¥‘ƒ÷ ,üµÈ𥑓 ⓐ— ‚“ ¯“Âõ ý‚µÈ• Âþ¥ ,Àþ¤À÷ Ã÷ ‚µÈ• ý¥‘¨ù¢‘ƒ• ‚“ ý¥‘ƒ÷ ÂÚþ¢ ¤‘î
ö ‚ “ Ý ƒ Ö µ Æ õ ,ý¢ø¤ø –‘ ä… Ï ‚ “ ü ¨Â µ ¨¢ ýÂ “ ⠓ — ß þ .¢¥‘ ¨ü õ é Ï “ ¤ ‘ Þ ª
.À÷¤øüõ ´¨¢ ‚“ ¤ ýÀ㓠ý‚ÞÜî
scanner ⓑ— ü÷¡Âê ‘“ ‚Øܓ ,À€€îüÞ÷ ‚㛐Âõ
–‘ÞÜî ´¡‘¨ ý‚þ„ ‘› ßþ ¤¢ …
f ·õ) ‘û¤‘î ýÀ€“‚þ„ ø Óܵ¿õ ý‘û¤‘î ý¥‘¨À›
¤¢ éøÂãõ ý‘û׃€Ø— ¥ üØþ (–‘ÞÜî ‘“ –¤‘±ä ø –…Þ› ´¡‘¨ ý‚þ„ ø éøŸ ‘“
Âƒè …
f Þ ä ö ¥ ù¢‘ Ô µ ¨ öøÀ “ ï¤Ã “ ý‘ ûÝ µ Æ ƒ ¨ ý‚ ã ¨ — ‚ î ´ ¨ ¤Ã êô ÷ ü ¨À € ú õ
Àƒó— ø ‘ûö‘“¥ ý‘û¤‘µ¡‘¨ ÂÚþ¢ ø ‘û–¤‘±ä ۃܽ— ø ‚þù— üÚ÷Ú ‘“ .´¨ ßØÞõ
.Àª Àƒû¡ ‘€ª µȃ“ ÂÜþ‘³õ‘î §¤¢ ¤¢ ‘ûö ýø¤ ¥ Àî
‚÷Þ÷
input
12.5 + (sum-E)
/ A^
~
5^~ 0.17 $
output
Input expression:
12.5+(sum-E)/A^~5^~0.17
Postfix:
12.5 sum E - A 5 ~ 0.17 ~ ^ ^ / +
Fully parenthesized infix:
(12.5+((sum-E)/(A^((~5)^(~0.17)))))
Translation:
LDE 0.17
NEG
STR TEMP1
LDE 5
NEG
PWR TEMP1
STR TEMP1
LDE A
PWR TEMP1
STR TEMP1
LDE SUM
STR E
DIV TEMP1
ADD 12.5
3
¤‘ѐ
.¢ÂƒðüÞ÷ ÕÜ㗠ýùÂÞ÷ ‚“‘Èõ ý‘û‚õ‘÷“ ‚“
ⓑ€õ ¥ ù¢‘Ôµ¨ ‘þ ‘û´Æ— ý‘û¾¨‘• ßµê‘þ ‘þ ݵƃ¨ ü“Â¡ ´ú› ©…— ‚÷ð Âû
.Àª Àû¡ ÂÔ¬ ýùÂÞ÷ ‚“ ¹€õ (ü—¬ ‘þ ü؃êÂ𠖑÷‘Øõ À€÷‘õ) ݵƃ¨ ¯“Âõ‘÷
4