U E D R , A S I H C RSS

Programming Language Class/2006/End Term Examination

μ „μ²΄λ‚΄μš©

λ²”μœ„ : 6μž₯ ~ 11μž₯ (concept of programming language 6th ed)
02, 05 년에 μ–Έμ–΄ λ””μžμΈμ‹œ κ³ λ €ν•΄μ•Όν•  점에 λŒ€ν•œ λ¬Έμ œκ°€ μΆœμ œλ˜μ–΄μ„œ κ·Έμͺ½μœΌλ‘œ 곡뢀λ₯Ό 많이 ν–ˆμ§€λ§Œ λ‚˜μ˜€μ§€ μ•Šμ•˜λ‹€λŠ” μ μ—μ„œ μ˜μ™Έμ˜€μŒ. λ””μžμΈ 이슈λ₯Ό 곡뢀할 생각이라면 Pointer, Array, Abstraction, Subprogram 의 λ””μžμΈ μ΄μŠˆμ— λŒ€ν•΄μ„œ κ³΅λΆ€ν•˜λŠ” 것이 쒋을 듯함.
κ°€λ””λ“œ μ»λ§¨λ“œμ˜ λ‚΄μš©μ΄ λ‚˜μ™”λ‹€λŠ” 점이 μ•½κ°„ μ˜μ™Έμ˜€μŒ.

λ‹€ ν‘Όλ‹€μŒμ— λ“œλŠ” 생각은 κ°€μž₯ μ–΄λ €μš΄ λ¬Έμ œλŠ” 1λ²ˆμ΄μ—ˆμŒ. -_-;

문제

1. True, False νŒλ‹¨ 문제 좜제
a) cμ–Έμ–΄μ—μ„œ, switch문의 쑰건 λ„£λŠ” 뢀뢄에 λͺ¨λ“  ordinal type이 λ“€μ–΄κ°ˆ 수 μžˆλŠ”κ°€?
b) 일반적으둜 μ„œλΈŒν”„λ‘œκ·Έλž¨μ˜ νŒŒλΌλ©”ν„° μ „λ‹¬μ‹œ μ°Έμ‘°μœ ν˜•μœΌλ‘œ μ „λ‹¬ν•΄μ•Όν•˜λŠ”κ°€λ₯Ό λ¬»λŠ” 문제.
c) Cμ–Έμ–΄κ°€ 독립 μ»΄νŒŒμΌμ„ μ§€μ›ν•˜λŠ”μ§€ 유무.
d) ifμ—μ„œ Dijkstra's Guarded Command μ—μ„œ Boolean Expression 쀑 μ–΄λ– ν•œ 것도 참이 μ•„λ‹Œκ²½μš° ꡬ문을 λ²—μ–΄λ‚˜λŠ”μ§€ λ¬»λŠ” 문제
e) Ada μ—μ„œ for loop λ₯Ό μ΄μš©ν•œ iteration μ†ŒμŠ€. 루프 μ’…λ£Œν›„ condition variable μ²˜λ¦¬μ— λŒ€ν•œ 문제 좜제.

2. λ‹€μŒμ˜ μ†ŒμŠ€λ₯Ό 제좜
~cpp
void fun(A, B, C, D)
{
 A = A + A;
 D = A + C
 return
}
.
.
.

X = 2, Y = 3, Z = 6
fun(X, X, X+Y, Z)
print Z;
a) 상기 μ†ŒμŠ€μ—μ„œ fun ν•¨μˆ˜μ˜ νŒŒλΌλ©”ν„° 전달 방식이 Pass-By-Value, Pass-By-Name 의 경우둜 λ‚˜λˆ„μ–΄μ„œ 좜λ ₯ 결과값을 λ‚˜νƒ€λ‚΄λΌ (μ†ŒμŠ€λŠ” λŒ€μΆ© λΉ„μŠ·ν•œκ±° 같은데 ν™•μ‹€ν•˜μ§€ μ•ŠμŒ. -_-;; 기얡에 의μ΄ν•˜λ‹€ λ³΄λ‹ˆ γ…‹γ…‹)
b) 각 λ°©μ‹μ˜ 바인딩 νƒ€μž„μ˜ 차이λ₯Ό μ„€λͺ…ν•˜λΌ.

