• 검색 결과가 없습니다.

제 1 장 C 언어의 개요

N/A
N/A
Protected

Academic year: 2021

Share "제 1 장 C 언어의 개요"

Copied!
20
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

제 1 장 C 언어의 개요

Google 공동 창업자 , 래리 페이지와 세르게이 브린

(2)

목 차

 제 0 장 . 선행학습

 C 언어의 역사

 C 언어의 특징

 C 언어 컴파일러

 C 프로그램 구조

(3)

선행학습

-1

Terminologies

1. 프로그램 (program) 정의 : set of sequence instructions

▷ 함수 (function) 정의 : like Program

▷ 기타 : routine, module, package, (program) 등의 의미

▷ 프로그램과 함수의 차이점 비교 .

▷ script 언어 , visual 언어의 특징과 해당 제품 조사 . 2. instruction( 명령어 ) 과 command( 코맨드 ) 차이 이해

3. 매개변수 (parameter, argument) 와 변수 ( 變數 , variable) 의 의미와 사용사례 조사

① 형식 매개변수 (formal parameter) : called program ② 실 매개변수 (actual parameter) : calling program

(4)

선행학습

-2

5. 폰 노이만 (Von Neumann) 의 저장 프로그 램구조 ( 방법

)(stored program

architecture (method))

란 ?

- stored program architecture - Serial Processing( 직렬처리 )

- stored Program method( 저장 프로그램 방식 )

6. 레코드지향 개념 (Record-oriented Concepts) 과 객체지향 개념 (Object- oriented Concepts) 비교 조사하기

[ 개념 ]- variable( 변수 ), data type, parameter

- program, routine, software, module, cluster, macro, micro- program

- system(H/W, S/W, firm-ware[F/W])

(5)

선행학습

-3

4. 언어 변환기 (language translator)

:

비교 조사 및 이해하기

① 컴파일러 (compiler) : HLL ⇒ object program ⇒ LLL

② 해석기 (interpreter) : HLL ⇒ not OM ⇒ HLL

③ 어셈블러 (assembler): assembly 어 ⇒ OM ⇒ LLL(ML)

④ pre-processor( 전 - 처리기 ) : HLL ⇒ HLL : C 언어

⑤ pre-compiler : HLL ⇒ HLL : Fortran-77

cf. object program = OM(object module),

HLL(high level lang.) LLL(low level lang.),

ML(machine lang. /code)

(6)

선행학습

-4

부 - 프로그램 (sub-program)

 ⓞ why subprogram?( 필요성 )

 - frequency used routine.( 고 빈도 )

 - frequency modified routine.( 수정 빈 도 )

 ① 개방 부프로그램 (open subprogram)

- 매크로 (macro) 프로그램 : 확장

(expansion)

 ② 폐쇄 부프로그램 (closed subprogram)

 - 일반 부프로그램 (sub-routine 포함 ) :

control 이동

(7)

선행학습

-5

1. macro Processing 2. subprogram processsing

Program

call macro

end

macro

end

Program

call Sub-P

end

Sub-P

return

(8)

선행학습

-6

프로그램 기술 (description) 방법 : 제어구조 (4 장 ) 참조

[1] 종래의 방법 ( 초기방법 )

- 비구조화 방법 (un-structuring method)

- program : like "

art

'

[2] 현대 방법

- 구조화 기법 (structured techniques)

- Dijkstra 원칙 : “ 프로그램의 질 ( 質 ) 은 GOTO 문의 사용 빈도에 반비례한다” ,<‘61>

- program : "science( 科學 )"

[3] 프로그램 제어구조 (control structure)

① 순차구조 (sequence structure)

- 단순 구조 (simple structure)

처리1

처리2

처리n

(9)

선행학습

-7

 ② 선택구조 (selective structure)

- 의사결정 구조

 ③ 반복구조 (iterative structure)

ⓐ 사후평가 구조 ⓑ 사전평가 구조

(post-evaluation structure) (pre-evaluation structure)

- 최소 1 회 회전 - X

처리1

처리2 처리3 처리n 조건?

처리1

처리n

조건?

처리1

조건? 처리2

처리n

(10)

C 언어의 역사

P15

Algol60(Algorithmic Language, 1960)

CPL(Combined Programming Language, 1963)

↓ Cambridge & London 대학

BCPL(basic CPL) (1967)

