목록Study_exam/프로그래밍 언어 개념 연습문제 (10)
안녕하세요
01. 다음 매개변수 전달 기법들의 장단점을 나열하여라. ① 참조 전달 ② 값 전달 ③ 이름 전달 ④ 값-결과 전달 02. C++와 Ada의 사용자정의 연산자 중복의 방법을 공부하고 언어를 평가하는 우리의 기준을 사용하여 두 언어를 비교하는 보고서를 작성하시오. 03. FORTRAN IV 구현에서 매개변수는 접근 통로만을 사용하는 참조 전달이었다. 이런 설계 선택의 장단점을 말하시오. 04. 구현자에게 in out 모드 매개변수 구현을 복사-전달 또는 참조-전달 중에서 선택하게 하는 Ada 83 설계자의 결정에 찬반론을 펴시오.(이는 Pascal의 var도 같음) 05. FORTRAN은 부프로그램이 다중 진입점을 갖는 것을 허용한다. 왜 이것이 때때로 값진 능력인가? 06. 다음 Algol 형태의 프로그..
01. 복귀 주소, 정적 링크, 동적 링크, 매개변수를 활성화 레코드의 하단부에 놓는 이유는 무엇인가? 02. 정적 체인이 사용되었을 때, 비지역 변수의 참조를 찾는 방법을 설명하고, 이 방법에 있 어서 두 개의 잠재적인 문제점은 무엇인가? 03. 지역 접근, 비지역 접근, 복귀 등에 관해 정적 체인의 효율성과 디스플레이의 효율성을 비교하시오. 04. 다음 Algol 형태 프로그램을 가지고 물음에 답하여라. ① 프로시저 C가 두 번 호출될 때까지 간단한 호출 순서를 나열하여라. ② 이 때 발생된 활성 레코드들은 실행 시간 스택을 사용하여 배당되는데, 동적 링크를 명시하라. ③ ②의 상태에서 정적 링크를 명시하라. 05. algol 유사 언어의 한 블록이 활성화될 때 활성 레코드의 동적 링크와 정적 링크 ..
01. 부프로그램의 정적 조상은 무엇인가? 부프로그램의 동적 조상은 무엇인가? 02. 블록이란 무엇인가? 03. 정적 영역과 동적 영역을 갖는 프로그램에서 비지역 변수에 대한 참조가 어떻게 연결되는지 구별하라. 04. 정적 영역과 동적 영역이 갖는 장점과 단점은 무엇인가? 05. Algol 형태의 골격 프로그램 구조에서 각 단위 프로그램의 참조 환경을 나열하여라. 단, 각 변수 이름마다 어느 단위 프로그램에서 선언된 변수인지를 명확히 하라. 06. Ada에서 사용되는 제어 변수의 영역과 Pascal에서의 제어 변수 영역과의 차이점을 논하거나 C, C++, Ada에서 제어변수 영역의 차이점을 논하라. - 차이점 * C, C++은 ‘{’(brace)로 블럭을 설정하여 영역을 표현하는 블록 중심의 언어이다. ..
01. 몇 가지 언어들을 선택하여 그들 언어에서는 기본 자료형으로 어떠한 자료형을 채용하고 있는지 살펴보고, 선택한 언어들에서의 자료형들을 비교하여 보아라. 02. 메모리의 한 개 비트로 부울 값을 표현하는 것에 대한 찬성과 반대 의견은 각각 무엇인가? 03. 열거 자료형을 사용할 경우의 장점을 말하라. * 열거자료형의 장점 - 판독성과 신뢰성 면에서 장점을 제공 - 열거형 상수와 열거 형 변수를 이용하면 정수값 대신에 이름을 이용해서 프로그 래밍을 할 수 있는데, 이들을 이용함으로써 입력 에러 등을 줄임 →변수가 가질 수 있는 자료의 값을 미리 열거 - 열거형 상수의경우에 열거형 상수는 기억영역을 확보하지 않는다. (변수가 아니고 상수 이기 때문이다.) 04. 문자열에 대한 설계 고려 사항을 기술하고,..
01. 몇몇의 프로그래밍 언어에서는 특별한 언급이 없는 한 식별자의 길이를 제한하고 있다. 그 이유가 무엇인지를 알아보아라. 또한, 식별자의 첫 번째 문자를 영문자로 시작하도록 제한하고 있는 이유도 밝혀라. 그 이유는 각 프로그래밍 언어의 컴파일러 때문이다. 컴파일러가 소스코드를 실행 가능한 기계어로 번역한다. 식별자의 길이가 무제한이라면 프로그래밍 하는데 있어서(코드작성) 너무 긴 식별자를 사용함으로써 불편을 야기 시키며, 긴 식별자의 사용으로 인한 오타로 인해서 컴파일시 에러가 발생할수 있으며, 디버깅에 많은 문제점을 야기시킨다. 식별자의 첫 문자를 숫자로 시작하면, 이 식별자가 식별자인지 숫자인지 컴파일러가 구별하기 어렵기 때문에 첫 번째 문자를 영문자로 시작하도록 제한한다고 할수 있겠다. 02. ..
01. 다음 약어에 대한 원어를 쓰시오. (1) PGS (2) YACC (3) PQCC, TCOL (4) ACK, EM (5) JIT 02. 컴파일러의 일반적인 구조를 어휘 분석기, 구문 분석기, 중간 언어 생성기, 코드 최적화기, 그리고 목적 코드 생성기로 나누어 설명하고 특히, 각 단계의 입력과 출력을 설명하시오. 03. 코드 최적화는 관점에 따라 지역 최적화와 전역 최적화로 구분할 수 있다. 지역 최적화(핍홀 최적화)에 의해 얻을 수 있는 효과를 열거하시오. 04. 렉스와 YACC의 기능을 간단히 설명하시오. 그리고 렉스와 YACC를 이용하여 컴파일러의 전단부를 구현하는 방법을 설명하시오. 05. 컴파일 과정을 어휘 분석, 구문 분석, 중간 코드 생성, 코드 최적화, 목적 코드 생성 단계로 나누어 ..
01. 프로그래밍 언어가 갖는 예약어에 대하여 설명하고, 예약어를 사용함으로써 얻어지는 장단점을 설명하라. 02. 언어 복잡성 을 측정하는 단위의 하나가 예약어의 수이다. 다음 언어들의 예약어와 미리 정의된 식별자를 나열하고 그 의미를 기술하라. (a) C (b) Pascal (c) C++ (d) Java (e) Ada (f) Fortran 99 03. 다음은 Algol 60에 정의된 for 문장에 관한 BNF이다. ::= | : ::= for := do ::= | , ::= | step until | while (1) 위 BNF를 EBNF로 표현하라. (2) 위 BNF를 구문 도표로 표현하라. 04. 다음 구문 도표를 보고 물음에 답하라. (1) BNF로 나타내시오 (2) EBNF로 나타내시오 05. ..
01. 다음과 같은 언어 설계 원칙을 잘 준수하고 있거나 위반하는 특징의 예를 실제 언어에서 찾아라. (1) 효율성(efficiency) (2) 표현력(expressiveness) (3) 유지 보수성(maintainability) (4) 판독성(readability) (5) 안전성(security) (6) 간결성(simplicity) (7) 작성력(writability) (8) 신뢰성(reliability) 02. 직교성, 일반성, 획일성을 구분할 수 있는 예를 들어 보아라. 03. 부프로그램 호출에서 매개변수에 대한 타입 검사가 언어 설계 기준에서 왜 중요한가? 04. 지난 40년 동안 프로그래밍 언어 설계에 가장 강력하게 영향을 미친 설계 기준은 무엇인가? 05. 서로간에 직접 상충되는 두 가지의 언..