프로그래밍 언어
사람과 컴파일러가 이해할 수 있도록 약속된 형태의 언어
→ 기계어, 어셈블리어, C, Cpp, C#, JAVA …
컴파일러
프로그래밍 언어로 작성된 소스 코드를 기계어로 변환하는 프로그램 (번역기 역할)
- 어셈블러(assembler)
기호로 표현된 어셈블리 코드를 기계어로 번역하는 번역기
- 인터프리터(interpreter)
소스 프로그램을 한번에 변환시키는 컴파일러와 다르게 프로그램을 한단계씩 기계어로 해석하여 실행하는 언어처리 프로그램
C언어의 역사
Dennis Ritchie(데니스 리치)가 1972년에 개발
유닉스 운영체제 구현에 사용할 목적으로 개발
→ 컴퓨터 기종간 호환성을 가진 고급언어인 동시에 하드웨어를 제어하는 언어 저급언어의 역할도 필요해서 만들어짐
어셈블리 언어로 된 유닉스 운영체제가 C언어로 대체
C언어의 특징
프로그램 이식성이 높다
간단한 문법표현으로 함축적인 프로그램 작성이 용이
저급언어 특성을 가진 고급언어
저급언어 와 고급언어의 차이
저급언어 고급언어
기계어를 직접 사용하여 작성 | 사람이 이해하기 쉬운 형태의 언어로 작성 |
하드웨어를 직접 다루는 데에 적합 | 추상화된 개념을 사용하여 프로그래밍 가능 |
프로그래밍이 어렵고 유지보수가 어려움 | 프로그래밍이 상대적으로 쉽고 유지보수가 용이함 |
이식성이 낮음 | 이식성이 높음 |
프로그램 개발단계
- 목적정의 → 요구분석과 시스템 분석을 통하여 프로그램이 가져야 할 기능 정의
- 프로그램 설계 → 분석된 기능을 처리할 수 있도록 구조 설계
- 소스코드 작성 → 기획 or 설계를 기반으로 코드 작성
- 컴파일 / 링크 → 소스코드를 실행 가능한 코드로 변환하고 문법 검사 (빌드)
- 프로그램 실행
- 테스트와 디버깅 → 에러 검사 및 디버깅 (QA)
- 유지보수 → 사용 중 발생되는 에러나 추가적인 변경사항 처리 (서비스)
C 프로그램 작성 과정
코딩 → 컴파일 → 링킹
- 코딩 단계 (작성단계)
주어진 문제에 대한 설계를 바탕으로 코드를 작성하여 코드 파일을 생성 ex) hello_world.c
- 컴파일 단계 (변환 / 번역 단계)
소스파일을 목적파일로 변환하는 과정 (2진수로 된 기계어 obj 파일로 변환) ex) hello_world.obj
- 링킹 단계 (파일생성)
다른 목적파일 및 라이브러리들을 하나의 파일로 합쳐 목적파일들을 실행파일로 변환하는 과정 (프로그램 생성) ex) hello_world.exe
C프로그램의 기본구조
/* 도입부 */
#include<stdio.h>
int add(int x ,int y);
/* 메인 */
void main()
{
int i,j ,sum;
printf("함수의 호출 \\n")
i = 10 , j = 20;
sum = add(i,j);
printf("%d,%d=%d",i,j,sum);
}
/* 호출한 함수 */
int add(int x, int y){
int tot;
tot = x + y;
return tot;
}
소스코드
프로그램 안에 있는 명령어
목적파일
obj 확장자를 갖는 파일로 기계어들의 집합으로 이루어진 파일
링커
여러 목적파일과 라이브러리 파일을 연결해주는 도구
예약어
C언어에서 미리 정의되어 있는 단어
'KNOU > 요약정리' 카테고리의 다른 글
[C 프로그래밍] 입출력 함수와 연산자 (0) | 2023.05.10 |
---|---|
[C 프로그래밍] 자료형과 선행처리기 (0) | 2023.05.10 |
[멀티미디어시스템] 멀티미디어의 미래 (0) | 2022.12.09 |
[멀티미디어시스템] 모바일 멀티미디어 (0) | 2022.12.09 |
[멀티미디어시스템] 멀티미디어의 활용 (0) | 2022.12.09 |
댓글