개념 한 쪽
사무자동화산업기사 자료형, 연산자 — 어휘 분석 토큰·포인터·기억 클래스
자료형, 연산자 세트는 프로그램이 문자와 값과 주소를 다루는 규칙을 묻는다. 원시 프로그램을 문자 단위로 스캐닝해 의미 있는 최소 단위로 나누는 어휘 분석과 그 결과인 토큰, 변수의 번지를 참조하는 C언어의 & 연산자와 간접 참조 *, 저장 클래스를 적지 않았을 때의 기본값이 확인 대상이다. 제어 구조가 반복문과 조건문으로 갈리는 것과 묵시적 제어, GOTO 문의 성격도 함께 나온다.
이 개념을 문제로 확인하고 싶으면 이 개념 문제 10개 풀기 회원용
가입 없이 오늘의 10문제 바로 풀기 →
뜻
번역의 첫 단계는 문자를 의미 있는 조각으로 나누는 일이다. 어휘 분석은 원시 프로그램을 하나의 긴 문자열로 보고 문자 단위로 스캐닝하여 문법적으로 의미 있는 일련의 문자들로 분할하며, 이때 나뉜 문법적 단위가 토큰(Token)이다. 식별자·키워드·연산자·상수 등이 토큰이 되고, 파서는 구문 분석을, BNF는 문법 정의를, 오토마타는 언어 인식 모델을 맡는다 — 구문 분석은 토큰을 구문 트리로 만드는 후속 단계라 어휘 분석의 산출물과 구분된다.
C언어의 포인터는 주소를 다루는 자료형이다. 포인터 변수는 메모리 주소를 저장하는 변수이고, 변수의 번지를 참조할 때는 &(Address-of) 연산자를, 주소가 가리키는 값을 쓸 때는 *(간접 참조) 연산자를 쓴다 — #은 전처리기 지시자이므로 번지 참조 연산자로 본 설명은 틀린 선지다. 저장 클래스(기억 클래스)를 명시하지 않은 변수는 기본적으로 자동 변수(auto)로 간주되고, static은 지속성, register는 속도 최적화, extern은 외부 참조를 뜻한다.
제어 구조와 문장의 성격도 함께 묻는다. while, for, do-while은 조건이 만족되는 동안 블록을 되풀이하는 반복문이고, if-else는 단일 경로를 고르는 조건문이라 성격이 다르다. 묵시적 제어는 프로그래머가 명시적으로 지시하지 않아도 언어가 미리 정해 둔 실행 순서에 따라 제어가 일어나는 방식으로, 순차 실행 구조가 대표적이다. GOTO 문은 프로그램의 흐름을 비약적으로 바꾸는 비구조적 점프라 제어 구조를 복잡하게 만들고 가독성을 떨어뜨려 유지보수와 이해를 어렵게 하므로 구조적 프로그래밍에서는 쓰지 않는 것이 원칙이다.
예제
출제 패턴은 세 가지다. ① 컴파일러 단계 매칭 — 「문자 단위로 스캐닝해 나눈 문법적 단위」는 토큰이고, 이 일을 하는 단계는 어휘 분석이며, 파서·BNF·오토마타를 답으로 둔 선지는 오답이다. ② 연산자·저장 클래스 판단 — 변수의 번지 참조는 &, 간접 참조는 *이고 #을 번지 참조라 한 설명은 틀린 선지이며, 저장 클래스 미지정 변수는 auto로 간주한다. ③ 문장 성격 구분 — 반복문(while·for·do-while)과 조건문(if-else)을 갈라 성격이 다른 하나를 찾고, GOTO 문을 구조적 프로그래밍에 도움이 되는 문장으로 서술한 선지를 걸러낸다.
자주 묻는 물음
- 어휘 분석과 토큰은 무엇인가요?
- 어휘 분석은 원시 프로그램을 하나의 긴 문자열로 보고 문자 단위로 스캐닝하여 문법적으로 의미 있는 일련의 문자들로 나누는 과정이고, 이때 나뉜 문법적 단위가 토큰(Token)입니다. 식별자·키워드·연산자·상수 등이 토큰이 되며, 파서는 구문 분석, BNF는 문법 정의, 오토마타는 언어 인식 모델을 담당합니다.
- C언어의 포인터 연산자와 기억 클래스는 어떻게 정리되나요?
- 변수의 번지를 참조할 때는 &(Address-of) 연산자를 쓰고, 포인터가 가리키는 값을 다룰 때는 *(간접 참조) 연산자를 씁니다. #은 전처리기 지시자라 번지 참조 연산자가 아닙니다. 저장 클래스를 명시하지 않은 변수는 자동 변수(auto)로 간주되고, static은 지속성, register는 속도 최적화, extern은 외부 참조를 의미합니다.
- 묵시적 제어와 제어문, GOTO 문의 성격은 무엇인가요?
- 묵시적 제어는 프로그래머가 지시하지 않아도 언어가 미리 정해 둔 실행 순서에 따라 제어가 일어나는 방식으로 순차 실행 구조가 대표적입니다. while·for·do-while은 반복문이고 if-else는 조건문이라 성격이 다릅니다. GOTO 문은 흐름을 비약적으로 바꾸는 비구조적 점프로 제어 구조를 복잡하게 하고 가독성을 떨어뜨려 유지보수를 어렵게 합니다.
사무자동화산업기사 풀이 세트에서 이 개념의 문제 10개를 바로 풀어 보세요.