제 1 장 C 언어의 개요
Google 공동 창업자 , 래리 페이지와 세르게이 브린
목 차
제 0 장 . 선행학습
C 언어의 역사
C 언어의 특징
C 언어 컴파일러
C 프로그램 구조
선행학습
-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
선행학습
-25. 폰 노이만 (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])
선행학습
-34. 언어 변환기 (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)
선행학습
-4 부 - 프로그램 (sub-program)
ⓞ why subprogram?( 필요성 )
- frequency used routine.( 고 빈도 )
- frequency modified routine.( 수정 빈 도 )
① 개방 부프로그램 (open subprogram)
- 매크로 (macro) 프로그램 : 확장
(expansion)
② 폐쇄 부프로그램 (closed subprogram)
- 일반 부프로그램 (sub-routine 포함 ) :
control 이동
선행학습
-5 1. macro Processing 2. subprogram processsing
Program
call macro
end
macro
end
Program
call Sub-P
end
Sub-P
return
선행학습
-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
선행학습
-7 ② 선택구조 (selective structure)
- 의사결정 구조
③ 반복구조 (iterative structure)
ⓐ 사후평가 구조 ⓑ 사전평가 구조
(post-evaluation structure) (pre-evaluation structure)
- 최소 1 회 회전 - X
처리1
처리2 처리3 처리n 조건?
처리1
처리n
조건?
처리1
조건? 처리2
처리n
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)
C 언어의 특징
범용 프로그램 언어 : 고수준 언어 (HLL)
호환성 (portable) 이 강한 언어 : 이식성 (Portability)
컴파일러 언어 : 구조화 프로그래밍언어 (Structured )
모듈화 언어 (modularity)
고급 언어 / 중급언어 / 저급언어
다양한 내장 함수와 연산자 (operator)
변수 적용범위 설정 가능 : storage class
자료 주소 직접 사용 : 포인터 ⇒ 중간언어적 성격
현대적인 제어 구조 제공 : 프로그램 개발 도구
간결한 (terse) 언어 - 풍부한 연산자 제공
전처리기 (preprocessor) 의 기능 지원
입출력 기능 무 : 함수 < 함수 정의형 프로그램 >
C 언어 컴파일러
(1) P16 컴파일러
C 언어 컴파일러
(2) 다양한 C 언어 컴파일러
터보 C++3.1
Borland 사에서 제공하는 컴파일러
C 언어 컴파일러
(3) 다양한 C 언어 컴파일러
Visual C++6.0
MS 사에서 배포하는 Windows 전용 유료 컴파일러
Visual C++ 6.0 기본 구성 화면
C 언어 컴파일러
(4) 다양한 C 언어 컴파일러
Visual C++6.0
C 언어 컴파일러
(5) 다양한 C 언어 컴파일러
GCC
GNU 프로젝트에서 제공하는 컴파일러
주로 UNIX 와 LINUX OS 에서 사용
C 프로그램의 구조
(1) P29 [ 기본 구조 ]
# 헤더 (header) // 선행처리기 (pre-processor)명령어
void main() { /* 함수 명 ( 메인 함수
) */
/* 함수 ( 프로그램 ) 의 시작 */
... /* 함수 ( 프로그램 ) 의
... 몸체 (body, 내용 ) */
a() ... 또 다른 함수
n() ...
} /* 함수의 종료 */
C 프로그램의 구조
(2) 주석문 (Comments)
프로그램의 작성과 운영에 관한 정보를 기입 .
① /* 내용 */
② // 이 후 주석
○ 프로그램의 문서화에 도움을 주는 기능 (Documentation).
○ 주석문의 사용은 프로그램의 독해성 (readability) 을 높여 주며 , 결국엔 프로그램의 사후 유지보수에 필요한 주요 정보를 제공 .
○ 주석문은 중요한 기능에 비하여 컴파일은 되지 않음 .
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 뒤에 있는 소수형 값을 출력한다.
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. }