Kangwon National University Since 1947
컴퓨터 프로그래밍
모듈화 프로그래밍
(Modular Programming)
강 정 석지난 시간 복습
설계 후 코딩 하라 !!
구조화 프로그래밍
하향식 프로그래밍 세 가지 제어구조 : 순차, 반복, 선택 • Goto 문을 사용하지 말라 문서화
함수 선언 및 정의
모든 함수는 사용하려면 선언 및 정의 되어야 한다. main()함수만은 선언 할 필요가 없다.이번 시간 개요
내장형 프로그램(Stored Program)
C 언어의 물리적 모듈
논리 및 물리적 모듈 표현에 따른 프로그래밍 절차
모듈화 프로그래밍
헤더 파일(Header File)
내장형 프로그램
내장형 프로그램(Stored Program) 방식이란 ?
고수준 프로그래밍 언어(C 언어 등)로 작성된 프로그램을 일단 컴퓨터에 입력하여 컴퓨터 자신의 명령 코드(기계어) 로 고쳐서, 그것으로부터 일을 실시하는 방식
내장형 프로그램 절차
입력 : 고수준 프로그래밍 언어로 코딩• 도구 : 편집기(Notepad, MS Visual Studio)
번역 : 고수준 프로그래밍 언어를 기계어로 번역 및 통합
• 도구 : 컴파일러와 링커
적재 : 주기억장치(메모리)에 복사
C 언어의 물리적 모듈
C 언어의 물리적 모듈들
원시 코드 파일 • 고수준 프로그래밍 언어로 작성된 파일 • 반드시 원시 코드 파일이 1개 이상 • C 언어 문법에 맞게 작성 • 확장자는 반드시 “.c” 목적 코드 파일 • 기계어 파일 • 원시 코드 파일 하나당 목적 코드 파일이 하나씩 생성 • 사용자 정의 함수에 대해서만 컴파일 과정이 이루어짐 실행 코드 파일 • 실행 가능한 파일 • 여러 목적 코드를 합쳐서 생성C 언어의 물리적 모듈
소수인지 판단하는 프로그램의 물리적 모듈 예
사용자 정의 함수
• main()
• InputNaturalNumber(), IsPrimeNumber(), DisplayIsPrimeNumber()
라이브러리 함수
• printf(), scanf(), fflush(), getchar()
printf() 라이브러리 함수 관련 물리적 모듈
구분 기능 확장자 명칭 물리적 모듈 원시코드파일 컴파일단위 *.c IsPrimeNumber.c 목적코드파일 링크단위 *.obj IsPrimeNumber.obj 실행코드파일 적재단위 *.exe IsPrimeNumber.exe 구분 기능 확장자 명칭 물리적 모듈 헤더파일 인터페이스 *.h stdio.h 라이브러리파일 링크단위 *.lib libc.libC 언어의 물리적 모듈
헤더 파일(.h)
중복 되는 함수 선언 또는 사용자 정의 자료형 등을 따 로 저장하는 파일
라이브러리 파일(.lib)
목적코드들의 집합 개발자가 자주 사용하는 함수들을 미리 제공 라이브러리 함수 매뉴얼은 Visual Studio에서는 MSDN을 참고논리 및 물리적 모듈 표현에 따른 절차
논리 및 물리적 모듈 표현에 따른 절차
코딩 단계 : 편집기
Flow Chart 혹은 NS Chart 등으로 정리된 제어논리를 C 언어의 문법에 맞게 옮기는 단계 원시 코드 파일(.c) 생성
컴파일 단계 : 컴파일러
원시 코드를 이진 파일로 변환하는 단계 목적 코드 파일 생성(.obj) 구문 오류(Syntax Error) 발생 : C언어 문법 오류논리 및 물리적 모듈 표현에 따른 절차
링크 단계 : 링커
목적 코드 파일을 실행 파일(.exe)로 변환하는 단계 함수에 대한 실제 내용과 실제로 실행되는데 필요한 기 억장소에 대한 정보 결합 목적 코드 파일과 라이브러리 파일(.lib) 등을 결합 링크 오류(Link Error) : 함수에 대한 정보를 라이브러 리 파일에서 찾을 수 없을 때 주로 발생
실행 단계
생성된 실행 파일을 적재시켜 결과를 확인하는 단계 제어 논리 오류(Logic Error) : 실행 결과가 예상 결과 와 다를 때 발생원시 코드 파일 구조
주석 단락(Comment Section)
주석이란 프로그램을 명확하게 설명하는데 사용되는 글귀 여러 줄에 걸쳐 주석을 작성 시 : “/*”로 시작해서 “*/”로 끝냄 한줄만 주석을 작성시 : “//”로 시작 주석이 없다면 작성된 프로그램을 이해하는데 어렵다.
전처리기 단락(Preprocessor Section)
프로그램을 작성할 때 반복해서 기술되는 부분을 간단하 게 하기 위함 문자열 치환 작업, 헤더파일 등을 포함 할 때원시 코드 파일 구조
선언 단락(Declaration Section)
사용자 정의 자료형이나 사용자 정의 함수들을 선언
C 언어에서는 선언을 정의와 분리
전역 데이터 단락(Global Data Section)
전역 데이터란 원시코드파일 내에서 어디서든 사용할 수 있는 데이터를 의미
함수 정의 단락(Function Definition Section)
함수의 구체적인 동작을 기술하는 함수 정의 단락 C 프로그램 실행의 시작점은 항상 main() 함수
참고사항
주석, 전처리기, 전역 데이터 선언 및 정의 그리고 함수 성언 단락은 필요에 따라 정의되거나 생략 가능 함수 정의 단락은 결코 생략될 수 없다.모듈화 프로그래밍
모듈
프로그램의 일부분 C 프로그램에서의 함수 또는 함수들의 집합 모듈의 크기는 정확히 수식화하기 어려움
모듈화 프로그래밍에서의 모듈
하나의 디스크 파일을 의미 기능별로 각각의 파일에 저장하여 관리모듈화 프로그래밍
필요성
원시코드를 효율적으로 관리
컴파일 시간 단축