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.0618 sec