(대강 기억나는대로) * 대부분 우리가 쓰는 언어는 imperative language 이다. 왜 그럴까? * PL/1 이 실패한 이유는? * Compilation 과 pure interpretion 을 비교하시오. * C / C++ 에서의 스트링의 길이는 가변적인가? * 다음과 같은 문법이 있다. Top-Down Parsing 의 가능 또는 불가능함을 증명하시오 || A -> BaA || || B -> b | bA || 다음과 같은 unambiguous 문법이 있다. (대강 이런식. 아 곱셈부분이 생각안난다; 정확한거 아시는분은 보충을;) || -> = || || -> + || || -> | () || 다음과 같은 식이 있다. || A = B + C * D || * 위의 식을 문법에 맞게 left-most 로 유도하시오. * B = 6, C = 4, D = -2 라고 했을때 위의 문법에 의하면 A 의 값은 무엇인가? * Type 이 결정짓는 요소들에는 어떤 것이 있는가? * FORTRAN, PL/1, BASIC, Perl 이 언어들의 변수 선언시의 공통점은? * Perl 은 변수에 대해서 위의 언어들과 다른 점이 있다. 어떤 점인가? * Primitive Data Type 에 대해 정의하시오. * Floating Point 변수의 경우 해당 값에 대해 근사값만을 표현한다. 그 이유는 무엇인가? * 다른 Primitive Data Type 을 이용, 정확하게 Floating Point 를 구현할 방법이 있을까? (자신의 의견을 적으시오) === Thread === 공부할때 각 요소들에 대한 비교 할때마다 Ada 를 빼놓지 않기에 (늘 책에서의 비교언어는 C/C++, Pascal, Ada, Java 이다) 주로 언급된 언어들만 공부했건만, 왜 뜬금없이 PL/1 을 내신걸까; 그밖에 다른 문제들은 평이해서 그다지 별 감흥(?)없었고, 마지막 문제가 괜찮았던듯. 나의 경우는 1. string (char array) 으로 애뮬레이션 한다. (단점도 썼음. 계산뒤의 메모리할당 문제와 실제 산술연산 계산을 위한 형변환시 cost가 많이 든다 등등) 2. long integer 2 개로 앞의 32 bit 는 유효숫자를, 뒤의 32bit 는 지수를 표현한다. (2^-31 ~ 2^31 * 2^-31 ~ 2^31 까지 표현된다라고 썼는데, 실제론 저 숫자들을 다 표현할 수가 없겠군. 2^31 1024 * 1024 * 1024 * 2 니까 약 10억. 즉, 자리수 표현도 10억 이후부터는 precision 유효숫자를 다 쓸수 없을테니) 아.. 풀고나니 잘못생각했군. 흑; --석천