CHAPTER 05 프로그래밍 - infosec.jejunu.ac.krinfosec.jejunu.ac.kr/lecture/2014-1/ch-05.pdf ·...

Preview:

Citation preview

CHAPTER 05 프로그래밍

IC & EPL

2013. 4

박 남 제

namjepark@jejunu.ac.kr

프로그래밍이란

프로그래밍 언어

프로그램 구현 기법

프로그램 실행 과정

프로그래밍 절차

C로 작성한 프로그램 예

차례

2

3

SECTION 01 프로그래밍이란

프로그램(program)

사전적 의미: 지시 사항들이 나열된 순서

컴퓨터 프로그램(computer program)

컴퓨터에게 주어지는 일련의 명령문들

프로그래밍 언어(programming language)

프로그래밍(programming)

컴퓨터를 효율적으로 사용할 수 있도록 프로그램을 만드는

과정

01 프로그래밍이란

4

5

SECTION 02 프로그래밍 언어

프로그래밍 언어(programming language)

기계어와 자연 언어의 중간 형태로 고안된 언어

컴퓨터가 읽을 수 있고 사람이 읽을 수 있는 형식으로 계산

을 서술하기 위한 표기 체계

작성된 프로그램을 기계어로 번역해주는 프로그램 필요

02 프로그래밍 언어

6

저급 언어(low-level language)하드웨어에 의존적인 언어

기계어(machine language)

컴퓨터가 직접 이해할 수 있는 언어(0과 1의 이진수)

어셈블리어(assembly language)

기계어의 명령문을 기호로 나타낸 언어

어셈블러(assembler)를 이용하여 기계어로 번역함

고급 언어(high-level language) 사람 중심

C, C++, Java 등

컴파일러(compiler)를 이용하여 기계어로 번역함

2.1 프로그래밍 언어의 분류

7

2.2 프로그래밍 언어의 세대 구분

8

포트란(FORTRAN, FORmula TRANslation)1950년대 중반에 개발된 세계 최초의 고급 언어

삼각함수, 지수함수 등과 같은 기초적인 수학 함수들을 그대로 사용할 수 있는 언어

2.3 주요 프로그래밍 언어 (1/6)

9

코볼(COBOL, COmmon Business Oriented Language)

1960년에 개발된 사무 처리용 언어

네 개의 디비전(division)으로 구성

식별부(identification division)

표지부(environment division)

데이터부(data division)

절차부(procedure division)

2.3 주요 프로그래밍 언어 (2/6)

10

베이직(BASIC, Beginner’s All-purpose Symbolic Instruction Code)

1960년대 중반에 개발된 언어

배우기 쉽고 개인용 컴퓨터에서 사용하기 쉬움

2.3 주요 프로그래밍 언어 (3/6)

11

CCPL, BCPL, B를 기본으로 하여 1970년대에 만들어진 언어

다양한 종류의 컴퓨터에 이식 가능

2.3 주요 프로그래밍 언어 (4/6)

12

C++1980년대 중반에 C의 특성을 개선하고 객체 지향 프로그래밍(OOP, Object Oriented Programing)을 지원할 수 있도록 확장하는 방향으로 개발된 언어

2.3 주요 프로그래밍 언어 (5/6)

13

Java선(Sun)사는 오크(Oak) 언어를 인터넷에서 각광을 받고 있는 WWW에 적용하여 Java라는 이름으로 바꾸어 개발

방대한 양의 API(Application Programming Interface)를 보유함

2.3 주요 프로그래밍 언어 (6/6)

14

15

SECTION 03 프로그램 구현 기법

번역 기법(translation)원시 프로그램을 컴퓨터가 이해할 수 있는 기계어로 번역하여 목적 프로그램(object program)으로 만드는 방법

어셈블러(assembler)

컴파일러(compiler)

3.1 번역 기법

16

인터프리터(interpreter)베이직과 같은 고급 언어로 작성된 원시 프로그램을 명령문단위로 하나씩 읽어서 기계어로 번역한 후에 바로 실행되도록 함

3.2 인터프리터 기법

17

하이브리드(hybrid) 기법번역 기법과 인터프리터 기법 모두를 사용하는 기법

(예) 네트워크를 통한 Java 프로그램 실행 과정

3.3 하이브리드 기법

18

19

SECTION 04 프로그램 실행 과정

04 프로그램 실행 과정

20

코딩(coding)원시 프로그램을 작성하는 과정

문서 편집기(text editor) 사용

4.1 프로그램 작성

21

목적 파일(object file) 생성

4.2 컴파일

22

링크따로 작성되거나 컴파일된 파일들을 모아 실행 가능한 하나의 단위로 만들어진 프로그램으로 연결하는 과정

실행 파일(executable file) 생성

4.3 링크

23

실행 결과 확인

4.4 실행 결과

24

25

SECTION 05 프로그래밍 절차

05 프로그래밍 절차

26

해결해야 할 문제를 정확하게 이해하는 단계

프로그램 사용자 파악

컴퓨터로 처리 가능한지의 여부 결정

입 출력 데이터의 내용과 형식 등 결정

5.1 문제 분석

27

알고리즘(algorithm)문제를 해결하기 위한 방법과 절차

순서도(flowchart) 등을 사용하여 설계순서도(flowchart)

처리할 일의 내용과 흐름을 약속된 기호로 간결하게 나타내는 그림

5.2 알고리즘 설계 (1/2)

28

구조적 프로그래밍(structured programming)하향식 설계(top-down design) 방법, 모듈화, 제어 구조(control structure)를 사용하여 작성하는 방식

세 가지 기본적인 제어 구조

5.2 알고리즘 설계 (2/2)

29

설계된 알고리즘에 따라 적합한 프로그래밍 언어를

선택하여 코딩(coding) 함

컴파일 과정을 거치면서 구문 오류(syntax error)가

발생하면 수정하고 다시 컴파일 과정을 반복함

모의 실행을 통해 논리 오류(logical error)를 수정함

5.3 프로그램 구현

30

프로그램의 문서화(program documentation)

하드웨어와 소프트웨어의 요구 사항, 입 출력과 프로그램

파일 관리 등 프로그램 운영에 필요한 모든 사항을 문서로

정리하여 기록하는 작업

유지 보수(maintenance)

프로그램을 항상 오류가 없는 상태, 최신의 상태로 유지하

기 위한 활동

5.4 프로그램 문서화 및 유지 보수

31

32

SECTION 06 C로 작성한 프로그램 예

프로그램

출력 결과

6.1 세 과목의 점수를 출력하는 프로그램

33

프로그램

출력 결과

6.2 세 과목의 점수를 입력받고 총점을 출력하는 프로그램

34

프로그램

출력 결과

6.3 세 학생의 점수를 입력받고 총점을 출력하는 프로그램

35

The End

Recommended