↓ Martin Richards(London 대학 )

B (1970)

↓ Ken Thomson(Bell 연구소 )

C

(1972)

↓ Dennis Ritchie(Bell 연구소 )

☞ C++(1980) : Bjarne Stroustrup(Bell 연구소 )

☞ Java

ANSI C(1989) (ANSI Committee)

ANSI/ISO C(1990) (ISO Committee)

(11)

C 언어의 특징

범용 프로그램 언어 : 고수준 언어 (HLL)

호환성 (portable) 이 강한 언어 : 이식성 (Portability)

컴파일러 언어 : 구조화 프로그래밍언어 (Structured )

모듈화 언어 (modularity)

고급 언어 / 중급언어 / 저급언어

다양한 내장 함수연산자 (operator)

변수 적용범위 설정 가능 : storage class

자료 주소 직접 사용 : 포인터 ⇒ 중간언어적 성격

현대적인 제어 구조 제공 : 프로그램 개발 도구

간결한 (terse) 언어 - 풍부한 연산자 제공

전처리기 (preprocessor) 의 기능 지원

입출력 기능 무 : 함수 < 함수 정의형 프로그램 >

(12)

C 언어 컴파일러

(1) P16

 컴파일러

(13)

C 언어 컴파일러

(2)

 다양한 C 언어 컴파일러

터보 C++3.1

Borland 사에서 제공하는 컴파일러

(14)

C 언어 컴파일러

(3)

 다양한 C 언어 컴파일러

Visual C++6.0

MS 사에서 배포하는 Windows 전용 유료 컴파일러

Visual C++ 6.0 기본 구성 화면

(15)

C 언어 컴파일러

(4)

 다양한 C 언어 컴파일러

Visual C++6.0

(16)

C 언어 컴파일러

(5)

 다양한 C 언어 컴파일러

GCC

GNU 프로젝트에서 제공하는 컴파일러

주로 UNIX 와 LINUX OS 에서 사용

(17)

C 프로그램의 구조

(1) P29

[ 기본 구조 ]

# 헤더 (header) // 선행처리기 (pre-processor)명령어

void main() { /* 함수 명 ( 메인 함수

) */

/* 함수 ( 프로그램 ) 의 시작 */

... /* 함수 ( 프로그램 ) 의

... 몸체 (body, 내용 ) */

a() ... 또 다른 함수

n() ...

} /* 함수의 종료 */

(18)

C 프로그램의 구조

(2)

주석문 (Comments)

프로그램의 작성과 운영에 관한 정보를 기입 .

/* 내용 */

// 이 후 주석

○ 프로그램의 문서화에 도움을 주는 기능 (Documentation).

○ 주석문의 사용은 프로그램의 독해성 (readability) 을 높여 주며 , 결국엔 프로그램의 사후 유지보수에 필요한 주요 정보를 제공 .

○ 주석문은 중요한 기능에 비하여 컴파일은 되지 않음 .

(19)

C 프로그램의 구조

(3)

 기본 입출력 함수와 제어문자

출력함수 : printf()

기본형식 : printf(“ 제어문”, arg1, arg2, ... );

( 예 ) printf("%d + %d = %d/n", a, b, c);

제어문자 (P32)

제어문자 의 미

/b backspace : 역으로 한 줄 이동한다 . /' single quote

/" double quote // backslash /r carriable return

/t tab : 줄 위에서 커서 위치를 일정한 값만큼 이동한다 . /n 한 줄을 개행 한다.

%d 뒤에 있는 정수형 값을 출력한다.

%c 뒤에 있는 문자형 값을 출력한다.

%s 뒤에 있는 문자열 값을 출력한다.

%f 뒤에 있는 소수형 값을 출력한다.

(20)

C 프로그램의 구조

(4)

 기본 입출력 함수와 제어문자

입력함수 : scanf()

기본형식 : scanf(“ 제어문”, arg1, arg2, ... );

( 예 ) scanf("%d %f %c", &a, &b, &c);

소스 예

(P33) 1. // 입출력 함수 사용 예 2.  

3. #include <stdio.h>

4. void main() 5. { 

6.   int data;

7.   printf(" 숫자를 입력하세요 /n");

8.   scanf("%d", &data);

9.   printf(" 입력한 값은 %d 이다 ./n", data);

10. }

참조

관련 문서