개념 한 쪽
사무자동화산업기사 프로그래밍 언어 종류 — 컴파일러·인터프리터·예약어·변수
프로그래밍 언어 종류 세트는 소스를 기계어로 옮기는 방식과 언어를 이루는 규칙을 묻는다. 컴파일러는 원시 프로그램을 한 번에 번역해 목적 프로그램을 만들고 인터프리터는 번역과 실행을 함께 하므로, 실행 효율을 중시하면 컴파일러가, 반복 실행이 잦은 경우에는 컴파일러 쪽이 유리하다. 예약어의 성격과 변수·상수의 차이, 어휘 분석이 하는 일도 같은 묶음에서 확인한다.
이 개념을 문제로 확인하고 싶으면 이 개념 문제 10개 풀기 회원용
가입 없이 오늘의 10문제 바로 풀기 →
뜻
번역 방식은 생성물과 실행 시점으로 갈린다. 컴파일러는 원시 프로그램 전체를 한 번에 기계어로 번역해 목적 프로그램(목적 파일)을 만들고, 만들어진 목적 프로그램을 실행하므로 실행 효율성이 높다. 인터프리터는 소스를 매번 번역하면서 실행하기 때문에 목적 프로그램을 생성하지 않고, 번역에 드는 부담 때문에 반복문이 많은 프로그램에서는 컴파일 방식보다 불리하다 — 다만 융통성이 있고 줄 단위로 번역하며 추가 메모리가 드는 것이 인터프리터의 특징이다. 포트란·코볼·파스칼은 컴파일 방식의 대표적인 언어다. 실행 시간 효율성을 중시할수록 컴파일러를 쓰므로, 실행 효율에서 인터프리터가 유리하다는 설명은 거리가 먼 선지가 된다.
예약어는 언어의 문법 구조를 잡아 주는 장치다. 예약어는 변수명으로 쓸 수 없고, 구문 분석기가 문법 구조를 빠르게 인식하게 하며 심볼 테이블 검색을 단축하고 문법 오류가 났을 때 오류 복구 전략을 세우는 데 기여한다. 따라서 예약어가 판독성을 떨어뜨린다거나 언어가 발전할수록 예약어 수가 적어진다는 설명은 옳지 않다 — 오히려 표현력이 풍부해지면서 예약어가 늘어나는 경향이 있다.
번역의 첫 단계와 값의 성질도 함께 묻는다. 어휘 분석은 원시 프로그램을 문자 단위로 스캐닝해 토큰(token)을 만들어 내는 단계이고, 문법 검사와 중간 코드 생성은 파서(구문 분석)의 역할이므로 어휘 분석이 문법을 검사한다는 설명은 틀린 선지다. 변수는 프로그램 실행 중 값이 변경될 수 있는 메모리 공간으로 이름·값·속성으로 구성되고 명시적 선언과 묵시적 선언이 모두 있으며, 변경되지 않는 공간은 상수라서 변수와 구분된다.
예제
출제 패턴은 세 가지다. ① 번역 방식 비교 — 「전체를 번역해 목적 프로그램을 만든다」와 「번역과 실행을 함께 한다」를 기준으로 컴파일러와 인터프리터를 가르고, 실행 효율·반복문 처리에 대한 설명을 뒤집어 놓은 선지를 찾는다. ② 예약어·변수 판단 — 예약어를 변수명으로 쓸 수 있다거나 판독성을 해친다고 한 설명, 변수를 변경 불가능한 공간이라고 한 설명이 오답이다. ③ 단계 역할 구분 — 토큰 생성은 어휘 분석, 문법 검사와 중간 코드 생성은 파서의 몫으로 나눈다.
자주 묻는 물음
- 컴파일러와 인터프리터는 어떻게 다른가요?
- 컴파일러는 원시 프로그램 전체를 한 번에 기계어로 번역해 목적 프로그램을 생성하고 그것을 실행하므로 실행 효율성이 높습니다. 인터프리터는 소스를 매번 번역하면서 실행해 목적 프로그램을 만들지 않으며, 반복문이 많은 프로그램에서는 컴파일 방식보다 불리합니다. 포트란·코볼·파스칼은 컴파일 방식 언어입니다.
- 예약어는 어떤 성질을 가진 말인가요?
- 예약어는 변수명으로 사용할 수 없고, 구문 분석기가 문법 구조를 빠르게 인식하도록 돕습니다. 심볼 테이블 검색을 단축하고 문법 오류 시 오류 복구에도 기여합니다. 판독성을 저해한다거나 언어가 발전할수록 예약어가 줄어든다는 설명은 옳지 않습니다.
- 어휘 분석이 하는 일과 변수의 성질은 무엇인가요?
- 어휘 분석은 원시 프로그램을 문자 단위로 스캐닝해 토큰을 생성하는 단계이고, 문법 검사와 중간 코드 생성은 파서의 역할입니다. 변수는 실행 중 값이 변경될 수 있는 메모리 공간으로 이름·값·속성으로 구성되며 명시적·묵시적 선언이 모두 있습니다. 변경되지 않는 공간은 상수입니다.
사무자동화산업기사 풀이 세트에서 이 개념의 문제 10개를 바로 풀어 보세요.