3. operator μš°μ„ μˆœμœ„μ— μ˜κ±°ν•œ functional side effects문제
a) functional side effects의 μ •μ˜λ₯Ό μ“°μ‹œμ˜€.
b) λ‹€μŒμ˜ μ†ŒμŠ€μ˜ κ²°κ³Ό SUM의 값을 μ μœΌμ‹œμ˜€. (evaluation order is left-to-right)
~cpp
int fun(int *i)
{
*i += 3;
return 2*(*i)-1;   
}

int i = 10, j =16
SUM = fun(&i) + fun(&j) +(i+j)/2
// μ‹œν—˜ λλ‚œ κ²°κ³Ό μ—°μ‚°μž μš°μ„  μˆœμœ„μƒ ()의 평가가 먼저인지 function evaluation 이 먼저인지 λ•Œλ¬Έμ— ν—·κ°ˆλ € ν–ˆμŒ
// C μ—μ„œ 돌렀본 κ²°κ³Ό function evaluation 이 λ¨Όμ €λ˜λ©°, μ΄λŠ” 쑰건상 left-to-right 둜 μ—°κ΄€μ§€μ–΄μ„œ 닡을 적을 수 μžˆμ„λ“―ν•¨.
4.
a) λΉ„μ§€μ—­ λ³€μˆ˜μ˜ 참쑰에 Static-Chain 기법에 λŒ€ν•œ μ„€λͺ…을 ν•  것
b) μ–Έμ–΄ κ°œλ°œμžλ“€μ΄ Static-Chain 에 λΉ„ν•΄μ„œ display 기법을 μ±„νƒν•˜κ²Œ λ˜λŠ” 이유λ₯Ό μ œμ‹œν•˜μ‹œμ˜€.
c) display 에 λŒ€ν•œ μ„€λͺ…을 ν•˜μ‹œμ˜€. (Qsd = Psd, Qsd < Psd, Qsd > Psd λ₯Ό λ‚˜λˆ„μ–΄μ„œ μ„€λͺ…. 5νŒμ— μžμ„Έν•œ λ‚΄μš©μžˆμŒ)

ν•΄μ„€

1.
d)
κ°€λ””λ“œ μ»λ§¨λ“œκ°€ selector, loop μ—μ„œμ˜ λ™μž‘μ΄ λ‹€λ΄κΈ° λ•Œλ¬Έμ— 이λ₯Ό μ‘°μ‹¬ν•΄μ•Όν•œλ‹€. (μ±…μ°Έμ‘°)
μ…€λ ‰ν„°μ˜ 경우 λŸ°νƒ€μž„ μ—λŸ¬ λ°œμƒ, λ£¨ν”„μ‹œμ—λŠ” 루프λ₯Ό λ²—μ–΄λ‚œλ‹€.

e)
  • upto terminate 해석에 λ”°λΌμ„œ 닡이 달라짐 μ’…λ£Œ 직전 -> 닡은 True, μ’…λ£Œ μ‹œμ μ„ μ˜λ―Έν•œλ‹€λ©΄ 닡은 False

~cpp
for variable in [reverse] discrete_range loop
...
end loop
// reverse ν‚€μ›Œλ“œκ°€ μ„ μ–Έλœ μ‹œμ μ—μ„œλ§Œ μ—­μœΌλ‘œ λ°˜λ³΅λ¨μ— 쑰심할 것
λ§Œμ•½μ— upto λΌλŠ” 단어에 λ‘κ°€μ§€μ˜ μ˜λ―Έκ°€ 상μ΄ν•˜λŠ” κ²ƒμœΌλ‘œ 보이기 λ•Œλ¬Έμ— μ •ν™•ν•œ 닡을 λŒ€λ‹΅ν•˜κΈ° νž˜λ“€ κ²ƒμœΌλ‘œ 보이며, 맞고 틀림은 ν•΄μ„€μ˜ 정확성에 따라 결정될 κ²ƒμœΌλ‘œ 보인닀.


