학습개요
프로그래밍 언어를 사용하여 효율적인 프로그램을 개발하기 위해서는 컴퓨터의 개념과 동작 과정에 대한 이해가 선행되어야 합니다. 이 장에서는 컴퓨터의 기본적인 개념과 사용 목적, 컴퓨터를 구성하는 요소인 하드웨어가 어떤 기능을 담당하는지 알아보고 하드웨어의 구성에 대하여 살펴봅니다. 또한 주요 컴퓨터 구성요소인 소프트웨어의 개념과 알고리즘을 사용한 실행 과정에 대하여 학습합니다.
학습목표
1. 컴퓨터 하드웨어와 소프트웨어의 기능에 대하여 설명할 수 있습니다.
2. 숫자와 문자의 데이터 표현 방법에 대하여 설명할 수 있습니다.
3. 프로그램 실행 과정에 대하여 설명할 수 있습니다.
주요용어
- 컴퓨터(computer) : 입력된 데이터를 미리 정해진 절차에 따라 처리하여 정보를 생산하는 기계
- 하드웨어(hardware) : 기억·저장장치, 연산장치, 제어장치, 입·출력 장치 등 컴퓨터를 구성하는 물리적 장치
- 소프트웨어(software) : 사용자가 준 문제를 풀기 위해 단계별 절차에 따라 처리하여 특정 작업을 수행하는 컴퓨터 프로그램
- 알고리즘(algorithm) : 주어진 문제를 풀기 위한 절차를 기술한 것으로 작업을 수행하기 위해 만들어진 명령의 집합
- 프로그래밍 언어 : 프로그램 구현을 위한 프로그래머와 컴퓨터 간의 알고리즘 의사소통 도구
1. 컴퓨터란 무엇인가?
컴퓨터는 미리 정해진 절차에 따라 입력된 데이터를 처리하며 정보를 생산하는 기계로 데이터 처리를 수행하는 하드웨어와 데이터 처리를 지시하는 소프트웨어로 구성됩니다. 즉 하드웨어는 컴퓨터를 구성하는 물리적인 부품을 말하며, 소프트웨어는 물리적 장치를 동작시켜 특정 작업을 수행하는 프로그램을 말합니다. 컴퓨터 구성은 프로그래밍 언어를 배우는 데 알아야 할 필수요소는 아니지만 컴퓨터 프로그램을 효과적으로 개발하기 위해 프로그램 명령어가 컴퓨터와 각 구성요소에 어떠한 영향을 미치는지 이해할 필요가 있습니다. 컴퓨터를 구성하는 하드웨어와 소프트웨어에 대해 알아봅시다.
2. 하드웨어
컴퓨터는 주어진 명령에 따라 데이터를 입력받아 처리하고, 그 결과를 저장하여 최종 출력합니다. 이와 같은 일을 수행하고 처리하는데 있어 하드웨어(hardware)는 <그림 1-1>과 같이 5가지로 구성됩니다.
(1) 중앙처리장치
중앙처리장치(CPU: Center Processing Unit)는 컴퓨터의 두뇌에 해당하며 메모리에서 명령어를 획득하고 실행합니다. CPU는 일반적으로 제어장치(control unit)와 산술/논리장치(arithmetic/logic unit)라는 두 가지 요소로 구성되며 제어장치는 다른 구성요소의 동작을 제어하고 조율하고 산술/논리장치는 수치 연산(더하기, 빼기, 곱하기, 나누기)과 논리적 연산(비교)을 수행합니다.
오늘날 CPU는 트랜지스터(transistors)라고 하는 전자 스위치 수백만 개를 집적시킨 반도체로 만들어집니다. 모든 컴퓨터는 일정한 전자적 펄스(pulse)를 발산하는 내부 클럭(clock)을 가지고 있으며 이러한 펄스는 연산 속도를 제어하고 동기화하는 데 사용됩니다. 클럭 속도가 빠를수록 주어진 시간동안 더 많은 연산을 처리할 수 있습니다. 1990년대까지는 메가헤르츠(㎒) 단위로 측정했으나 현재는 개선되어 일반적으로 수 기가헤르츠(㎓)까지 도달합니다.
CPU는 프로세서의 일부분으로 명령어를 읽고 실행하는 단일 코어(core)로 처음 개발되었습니다. CPU의 처리 기능을 향상시키기 위해, 현재 반도체 제조사는 여러 개의 코어가 내장된 CPU를 생산하고 있습니다. 단일 부품에 두 개 이상의 독립적인 프로세서를 포함하는 CPU를 멀티 코어(multi-core)라 말하며 오늘날 컴퓨터는 일반적으로 4개 또는 8개, 심지어 32개 이상의 독립적인 코어를 가지고 있는 CPU도 있습니다. 곧 수백 개의 코어가 내장된 CPU도 가능해질 것입니다.
(2) 비트와 바이트
컴퓨터에 정보를 저장한다는 것은 일련의 스위치를 켜고 끄는 설정으로 볼 수 있습니다. 따라서 컴퓨터는 연속적인 스위치라고 할 수 있으며 각각의 스위치는 두 가지 상태(켜짐 또는 꺼짐)로만 존재합니다. 스위치가 켜지면 값은 1이 되고, 반대로 스위치가 꺼지면 값은 0이 됩니다. 이러한 0과 1은 2진수 체계로 인식되고 이를 비트(bits: binary digits)라 합니다. 컴퓨터에서 최소한의 저장 단위는 바이트(byte)이며, 바이트는 8개의 비트로 구성됩니다. 컴퓨터의 경우 여러 개의 바이트를 사용합니다.
숫자나 문자와 같은 여러 유형의 데이터는 바이트의 조합으로 인코딩됩니다. 인코딩 체계(encording system)란 컴퓨터가 문자와 숫자 그리고 기호를 컴퓨터가 실제 가용할 수 있는 2진수 체계의 데이터로 어떻게 변환하는지 결정하는 규칙의 집합입니다. 대개 인코딩 체계는 각각의 문자를 사전에 결정된 일련의 숫자로 변환합니다. 예를 들어, 잘 알려진 ACKII 인코딩 체계에서, 문자 C는 1바이트의 01000011로 표현됩니다. 이는 컴퓨터 시스템이 인코딩 체계에 따라 자동으로 데이터의 인코딩과 디코딩을 수행하므로 프로그래머가 이에 대해서 별도의 변환을 수행할 필요는 없습니다.
문자 기준으로 1페이지 워드 문서는 약 20KB를 차지합니다. 따라서 1MB의 저장 공간에는 50페이지의 문서를 저장할 수 있으며 1GB는 약 5만 페이지의 문서를 저장할 수 있습니다. 반면 일반적인 2시간 정도의 고화질 영화는 약 4GB를 차지하며 20편의 영화를 저장하기 위해서는 대략 80GB가 필요합니다.
컴퓨터 저장 용량 단위 간 관계는 다음과 같습니다.
• 1킬로바이트 = 약 1,000바이트 • 1메가바이트 = 약 100만 바이트 • 1기가바이트 = 약 10억 바이트 • 1테라바이트 = 약 1조 바이트 |
(3) 메모리
컴퓨터의 메모리(memory)는 프로그램뿐만 아니라 프로그램이 사용하는 데이터를 저장하는 일련의 순서화된 바이트로 구성됩니다. 현대 컴퓨터의 기본 모델인 폰 노이만 구조에서는 모든 프로그램과 데이터는 CPU에 의해 실행 전 반드시 기억장치인 메모리에 저장되어야 합니다. 즉, 메모리는 프로그램을 실행하기 위한 컴퓨터의 작업 공간이라고 할 수 있습니다. CPU와 마찬가지로 표면에 내장된 수백만 개의 트랜지스터가 집적된 반도체로 구성됩니다. 메모리는 CPU에 비해 덜 복잡하고, 느리며, 저렴합니다.
모든 바이트는 <그림 1-2>와 같이 고유한 주소를 가지며 주소는 데이터를 저장하고 읽기 위한 바이트의 위치를 지정하는데 사용됩니다. 메모리의 바이트는 임의의 순서로 접근할 수 있기 때문에 메모리를 랜덤 액세스 메모리(RAM: Random Access Memory)라고도 합니다. 오늘날 개인용 컴퓨터는 기본적으로 1GB 이상의 RAM을 장착하고 보통 4~8GB의 메모리가 설치됩니다. 일반적으로 컴퓨터에 더 많은 RAM이 설치되면 처리속도가 향상되지만 그 효과는 실직적으로 한계가 있습니다.
메모리의 각 바이트는 항상 임의의 값으로 채워져 있으며 메모리 바이트에 새로운 정보가 저장되면 기존의 내용은 삭제됩니다.
(4) 저장장치
컴퓨터의 메모리는 휘발성(volatile) 데이터 저장소입니다. 즉, 메모리에 저장된 모든 정보는 시스템의 전원이 꺼짐과 동시에 삭제됩니다. 따라서 데이터의 소실을 피하기 위해 프로그램과 데이터는 저장장치(storage device)에 영구적으로 저장되고 컴퓨터가 데이터를 사용하려고 할 때 영구적인 저장장치보다 훨씬 빠른 속도로 동작하는 메모리로 이동합니다. 저장장치는 보통 3가지 유형으로 구분합니다.
• 자기디스크 드라이브 • 광학디스크 드라이브(CD와 DVD) • USB 플래시 드라이브 |
드라이브(drive)란 디스크나 CD와 같은 매체를 구동하는 장치를 말합니다. 저장매체는 물리적으로 데이터나 프로그램 명령어를 저장합니다. 드라이브는 매체에 기록된 데이터를 읽거나 데이터를 매체에 기록합니다.
① 하드디스크
컴퓨터에는 한 개의 하드디스크(hard disk) 드라이브가 장착됩니다(그림 1-3). 하드디스크는 프로그램과 데이터의 영구적 저장을 위해 사용하며, 최신의 컴퓨터는 1~2TB의 데이터를 저장할 수 있는 하드디스크를 사용합니다. 하드디스크 드라이브는 일반적으로 컴퓨터 내부에 장착되지만 이동식 하드디스크로도 사용이 가능합니다.
② CD와 DVD
CD는 컴팩트디스크(Compact Disc)의 약자로 CD-R(Compact Disc Recordable)과 CD-RW(Compact Disc ReWritable) 유형으로 구분합니다. CD-R은 읽기 전용의 영구 저장소로 한 번 기록된 내용물은 사용자가 수정할 수 없습니다. 반면 CD-RW는 하드디스크처럼 사용할 수 있습니다. 즉 디스크에 데이터를 기록한 후 새로운 데이터로 덮어쓸 수 있습니다. 한 장의 CD에는 700MB의 데이터를 담을 수 있습니다. 최신의 PC 대부분은 CD-RW가 장착되어 CD-R과 CD-RW 디스크 모두 사용 가능합니다.
DVD는 디지털 다기능 디스크(digital versatile disc) 또는 디지털 비디오 디스크(digital video disc)를 뜻합니다. DVD와 CD는 매우 비슷하여 데이터를 저장하기 위해 둘 중 어느 것을 사용해도 좋습니다. DVD는 CD보다는 많은 정보를 담을 수 있습니다. 표준 DVD의 저장 용량은 4.7GB입니다. CD와 유사하게 DVD 또한 두 가지, DVD-R(읽기 전용)과 DVD-RW(재기록 가능)가 있습니다.
③ USB 플래시 드라이브
범용 직렬 버스(USB: Universal Serial Bus) 연결 장치는 데이터를 저장하고 전송하기 위한 장치입니다. 컴퓨터에 다양한 종류의 주변 장치를 연결하기 위해 고안되었습니다. USB를 사용하여 프린터, 디지털 카메라, 마우스, 외부 하드디스크 드라이브 등의 기타 장치(peripherals)를 컴퓨터에 연결할 수 있습니다. 플래시 드라이브는 <그림 1-4>와 같이 손가락 1~2마디 정도로 작고 컴퓨터의 USB 연결단자에 삽입되어 이동식 하드 드라이브와 같이 동작합니다. USB 플래시 드라이브는 현재 최대 저장용량이 512GB까지 가능합니다.
(5) 입력장치와 출력장치
컴퓨터는 입력장치와 출력장치를 통해 사용자와 의사소통할 수 있습니다. 입력장치는 사람이 사용하는 문자, 이미지, 동영상 등의 데이터를 컴퓨터가 사용할 수 있는 디지털 데이터로 변환하고 출력장치는 입력장치와 반대로 디지털 데이터를 사람이 인식할 수 있는 유형의 데이터로 표현하는 장치입니다. 입력장치와 출력장치에 어떤 기기들이 포함되는지 알아봅시다.
① 키보드
키보드는 문자 및 숫자 데이터를 입력하기 위한 장치입니다. 일반적인 키보드의 모양은 <그림 1-5>와 같으며, 숫자 패드가 없는 형태인 컴팩트 키보드도 있습니다. 키보드 상단에 위치한 기능키(function key)는 사용하는 소프트웨어마다 개별 기능을 제공합니다. 변형키는 특수키(Shift, Alt, Ctrl)와 동시에 눌렀을 때 다른 키의 일반적인 기능을 변경시킵니다. 키보드의 오른쪽에 위치한 숫자 키패드는 숫자를 신속하게 입력하기 위한 계산기 모양으로 된 별도의 키 세트입니다. 주 키패드와 숫자 키패드 사이에 위치한 방향키는 여러 프로그램에서 화면상의 커서(cursor)를 상하좌우 방향으로 이동시키기 위해 사용합니다. Insert, Delete, Page Up, Page down 키는 워드프로세서나 기타 프로그램에서 텍스트나 객체를 삽입 및 삭제하고 화면에서 한 번에 한 페이지씩 위, 아래로 이동시킬 때 사용합니다.
② 마우스
마우스는 2차원 평면에서의 움직임을 컴퓨터에 전송해주며 포인터라고 불리는 도식 지시자(일반적으로 화살표 모양)를 통해 지시하는 지시 장치입니다. 화면에서 움직이거나 화면의 객체(버튼, 이미지 등)를 클릭하여 동작을 수행하게 하는 데 사용합니다.
초기 마우스는 바닥에 공을 넣어 그 움직임을 측정하는 볼 마우스를 사용하였습니다. 이후에 광센서를 사용하여 마우스 바닥의 움직임을 감지하는 광 마우스가 등장했으며, 2010년대 들어 광 마우스가 확고하게 자리 잡게 되었습니다.
③ 모니터
모니터는 정보를 그래픽의 형태로 표현합니다. 화면 해상도와 도트 피치는 출력의 질을 결정합니다. 화면 해상도는 출력장치의 가로와 세로축에 있는 픽셀의 개수를 명시한 것입니다. 픽셀(pixel, picture element의 약어)은 화면에서 이미지를 형성하는 작은 점을 말합니다. 예를 들면, 23인치 화면의 일반적인 해상도는 너비 2560픽셀, 높이 1440픽셀입니다. 해상도는 수동적으로 설정이 가능하며, 모니터의 크기가 커질수록 최대 해상도는 높아지고 해상도가 높을수록 이미지는 선명하고 깨끗해집니다. 도트 피치(dot pitch)는 밀리미터 단위로 측정되는 픽셀 간의 공간의 정도를 의미합니다. 도트 피치가 작을수록 화면은 더욱 선명해집니다.
④ 프린터
(6) 메인보드
컴퓨터는 <그림 1-6>과 같이 컴퓨터의 모든 부분을 연결하는 회로 기관인 컴퓨터의 메인보드(main board)또는 마더보드(mother board)에 내장됩니다.
메인보드는 컴퓨터의 부품 중 하나로 사람의 혈관 혹은 신경계에 해당합니다. 위에 설명한 컴퓨터의 CPU, HDD, 그래픽카드 등 장치들은 독립적으로 작동할 수 없습니다. 따라서 이와 같은 장치들을 하나로 연결하여 작동할 수 있도록 해주는 것이 메인보드입니다.
3. 소프트웨어
컴퓨터는 스스로 데이터를 입력 받아 정보를 생산하는 것이 불가능합니다. 따라서 사용자에 의해 데이터를 입력받고 주어진 절차에 따라 정보를 처리해야 합니다. 다양한 장치들을 동작시켜 특정 작업(데이터를 옮기거나 연산 결과를 저장하는 등)을 수행하는 명령어들의 집합을 소프트웨어(software)라고 하며 프로그램, 응용 프로그램 또는 애플리케이션이라고도 불립니다.
(1) 알고리즘
알고리즘(algorithm)은 어떠한 문제를 해결하기 위한 일련의 과정을 말합니다. 정확한 의미로 어떠한 작업을 처리하기 위해 만들어진 명령어의 집합입니다. 컴퓨터에서 알고리즘은 반복되는 하나의 작업을 해결하기 위한 하나의 작은 프로시저(진행절차)를 말합니다.
알고리즘을 만족하는 5가지 전제 조건 ① 외부에서 제공되는 입력(숫자, 자료 등)은 "0개"이상 있어야 한다. ② 모든 입력에 대하여 출력은 "1개"이상 존재해야 한다. ③ 수행 과정에서 각각의 명령어는 애매하고 모호함 없이 명확해야 한다. ④ 각 명령은 유한번(유한 시간동안) 수행한 후 종료되어야 한다. ⑤ 모든 과정의 명령은 실행 가능한 것으로 검증 가능한 것이어야 한다. |
(2) 프로그래밍 언어
컴퓨터는 사람이 사용하는 언어를 인식하지 못합니다. 따라서 프로그램을 작성할 때에 반드시 컴퓨터가 사용하는 언어를 사용해야 합니다. 프로그래밍 언어는 사람과 컴퓨터 간의 원활한 의사소통을 위한 도구로 컴퓨터 시스템을 작동시키는 소프트웨어를 작성하기 위한 언어입니다. 현재 수백 가지의 프로그래밍 언어가 존재하며, 이는 보다 간편하게 프로그래밍 작업을 할 수 있도록 개발되었습니다.
① 저급언어
대표적인 저급언어에는 기계어와 어셈블리어가 있습니다. 컴퓨터마다 가지고 있는 각각의 명령어 세트가 있으며 CPU의 종류에 따라 서로 다른 기계어를 갖게 됩니다. 컴퓨터에 명령어를 전달하기 위해서는 2진 코드로 입력해야 하는데 기계어는 컴퓨터에 직접적으로 전달할 수 있는 2진 코드 0과 1의 형태로 표현하는 방식을 의미합니다. 0과 1의 조합으로만 명령어를 전달해야하는 기계어로 프로그래밍을 하는 것은 쉽지 않습니다. 이러한 이유로 기계어 명령문에 대응하여 니모닉(mnemonic symbol)이라는 간단한 단어를 사용한 어셈블리어가 만들어졌습니다. 니모닉을 사용한 어셈블리어 명령문은 다음의 예와 같습니다.
Z = X + Y 연산의 어셈블리 명령문 LOAD 0110 ADD 0111 STORE 1010 |
어셈블리어로 프로그래밍을 보다 쉽게 하게 되었지만 컴퓨터가 이해하기 위해선 기계어로 변환해야 합니다. <그림 1-7>과 같이 어셈블리어로 작성된 코드를 기계어로 변환하는 프로그램을 어셈블러(assembler)라고 합니다.
어셈블리어는 기호화된 표현으로 사람들이 사용하기 쉬운 언어로 만들어졌지만 저급언어로 사실상 기계어에 가깝습니다. 어셈블리어로 코드를 작성하기에 중앙처리장치에 대한 지식이 없는 사람에게는 여전히 어렵고 불편합니다.
② 고급언어
1950년대 문자나 기호, 영어와 유사한 문장 등으로 구성된 고급언어가 등장하며 일반적으로 사용되는 프로그래밍 언어로 자리 잡게 되었습니다. <표 1-1>은 대표적으로 사용되는 프로그램 언어와 해당 언어의 특성에 대해 정리한 것입니다. 하드웨어적인 지식 없이 프로그램 작성이 용이하고 컴퓨터와 독립적이어서 어느 컴퓨터에서든 고급언어로 프로그램을 작성할 수 있고 실행시킬 수 있습니다. 또한 가독성이 높고 다루기 간단하여 학숩과 사용이 쉽다는 장점이 있습니다.
고급언어를 사용하여 2의 5제곱 값을 저장하는 명령문은 다음과 같습니다.
power = 2 **5
인터프리터(interpreter)와 컴파일러(compiler)는 고급언어로 작성된 소스코드(고급언어, 어셈블리어)를 컴퓨터가 이해하고 실행할 수 있는 기계어로 번역하는 프로그램입니다(그림 1-8).
인터프리터는 소스코드를 한 줄 단위로 번역하고 번역과 동시에 실행시킵니다. 목적 프로그램이 생성되지 않아 번역 속도는 빠르지만, 프로그램을 실행시킬 때마다 번역하기 때문에 실행 속도는 느립니다. 인터프리터를 사용하는 언어에는 BASIC, SNOBOL, LIPS, APL, Python 등이 있습니다.
컴파일러는 소스코드 전체를 기계어 코드파일로 번역하여 실행 가능한 파일을 메모리에 적재한 후 실행 합니다. 처음 번역해서 실행하는 데는 시간이 걸리지만 이후 실행할 때에는 생성된 기계어 코드파일을 통해 빠른 실행이 가능합니다. 컴파일러를 사용하는 언어에는 C, C++, JAVA 등이 있습니다.
연습문제
Q1. 컴퓨터의 구성요소 중 눈으로 보여지는 물리적 관점을 무엇이라고 하는가?
① 하드웨어
② 소프트웨어
③ 바이트
④ 프로그래밍 언어
풀이: 컴퓨터는 하드웨어와 소프트웨어로 구성되며 하드웨어는 만질 수 있는 컴퓨터의 물리적인 요소이고 소프트웨어는 하드웨어를 제어하고 작업을 수행하게 하는 보이지 않는 명령문의 집합을 말합니다.
Q2. 1바이트는 몇 비트로 구성되는가?
① 4
② 8
③ 12
④ 16
풀이: 1바이트는 8비트로 구성되며 바이트가 컴퓨터에서 사용되는 최소 정보 저장 단위입니다.
Q3. 사람의 두뇌와 같은 역할을 하는 컴퓨터 장치는 무엇인가?
① 하드웨어
② CPU
③ 메모리
④ 디스크
풀이: 명령어와 데이터를 읽어 명령어에 따라 데이터를 처리하는 장치 즉, 연산 장치와 제어장치의 기능을 하는 부분을 CPU(Central Processing Unit)이라고 합니다.
Q4. 다음 중 컴퓨터 하드웨어와 소프트웨어에 대한 설명으로 옳지 않은 것은?
① 하드웨어는 컴퓨터를 구성하는 물리적 장치로 기억·저장장치, 연산장치, 제어장치, 입력장치, 출력 장치가 있다.
② 다양한 장치들을 동작시켜 특정 작업을 수행하여 해결하는 프로그램을 소프트웨어라 한다.
③ 주어진 문제를 풀기 위한 단계별 절차를 순서적으로 기술한 것을 소프트웨어라 한다.
④ 하드웨어 저장장치로는 자기디스크 드라이브, 광학디스크 드라이브, USB 플래시 드라이브가 있다.
풀이: ③ 주어진 문제를 풀기 위한 단계별 절차를 순서적으로 기술한 것을 알고리즘이라 합니다.
① 하드웨어를 구성하는 5대 장치로 기억·저장장치, 연산장치, 제어장치, 입력장치, 출력 장치가 있습니다.
② 소프트웨어는 컴퓨터가 내장된 장치가 어떤 일을 수행해야 하는지 지시하는 명령어를 포함하고 있습니다.
④ 하드웨어 저장장치로 자기디스크 드라이브, 광학디스크 드라이브, USB 플래시 드라이브가 있으며 영구적으로 기록이 저장됩니다.
Q5. 프로그래밍 언어에 대한 설명으로 옳은 것은?
① 프로그래밍 언어는 프로그래머와 컴퓨터 간의 의사소통을 위한 도구로 반드시 컴퓨터가 이해할 수 있는 언어로 변환할 필요는 없다.
② 어셈블리어의 명령어는 기계어 명령어와 대응되며 고급언어에 속한다.
③ 고급언어로 작성된 소스코드를 기계어로 번역하기 위한 프로그램으로 인터프리터와 컴파일러가 있다.
④ 고급언어는 각각의 명령문을 니모닉(mnemonic)이라는 단어를 사용하여 작성한다.
풀이: ③ 고급언어를 번역하기 위한 프로그램으로 인터프리터와 컴파일러가 있으며 어셈블리어를 번역하기 위한 프로그램으로 어셈블러가 있습니다.
① 프로그래밍 언어는 사람이 보다 간편하게 프로그래밍 작업을 할 수 있도록 개발되었으며 반드시 컴퓨터가 이해할 수 있는 언어로 변환해야 합니다.
② 어셈블리어는 기계어에 가까운 저급언어입니다.
④ 니모닉 단어를 사용하여 명령문을 작성하는 언어는 어셈블리어입니다.
Q6. 다음 중 인터프리터와 컴파일러에 대한 설명으로 옳지 않은 것은?
① 인터프리터와 컴파일러는 고급언어로 작성된 소스코드를 기계어로 번역하는 프로그램이다.
② 컴파일러를 사용하는 언어의 종류로는 C, C++, JAVA, Python 등이 있다.
③ 인터프리터는 고급언어로 작성된 소스코드를 한 줄씩 번역하여 실행한다.
④ 컴파일러는 고급언어로 작성된 소스코드 전체를 번역하여 실행한다.
풀이: ② Python은 인터프리터를 사용하는 언어로 그밖에도 BASIC, SNOBOL, LIPS, APL 등이 있습니다.
① 고급언어를 번역하기 위한 프로그램으로 인터프리터와 컴파일러가 있으며 어셈블리어를 번역하기 위한 프로그램으로 어셈블러가 있습니다.
③ 인터프리터는 고급언어로 작성된 소스코드를 한 줄 단위로 번역하여 실행합니다.
④ 컴파일러는 고급언어로 작성된 소스코드 전체를 번역하여 실행 가능한 실행 파일을 생성한 후 실행합니다.
정리하기
1. 컴퓨터는 사전에 정의된 절차에 따라 정보를 생성하는 기계이며 하드웨어와 소프트웨어로 구성됩니다.
2. 하드웨어는 제어장치, 연산장치, 기억/저장장치, 입력장치, 출력장치로 구성됩니다.
3. 소프트웨어는 주어진 문제를 해결하기 위한 단계 절차인 알고리즘에 의해 동작과정이 이루어집니다.
4. 비트(bit)는 0 또는 1의 이진수이고 바이트(byte)는 연속되는 8개의 비트(bit)로 이루어집니다.
5. 자연어와 유사한 고급 언어로 작성된 프로그램을 소스 코드라고 하며 컴파일러와 인터프리터에 의해 컴퓨터가 이해할 수 있는 기계어로 변환되어 실행됩니다.