컴퓨터 기본 원리 프로그래밍 언어 C 프로그래밍 환경 C 프로그래밍 작성, 컴파일, 링크 및 실행 Chapter 1 C 언어 프로그래밍 개론 컴퓨터 기본 원리 프로그래밍 언어 C 프로그래밍 환경 C 프로그래밍 작성, 컴파일, 링크 및 실행
컴퓨터 기본 원리 컴퓨터 시스템: 하드웨어 + 소프트웨어 하드웨어: 유형의 물리적인 구성요소 소프트웨어: 원하는 결과를 얻기 위해 하드웨어에게 내리는 명령 특정한 작업을 수행하기 위하여 설계된 명령어 집합의 모임
컴퓨터 구조와 하드웨어 표준 하드웨어 구조 Input device(s) Output device(s) Processor (CPU) Central Processing Unit 명령(프로그램)을 해석하고 실행 Memory 주기억장치 & 보조기억장치 데이터와 명령(프로그램)을 저장 Input device(s) 마우스, 키보드, 등. Output device(s) 비디오 디스플레이, 프린터, 등. CPU and memory are physically housed together 표준 하드웨어 구조 Memory (main & auxiliary) Input Devices (such as mouse and keyboard) Processor (CPU) Output Devices (such as video display or printer)
물리적인 구성 Keyboard Monitor Chassis CPU memory disk drives I/O connectors etc.
기억장치(Memory)의 종류 주기억장치 보조기억장치 작업 영역(working area) 프로그램과 데이터를 임시로 저장(프로그램이 실행되는 동안) 보조기억장치 영구적으로 저장(more or less) 프로그램과 그 결과를 보존 플로피 & 하드 디스크 드라이브, CD, 테이프, 등.
주기억장치의 구성 Bit = 하나의 2진수 2진수는 0 이나 1 중 하나의 값만 가질 수 있음 Byte = 8 비트 “Byte Addressable” 주기억장치는 각 위치에 한 바이트의 데이터 단위로 숫자가 부여된 리스트 데이터 항목 당 바이트의 수는 변할 수 있음
보조기억장치의 구성
(input for the program) 프로그램의 실행 Program Computer Data (input for the program) Output
소프트웨어의 여러 유형 사용자가 작성한 응용 소프트웨어 상용 응용 소프트웨어 시스템 소프트웨어(Operating System) word-processor/editor web browser compiler or assembler etc. 시스템 소프트웨어(Operating System) DOS, MS- Windows(3.x, 95, 98, NT), MacOS, UNIX, etc.
사용자 인터페이스의 여러 유형 명령어 입력(Command-line) 메뉴 키워드와 문자를 직접 입력 DOS 와 UNIX 메뉴 DOS and Windows의 부분 GUI (Graphical User Interface) 아이콘을 클릭 “event-driven” 이라고도 부름 MacOS, Windows
프로그래밍 언어의 계층
고급언어와 고급언어가 아닌 것들 ... 고급언어 (HLL) 자연어에 가장 가까움 단어, 숫자, 수학 기호로 구성 하드웨어가 직접 이해할 수 없음 “portable” 소스 코드 (하드웨어와 독립) Java, C/C++, COBOL, FORTRAN, BASIC, Lisp, Ada, 등. 기계어 (lowest level) 인간의 자연어와는 가장 거리가 멀지만, 하드웨어의자연어에 가장 가까움 0과 1로만 구성 하드웨어가 직접 이해할 수 있음 Portable하지 않음 (하드웨어에 종속)
어셈블리어 (middle level) 기계어를 사람이 어느 정도 읽을 수 있게 만든 버전 단어, 약자, 문자, 숫자 등이 0과 1을 대치함 사람이 읽을 수 있는 코드에서 기계가 실행 가능한 코드로 쉽게 변환할 수 있음 기계어처럼 portable하지 못함 (하드웨어에 종속)
소스 코드를 기계어 코드로 바꾸는 방식 “프로그램의 컴파일” “컴파일러(Compiler)” “어셈블리(Assembly)” 소스 코드를 기계어 코드로 바꾸는 방식 “프로그램의 컴파일” 고급 언어로 된 소스 코드를 기계어 코드(object, or executable)로 번역함. “컴파일러(Compiler)” HLL 소스 코드를 기계어(object, or executable) 코드로 번역하는 프로그램. “어셈블리(Assembly)” 어셈블리어로 된 소스 코드를 기계어 코드(object, or executable)로 번역함. “어셈블러(Assembler)” 어셈블리어 소스 코드를 기계어(object, or executable) 코드로 번역하는 프로그램. Compilers need to know the specific target hardware
컴파일러 vs. 어셈블러 vs. 인터프리터 Compiler, Assembler, or Interpreter Source 컴파일러와 어셈블러 번역(translation)은 사용자가 명령하는 별도의 단계 번역(translation)은 프로그램의 실행 시간이 아닌 “off-line”에서 수행 인터프리터(Interpreters) – 소스 코드를 목적 코드(object code)로 번역하는 다른 방식 소스 코드에서 목적 코드로의 해석(interpretation)은 별도의 단계가 아님 해석(translation)은 실행 시간인 “on-line”에서 수행 Compiler, Assembler, or Interpreter Source Code Object Code
C와 C++ 프로그래밍 언어 C 언어 C++ 언어 고급언어의 편리성과 어셈블리어의 강력함을 가짐 컴퓨터 응용의 여러 분야에서 사용이 증가 절대로 어려운 언어가 아님!! C++ 언어 C 언어의 확장 언어(superset) 객체 지향 프로그래밍 언어(OOP)
C 프로그램 실행 C 프로그램을 작성, 컴파일, 링크, 실행하는 단계: 1. 문서 편집기를 사용하여 프로그램(소스 코드)을 입력한다. 2. 파일명(.c로 끝남)을 지정하여 저장한다. 3. 입력 파일이 필요하면 문서 편집기로 작성하고 저장한다. 4. C 컴파일러(Visual C++, Turbo C, GNU C, …)를 사용하여 소스 코드를 컴파일, 링크, 실행한다. 5. 오류가 없다면, 필요한 파일들을 인쇄, 보관하고 C 컴파일러에서 빠져 나온다. 6. 오류가 있다면, 디버깅한 내용을 저장하고 단계 4부터 반복한다.
Visual C++을 이용한 예제 프로그램 1의 실행
Visual C++을 이용한 예제 프로그램 1의 실행(계속) .
Visual C++을 이용한 예제 프로그램 1의 실행(계속)
Visual C++을 이용한 예제 프로그램 1의 실행(참고) 1. Microsoft Visual C++ 6.0 IDE를 실행시킨 후, File -> New 메뉴를 선택한다. 2. New 대화상자가 열리면 Projects 탭의 Win32 Console Application 항목을 선택하고, Project name: 항목에는 해당 프로그램의 프로젝트 이름을 입력한다. 그리고 Location 항목에는 프로젝트가 저장될 폴더 위치를 지정한다. 설정을 마치면 OK 버튼을 눌러 다음으로 진행한다. 3. Win32 Console Application 대화상자가 나타나면서 생성할 프로그램에 대한 기본 골격을 생성할 수 있도록 사용자에게 설정 내용을 물어온다. 여기에서는 기본적인 콘솔 프로그램 작성이 목적이므로 An empty project 항목을 선택하고 Finish 버튼을 눌러서 프로그램 생성을 마친다. 4. Finish 버튼을 누르면 New Project Information 대화상자가 나타나는데 이 대화상자에는 지금까지 설정한 내용을 보여준다. 이 대화상자에서 OK 버튼을 누르면 소스 코드 파일을 생성하기 시작한다. 5. 프로그램을 위한 프로젝트 파일이 생성되면 이 프로젝트에 새로운 소스 파일을 포함시킨다. 6. 원시 코드 파일을 생성하여 프로젝트에 추가하기 위해서 File-> New 메뉴를 선택한다. 7. New 대화상자가 열리면 Files 탭의 C++ Source File을 선택하고, Add to project: 항목에 체크 표시를 한 후, File: 항목에는 해당 소스 파일 이름을 정하여 입력한다. 모든 입력 및 설정이 끝나면 OK 버튼을 누른다. 8. 지정한 이름의 소스 파일을 편집기가 열면, 이 파일에 프로그램을 입력한다. 9. File -> Save 메뉴를 선택하여, 소스 파일에 대한 입력이 끝난 후에 프로그램 파일을 저장한다. 10. 해당 파일을 컴파일하기 위하여 Build -> Compile 혹은 Build -> Build 메뉴를 선택한다. 11. 정상적으로 컴파일이 되어 .exe로 끝나는 실행 파일이 생성되었으면, Build -> Execute 메뉴를 선택하여 한글 MS-DOS 창에서 실행한다.