Programming in C.

Slides:



Advertisements
Similar presentations
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Advertisements

.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
C 언어 기초 1 위덕대학교 에너지전기공학부 이 수 형 2009년 1학기.
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발과정 C Express Slide 1 (of 31)
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Image & Video processing
1장 리눅스의 기본 개념과 프로그램 작성 리눅스의 기본 개념 시스템에 접속하기 리눅스의 프로그래밍 환경
Database Laboratory, Hong Ik University
Power Java 제3장 이클립스 사용하기.
Introduction To Computers
Cross Compiler를이용한 커널 컴파일 및 포팅 1
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
C언어 콘서트 제1장 프로그래밍 소개.
컴퓨터 프로그래밍 기초 [Final] 기말고사
Power Java 제2장 자바 개발 도구.
C 언어 1 1주차 C언어 시작하기 - 1차시 C 언어 특징 및 프로젝트 생성 Programming Language.
나민영 서경대학교 컴퓨터공학과 CGVR Lab 같이만들어보자 5주차 OpenCV 설정 및 기초.
컴퓨터 기본 원리 프로그래밍 언어 C 프로그래밍 환경 C 프로그래밍 작성, 컴파일, 링크 및 실행
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 01. 이것이 C언어다.
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
UNIX 시스템 정보통신공학과 이 우 섭.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
TETRIS FOR QTOPIA.
C / C++ Programming in multi platform
Visual Basic .NET 처음 사용하기.
2장. CentOS 리눅스 소개.
1. C++ 시작하기.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
FTP 프로그램 채계화 박재은 박수민.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
26. 매크로와 전처리기.
ARM Development Suite v1.2
Cross Compiler 설치.
C#.
Cross Compiler를이용한 커널 컴파일 및 포팅
AVR – ATmega103(ATMEL) Compilers & ISP
1. C 언어 개요.
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
Chap 6.Assembler 유건우.
이름 : 황 상 두 전화번호 : 이메일 : PinTool 이름 : 황 상 두 전화번호 : 이메일 :
UNIX Unbounded A Beginning Approach
영상처리 실습 인공지능연구실.
제 1장. C++ 시작하기.
제1장 Unix란 무엇인가?.
자율주행 차량용 드라이빙 컴퓨팅 하드웨어 플랫폼 05
OS 역사 손병규.
자바 5.0 프로그래밍.
LabVIEW WiznTec 주임 박명대 1.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
빌드 성공.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
( Windows Service Application Debugging )
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
OpenCV 설정 2.21 만든이 딩딩.
05. General Linear List – Homework
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
공학도를 위한 C언어 프로그래밍실습1 -통합개발환경 사용법-
구조체(struct)와 공용체(union)
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
1장. C Language Synopsis.
Presentation transcript:

Programming in C

목 차 C의 역사 왜 C를 배워야 하는가? 프로그램 개발 과정 VC++의 이용 MinGW의 이용 연습문제

1. C의 역사 C의 탄생 유닉스 리눅스

1. C의 역사: C의 탄생 1972년 유닉스(OS)를 만들기 위해서 탄생 BCPL -> B -> C 유닉스를 디자인하던 켄톰슨이 절친한 친구 데니스 리치에게 유닉스를 위한 언어 요청 데니스리치가 BCPL을 추천 켄톰슨이 BCPL을 B로 발전시킴 데니스리치가 B를 C로 발전시킴

1. C의 역사: 유닉스 유닉스(UNIX)는 초창기 ‘유닉스’가 아닌 ‘멀틱스(Multics)라고 불림 멀틱스(OS의 일종) 다중 CPU, 메모리 공유, I/O 자원 공유, 가상메모리, 다중 언어 지원, 보안, 관계형 데이터 베이스, 다중 사용자의 기능을 구현하려고 시도함 그 당시의 기술로는 구현 불가능하여 실패함. 멀틱스가 실패하자 이를 안타까워 했던 켄톰슨이 PDP-7에 멀틱스를 이식하고 조금씩 발전시켜 나감. 멀틱스는 이때부터 유닉스라고 불림 유닉스는 처음에 어셈블리로 작성되었음 (현재 유닉스는 90%가 C언어/10%가 어셈블리어로 구성됨)

1. C의 역사: 리눅스 1989년 핀란드 헬싱키대학에 재학 중이던 리누스 토발즈(Linux Torvalds)에 의해서 만들어진 공개 OS 초창기 리눅스는 주로 개인용 컴퓨터에서 사용되었음 소스코드는 완전무료로 공개되었으며 수 많은 프로그래머에 의해서 계속 업그레이드 되고 있음 리눅스는 GNU(Gnu Not Unix)를 표방함 무료배포와 소스 완전 개방에 의해서 대학과 개발자에게 급속히 확산됨 유닉스와 유사한 파일 시스템을 가지고 있으며 많은 변종이 존재함

2. 왜C를 배워야하는가 C의 유용성 C의 장점 C의 단점

2. 왜C를 배워야하는가: C의 유용성 실행 속도가 빠름 실행 파일의 크기가 작음 작성하기 쉬움 어셈블리어를 제외한 여타의 언어에 비해서 상대적으로 높은 속도를 냄 실행 파일의 크기가 작음 임베디드 시스템에서 실행파일의 크기는 상당히 중요한 요소임 작성하기 쉬움 어셈블리어보다 상대적으로 배우거나 작성하기 쉬움