up to ... (1) <μ–΄λŠ μœ„μΉ˜Β·μ •λ„Β·μ‹œμ μ΄> β€¦κΉŒμ§€(에), …에 이λ΄κΈ°κΉŒμ§€;<μ§€μœ„ 등이> …에 이λ΄λŸ¬:up to this time[now] μ§€κΈˆκ», μ§€κΈˆ[이 μ‹œκ°„]κΉŒμ§€λŠ”/I am up to the ninth lesson. λ‚˜λŠ” 제 9κ³ΌκΉŒμ§€ λ‚˜κ°€κ³  μžˆλ‹€./He counted from one up to thirty. κ·ΈλŠ” 1μ—μ„œ 30κΉŒμ§€ μ„Έμ—ˆλ‹€./He worked his way up to company president. κ·ΈλŠ” κ·Έ νšŒμ‚¬μ˜ 사μž₯μœΌλ‘œκΉŒμ§€ μΆœμ„Έν–ˆλ‹€. (2) [λŒ€κ°œ λΆ€μ •λ¬ΈΒ·μ˜λ¬Έλ¬Έμ—μ„œ] γ€Šκ΅¬μ–΄γ€‹ <일 λ“±>을 κ°λ‹Ήν•˜μ—¬, …을 ν•  수 있고[ν•  수 μžˆμ„ μ •λ„λ‘œ λ›°μ–΄λ‚˜]:You’re not up to the job. λ„ˆλŠ” κ·Έ 일을 κ°λ‹Ήν•˜μ§€ λͺ»ν•œλ‹€./This novel isn’t up to his best. 이 μ†Œμ„€μ€ 그의 μ΅œκ³ μž‘μ—λŠ” λ―ΈμΉ˜μ§€ λͺ»ν•œλ‹€./This camera is not up to much. γ€Šκ΅¬μ–΄γ€‹ 이 μΉ΄λ©”λΌλŠ” λ³„λ‘œ λŒ€λ‹¨ν•œ 것은 μ•„λ‹ˆλ‹€./Do you feel up to going out today? μ˜€λŠ˜μ€ μ™ΈμΆœν•  수 μžˆμ„ 것 κ°™μŠ΅λ‹ˆκΉŒ? γ€Šλ³‘μžμ—κ²Œ λ¬»λŠ” 말》 (3) γ€Šκ΅¬μ–΄γ€‹ <λ‚˜μœ μ§“>에 손을 λŒ€κ³ ;…을 κΎ€ν•˜κ³ :He is up to something[no good]. κ·ΈλŠ” μ–΄λ–€[μ’‹μ§€ μ•Šμ€] 일을 κΎ€ν•˜κ³  μžˆλ‹€./What are they up to? 그듀은 무슨 짓을 ν•˜λ €λŠ” 것인가? (4) γ€Šκ΅¬μ–΄γ€‹ <μ‚¬λžŒμ΄> ν•΄μ•Ό ν• , β€¦λ‚˜λ¦„μΈ, β€¦μ˜ 의무인:It’s up to him to support his mother. κ·Έμ•Όλ§λ‘œ μ–΄λ¨Έλ‹ˆλ₯Ό λΆ€μ–‘ν•΄μ•Ό ν•œλ‹€./I’ll leave it up to you. 그것을 λ„€κ²Œ 맑기마./It’s up to you whether to go or not. κ°€κ³  μ•ˆκ°€κ³ λŠ” λ„€ λ§˜μ— 달렀 μžˆλ‹€./The final choice is up to you. λ§ˆμ§€λ§‰ 선택은 λ„€ 손에 달렀 μžˆλ‹€.
- 넀이버 μ‚¬μ „μ—μ„œ

----
ProgrammingLanguageClass
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:24:02
Processing time 0.0197 sec