<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=ProgrammingLanguageClass%2F2006%2FEndTermExamination</id>
	<title>ProgrammingLanguageClass/2006/EndTermExamination - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=ProgrammingLanguageClass%2F2006%2FEndTermExamination"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=ProgrammingLanguageClass/2006/EndTermExamination&amp;action=history"/>
	<updated>2026-05-14T21:05:26Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=ProgrammingLanguageClass/2006/EndTermExamination&amp;diff=37604&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:24, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=ProgrammingLanguageClass/2006/EndTermExamination&amp;diff=37604&amp;oldid=prev"/>
		<updated>2021-02-07T05:24:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= 전체내용 =&lt;br /&gt;
범위 : 6장 ~ 11장 (concept of programming language 6th ed)&lt;br /&gt;
02, 05 년에 언어 디자인시 고려해야할 점에 대한 문제가 출제되어서 그쪽으로 공부를 많이 했지만 나오지 않았다는 점에서 의외였음. 디자인 이슈를 공부할 생각이라면 Pointer, Array, Abstraction, Subprogram 의 디자인 이슈에 대해서 공부하는 것이 좋을 듯함.&lt;br /&gt;
가디드 커맨드의 내용이 나왔다는 점이 약간 의외였음.&lt;br /&gt;
&lt;br /&gt;
다 푼다음에 드는 생각은 가장 어려운 문제는 1번이었음. -_-; &lt;br /&gt;
&lt;br /&gt;
= 문제 =&lt;br /&gt;
# True, False 판단 문제 출제&lt;br /&gt;
a) c언어에서, switch문의 조건 넣는 부분에 모든 ordinal type이 들어갈 수 있는가?&lt;br /&gt;
b) 일반적으로 서브프로그램의 파라메터 전달시 참조유형으로 전달해야하는가를 묻는 문제.&lt;br /&gt;
c) C언어가 독립 컴파일을 지원하는지 유무.&lt;br /&gt;
d) if에서 Dijkstra&amp;#039;s Guarded Command 에서 Boolean Expression 중 어떠한 것도 참이 아닌경우 구문을 벗어나는지 묻는 문제&lt;br /&gt;
e) Ada 에서 for loop 를 이용한 iteration 소스. 루프 종료후 condition variable 처리에 대한 문제 출제.&lt;br /&gt;
&lt;br /&gt;
# 다음의 소스를 제출&lt;br /&gt;
 void fun(A, B, C, D)&lt;br /&gt;
 {&lt;br /&gt;
  A = A + A;&lt;br /&gt;
  D = A + C&lt;br /&gt;
  return&lt;br /&gt;
 }&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 &lt;br /&gt;
 X = 2, Y = 3, Z = 6&lt;br /&gt;
 fun(X, X, X+Y, Z)&lt;br /&gt;
 print Z;&lt;br /&gt;
a) 상기 소스에서 fun 함수의 파라메터 전달 방식이 Pass-By-Value, Pass-By-Name 의 경우로 나누어서 출력 결과값을 나타내라 (소스는 대충 비슷한거 같은데 확실하지 않음. -_-;; 기억에 의존하다 보니 ㅋㅋ)&lt;br /&gt;
b) 각 방식의 바인딩 타임의 차이를 설명하라.&lt;br /&gt;
&lt;br /&gt;
# operator 우선순위에 의거한 functional side effects문제&lt;br /&gt;
a) functional side effects의 정의를 쓰시오.&lt;br /&gt;
b) 다음의 소스의 결과 SUM의 값을 적으시오. (evaluation order is left-to-right)&lt;br /&gt;
 int fun(int *i)&lt;br /&gt;
 {&lt;br /&gt;
 *i += 3;&lt;br /&gt;
 return 2*(*i)-1;   &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int i = 10, j =16&lt;br /&gt;
 SUM = fun(&amp;amp;amp;i) + fun(&amp;amp;amp;j) +(i+j)/2&lt;br /&gt;
 // 시험 끝난 결과 연산자 우선 순위상 ()의 평가가 먼저인지 function evaluation 이 먼저인지 때문에 헷갈려 했음&lt;br /&gt;
 // C 에서 돌려본 결과 function evaluation 이 먼저되며, 이는 조건상 left-to-right 로 연관지어서 답을 적을 수 있을듯함.&lt;br /&gt;
# &lt;br /&gt;
a) 비지역 변수의 참조에 Static-Chain 기법에 대한 설명을 할 것&lt;br /&gt;
b) 언어 개발자들이 Static-Chain 에 비해서 display 기법을 채택하게 되는 이유를 제시하시오.&lt;br /&gt;
c) display 에 대한 설명을 하시오. (Qsd = Psd, Qsd &amp;lt; Psd, Qsd &amp;gt; Psd 를 나누어서 설명. 5판에 자세한 내용있음)&lt;br /&gt;
&lt;br /&gt;
= 해설 =&lt;br /&gt;
# &lt;br /&gt;
d)&lt;br /&gt;
가디드 커맨드가 selector, loop 에서의 동작이 다르기 때문에 이를 조심해야한다. (책참조)&lt;br /&gt;
셀렉터의 경우 런타임 에러 발생, 루프시에는 루프를 벗어난다.&lt;br /&gt;
&lt;br /&gt;
e)&lt;br /&gt;
* upto terminate 해석에 따라서 답이 달라짐 종료 직전 -&amp;gt; 답은 True, 종료 시점을 의미한다면 답은 False&lt;br /&gt;
 for variable in [reverse] discrete_range loop&lt;br /&gt;
 ...&lt;br /&gt;
 end loop&lt;br /&gt;
 // reverse 키워드가 선언된 시점에서만 역으로 반복됨에 조심할 것&lt;br /&gt;
만약에 upto 라는 단어에 두가지의 의미가 상존하는 것으로 보이기 때문에 정확한 답을 대답하기 힘들 것으로 보이며, 맞고 틀림은 해설의 정확성에 따라 결정될 것으로 보인다.&lt;br /&gt;
&lt;br /&gt;
 up to ... (1) &amp;amp;lt;어느 위치·정도·시점이&amp;amp;gt; …까지(에), …에 이르기까지;&amp;amp;lt;지위 등이&amp;amp;gt; …에 이르러: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) [대개 부정문·의문문에서] 《구어》 &amp;amp;lt;일 등&amp;amp;gt;을 감당하여, …을 할 수 있고[할 수 있을 정도로 뛰어나]: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) 《구어》 &amp;amp;lt;나쁜 짓&amp;amp;gt;에 손을 대고;…을 꾀하고:He is up to something[no good]. 그는 어떤[좋지 않은] 일을 꾀하고 있다./What are they up to? 그들은 무슨 짓을 하려는 것인가? (4) 《구어》 &amp;amp;lt;사람이&amp;amp;gt; 해야 할, …나름인, …의 의무인: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. 마지막 선택은 네 손에 달려 있다.&lt;br /&gt;
 - 네이버 사전에서&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[ProgrammingLanguageClass]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>