2. 왜C를 배워야하는가: C의 장점 실행속도가 빠름 실행파일의 크기가 작음 하드웨어를 다루기가 쉬움 다른 언어에 비해서 실행 속도가 높음 실행파일의 크기가 작음 다른 언어에 비해서 실행파일의 크기가 작음 일반적인 상황에서는 실행파일의 크기는 문제가 되지 않지만 임베디드 시스템에서는 중요한 요소가 됨 하드웨어를 다루기가 쉬움 하드웨어를 다룰 수 있는 많은 기능을 가짐 하드웨어를 제어하는 가장 강력한 언어는 어셈블리어이지만 어셈블리어는 배우거나 작성하기가 까다로움 다른 플랫폼으로 이식하기 쉬움 이미 작성된 프로그램을 다른 환경(유닉스, 윈도우, 리눅스)으로 이식하기가 쉬움

3. 왜C를 배워야하는가: C의 단점 배우기가 어려움 초보자가 작성하기 어려움 그래픽 작업이 어려움 어셈블리어보다는 쉽지만 다른 언어에 비해서는 배우기가 어려운 편임 초보자가 작성하기 어려움 세세한 작업을 프로그래머가 모두 챙겨야 함 - 메모리 할당 및 해제를 자동으로 해주지 않음 알고리즘에 문제가 발생하면 에러를 잡기가 어려움 포인터 부분을 프로그램 한 후 문제가 발생하면 문제점을 찾기가 어려움 그래픽 작업이 어려움 C는 그래픽과 극을 달림 그래픽이 필요하면 다른 언어의 힘을 빌려야 함

3. 프로그램 개발과정 소스코드 생성 컴파일러 실행 오류 수정 링커 실행 실행파일 수행 에디터(Editor)를 이용하여 프로그램 작성 컴파일러 실행 목적코드를 생성 (실행파일의 중간 단계) 오류 수정 컴파일러를 수행한 후 코드의 오류를 수정 링커 실행 실행파일을 생성하는 단계 여러 파일(목적코드)을 하나로 합치는 의미를 가지고 있음 실행파일 수행

3. 프로그램 개발과정 소스 코드 컴파일러 (Compiler) 목적 코드 (Object code) 시동 코드 (start-up) 라이브러리 코드 링커 (Linker) 실행 코드

3. 프로그램 개발과정 프로그램의 설계 Library 최종 프로그램 자료구조설계 알고리즘 설계 Source Code 생성 struct Student { int i; char name[10]; } for ( int j=0 ; j <= 10 ; j++) { ……. } Source Code 생성 Library 테스트 & 디버깅 최종 프로그램

3. 프로그램 개발과정: 소스코드 작성 소스코드 C의 소스코드는 .c로 끝남 위의 프로그램은 화면에 3. 프로그램 개발과정: 소스코드 작성 소스코드 # include <stdio.h> main() { printf(“Welcome to the C World.”); } C의 소스코드는 .c로 끝남 위의 프로그램은 화면에 ‘Welcome to the C world.’가 출력됨

3. 프로그램 개발과정: 컴파일러 실행 컴파일러를 이용하여 목적(Object)코드를 생성 컴파일 목적(Object)코드 3. 프로그램 개발과정: 컴파일러 실행 컴파일러를 이용하여 목적(Object)코드를 생성 컴파일 사람이 이해하는 소스코드를 기계가 이해할 수 있는 기계어로 번역하는 과정 컴파일을 수행하는 행위자를 ‘컴파일러’라고 함 컴파일을 수행하는 도중 발생되는 에러나 문제점을 디버거(Debugger)의 의해서 해결하기도 함 목적(Object)코드 컴파일러에 의해서 기계어가 이해할 수 있는 상태로 변환된 파일 일반적으로 .o가 생성됨 실행파일을 생성하는 중간단계

3. 프로그램 개발과정: 링커, 실행파일 실행 링커 실행 실행파일 실행 목적코드를 실행파일로 변환 3. 프로그램 개발과정: 링커, 실행파일 실행 링커 실행 목적코드를 실행파일로 변환 .o로 구성된 목적코드를 하나의 실행파일로 만들어 냄 다수의 목적코드를 하나로 결합 일반적으로 다수의 목적코드를 링커가 하나로 합쳐서 실행파일로 만들어 냄 실행파일 실행 윈도우 환경: *.exe로 생성 유닉스 환경: a.out로 생성

4. VC++ 이용 VC++ 실행 프로젝트 생성 sample.c 생성 sample.c 편집 프로그램 작성 컴파일, 링크, 실행

4. VC++ 이용: VC++ 실행

4. VC++ 이용: 프로젝트 생성

4. VC++ 이용: sample.c 생성

4. VC++ 이용: sample.c 편집

4. VC++ 이용: 프로그램 작성

4. VC++ 이용: 컴파일, 링크, 실행

5. MinGW 이용 MinGW: Minimalist GNU for Windows MinGW Developer Studio 사용하는 방법: http://www.parinyasoft.com/ 또는 http://www.simtel.net/product.php%5Bid%5D74844%5BSiteID%5Dfilebasket

5. MinGW 이용

5. MinGW 이용 Project name을 입력 File  new Project 폴더를 지정

5. MinGW 이용

5. MinGW 이용

연습문제1 C의 장점과 단점에 대해서 설명하시오. 컴파일과 링크에 대해서 설명하시오. 소스 프로그램, 오브젝트(목적) 프로그램, 실행 프로그램의 차이점을 설명하시오.

연습문제2 자신의 이름을 출력하는 프로그램을 작성하시오.

연습문제3 자신의 이름을 출력하는 함수를 작성하고 오브젝트 파일을 생성하시오. main() 함수와 자신의 이름을 출력하는 함수를 링커로 결합하여 하나의 실행파일을 생성하시오.