• 검색 결과가 없습니다.

프로그래밍언어론

N/A
N/A
Protected

Academic year: 2021

Share "프로그래밍언어론"

Copied!
2
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

계산기 사용가능 여부 불가능

프로그래밍언어론 1 2

프로그래밍언어론

2011년도 5급(기술) 공무원 공채 제2차시험

응시번호 : 성명 :

제 1 문. 기존의 타입들로부터 새로운 타입을 만드는 타입 구성자(type constructor)들 중에서 두 타입이 가질 수 있는 값들의 합집합을 만드는 타입 구성자를 C(또는

C++)에서는 union이라 한다. (총 10점)

union compositeType { int intEl;

double doubleEl;

};

union compositeType el;

double x; int n;

1) compositeType에서 필요한 메모리의 양이 얼마인지 설명하시오. (3점)

2) compositeType을 태그(tag) 혹은 판별자(discriminant)를 이용하여 프로그래머가 안전하게 사용할 수 있는 방법을 프로그램의 예를 들어 설명하시오. (3점) 3) 언어 설계자 또는 언어번역기 측면에서 안전한 합집합 구성자가 될 수 있도록

하는 방법을 제시하시오. (4점)

제 2 문. 일반적으로 부동소수점(floating-point) 타입은 부동소수점 저장 표준인 IEEE 754 형식을 따르며 부호(sign bit), 지수(exponent), 소수부(fraction)로 나누어

저장한다. (총 10점)

1) 부동소수점으로 표현된 숫자가 컴퓨터 내부에서 근사값으로 저장되는 이유를 설명하시오. (3점)

2) 1)의 문제를 해결하기 위한 데이터 형식을 제시하고 장단점을 기술하시오. (3점) 3) 만약 실수(real number)의 소수점 이하 5자리까지만 유효값으로 하여 컴퓨터 에서 사칙연산을 수행할 경우, 발생하는 문제점과 해결방법을 제시하시오. (4점)

(2)

계산기 사용가능 여부 불가능

프로그래밍언어론 2 2

제 3 문. 다음 문법 G에 대한 질문에 답하시오. (총 15점) 문법 G = (N, S, P, S)로 정의되며, 각 구성요소는 다음과 같다:

N = {E, T, F}는 비단말 심벌(nonterminal symbol)들의 집합이다.

S = {+, *, (, ), id}는 단말 심벌(terminal symbol)들의 집합이다.

P = { E → E + T, E → T, T → T * F, T → F,

F → (E), F → id }으로 문법 규칙들의 집합이다.

S = E이며 시작 심벌(start symbol)이다.

$는 입력의 끝을 나타낸다.

1) 각 비단말 심벌에 대한 FIRST 집합을 구하시오. (2점) 2) 각 비단말 심벌에 대한 FOLLOW 집합을 구하시오. (3점) 3) SLR(1) 파싱 테이블(parsing table)을 작성하시오. (5점)

4) 3)에서 작성된 파싱 테이블을 이용하여 스트링 id + id * id에 대한 파싱 과정을 보이고 우파스(right parse)를 구하시오. (5점)

제 4 문. 다음 특성(language feature)을 설명하고, 그 특성이 우측 Java 프로그램 코드의 어느 부분(줄번호 포함)에서 어떻게 사용되었는지를 기술하시오. (총 15점) 1) 메소드 재정의(method overriding) (5점)

2) 메소드 중복정의(method overloading) (5점)

3) 동적 메소드 바인딩(dynamic method binding) (5점)

1 class Student {

2 private int intelligence=0;

3 public void study() {

4 intelligence++;

5 }

6 public void study(int p) {

7 intelligence = intelligence + p;

8 }

9 public void evaluate() {

10 if (intelligence>100) System.out.println("Excellent");

11 else if (intelligence>60) System.out.println("Good");

12 else

13 System.out.println("Bad");

14 }

15 }

16 class UnivStudent extends Student{

17 private int intelligence=0;

18 public void study() {

19 this.study(5);

20 }

21 }

22 class Main {

23 public static void main(String[] args) {

24 Student s = new Student();

25 makeStudy(s);

26 s.evaluate();

27 s = new UnivStudent();

28 makeStudy(s);

29 s.evaluate();

30 }

31 public static void makeStudy(Student s) {

32 s.study();

33 s.study(10);

34 }

35 }

행정안전부 시험출제과장

참조

관련 문서

모든 실수 x에

• 일반공급 당첨자 선정 시 주택형별 특별공급 잔여물량과 일반공급 물량을 합산한 물량의 50% 까지 예비입주자를 선정 ( 소수점 이하 절상 하며 각 주택형별 신청자

비한계기술에 발생하는 지대 또는 횡재이윤을 줄이기 위한 공급의무화제도 의 보완제도 중에서 가중치방식(Banding)의 경우 특히 적정 수준의 가중치 결정이 정책의

• 모집단위별 어느 한 성(性)의 합격자가 서류전형, 필기전형 선발인원의 30%에 미달하는 경우, 합격선 -3점 이내 목표미달 성별 응시자 중에서

중복지원, 유형선택 실수 등의 사유로 불이익이 발생하는 경우, 모든 책임은 지원자 본인에게 있으므로, 불이익이 발생하지 않도록 신중하게

당사 홈페이지(www.autonics.com)에서 다운로드 하여 사용하십시오.. 오동작

문법 핵심

경유자동차는 경유에 다른 연료를 섞어서 사용하는