Part 01 서론 안산1대학 디지털정보통신과 임 성 국.

Slides:



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

프로그래밍언어론 TA 윤들녁. 소개 윤들녁 연락처 : 공대 7 호관 4 층 401 호 데이터베이스 연구실 실습 후 날짜 _ 학번.zip 으로.
Chapter 01. 컴퓨터 기초와 윈도우 XP. 2  학습목표 하드웨어와 소프트웨어의 종류 및 개념 컴퓨터 본체의 내부 구성 윈도우 XP 의 프로그램 실행 및 제거 프린터 드라이버의 설치 하드디스크의 추가 및 최적화 컴퓨터 사용에 필요한 유용한 프로그램.
천안천일고등학교 Copyright © by Ryu Bin All rights reserved 프로그래밍 실무.
컴퓨터는 어떻게 동작?.
컴퓨터와 인터넷.
컴퓨터 운영체제의 역사 손용범.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
재료수치해석 HW # 박재혁.
(1.1 v) 엔트리교육연구소 엔트리 카드게임 설명서.
네트워크 기술을 통한 현재와 미래 소개.
Ⅰ. 클라이언트 스크립트 Ⅱ. 서버 스크립트 그렇다면 프로그래밍 언어를 수행하는 컴퓨터의 개념적인 구조를 살펴 본다면, 프로그래밍 언어가 무엇인지 이해하는데 도움이 될 것입니다. 현재 컴퓨터 구조의 모태가 되고 있는 폰 노이만 구조는 그림에서 보는 것과 같이, 명령어와.
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
Power Java 제2장 자바 개발 도구.
웹 서버 동작 HTTP 클라이언트가 서버와 대화하는 방법과 데이터를 서버에서 클라이언트로 전송 하는 방법을 정의한 프로토콜
1장 기본적인 사항(3) 순천향대학교 컴퓨터공학과 하상호.
임베디드 시스템.
UNIT 06 JTAG Debugger 로봇 SW 교육원 조용수.
이것이 C 언어다. IT응용시스템공학과 김 형 진 교수.
컴퓨터 기본 원리 프로그래밍 언어 C 프로그래밍 환경 C 프로그래밍 작성, 컴파일, 링크 및 실행
Visual Basic Visual Basic 소개
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
1. C++ 시작하기.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Error Detection and Correction
컴퓨터과학 전공탐색 배상원.
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
임베디드 실습 # LED, 7’Segment 제어
마이크로컨트롤러, 마이크로컨트롤러 보드 마이크로컨트롤러 보드 = 마이크로컨트롤러 +  마이크로컨트롤러 마이크로컨트롤러 보드.
Computational Thinking
1장 운영체제 2-C반 운영체제 박소라.
1장 기본적인 사항(3) 순천향대학교 컴퓨터공학과 하상호.
1. C 언어 개요.
개정판 누구나 즐기는 C언어 콘서트 제1장 프로그래밍 소개 출처: pixabay.
프로그래밍 개요
Chap 6.Assembler 유건우.
디지털회로설계 (15주차) 17. 시프트 레지스터와 카운터 18. 멀티바이브레이터 * RAM & ROM.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
2장. JSP 프로그래밍을 위한 환경구성 제2장.
Chapter 01 컴퓨터와 프로그램.
UNIX Unbounded A Beginning Approach
CHAPTER 04. 프로그래밍 언어 인간과 컴퓨터의 대화_진화하는 소통. 진화하는 컴퓨터
제2강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
제1장 Unix란 무엇인가?.
논리회로 설계 및 실험 5주차.
컴퓨터 시스템 하드웨어 컴퓨터 시스템 소프트웨어 C P U Control Unit 입 력 장 치 출 력 장 치 ALU
자바 5.0 프로그래밍.
ARM Development Suite v1.2
1. 2진 시스템.
Part 1 개요 Chapter 1 : 컴퓨터와 프로그램 그리고 자바 Chapter 2 : 자바의 환경
“사람과 컴퓨터” 이 점 숙 컴퓨터와 소프트웨어 “사람과 컴퓨터” 이 점 숙
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
제2강 : 전자계산기구조-컴퓨터 시스템 구성.
( Windows Service Application Debugging )
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
AT MEGA 128 기초와 응용 I 기본적인 구조.
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
Chapter 01 자바의 개요 자바는 최초 전자기기의 내장형 소프트웨어를 위해 개발되었으나, 최근 엔터프라이즈 응용에도 폭 넓게 활용됨 자바의 특징과 실행방법, 개발 환경 및 도구에 대해 소개.
공학도를 위한 C언어 프로그래밍실습1 -통합개발환경 사용법-
TVM ver 최종보고서
발표자 : 이지연 Programming Systems Lab.
3.2 분기 명령어.
운 영 체 제 강 원재.
.Net FrameWork for Web2.0 한석수
Installation Guide.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
학부 컴퓨터공학부 교육과정 (학부) 2학년 4학년 3학년 1학년 1학기 2학기 IPP 자격과정 전공트랙
Ⅰ. Response 개체 그렇다면 프로그래밍 언어를 수행하는 컴퓨터의 개념적인 구조를 살펴 본다면, 프로그래밍 언어가 무엇인지 이해하는데 도움이 될 것입니다. 현재 컴퓨터 구조의 모태가 되고 있는 폰 노이만 구조는 그림에서 보는 것과 같이, 명령어와 데이터를 저장하는.
Ⅰ. 데이터베이스 정의 Ⅱ. MS SQL 서버 Ⅲ. 데이터베이스 인터페이스
Presentation transcript:

Part 01 서론 안산1대학 디지털정보통신과 임 성 국

이 장의 내용 컴퓨터 시스템 프로그램 실행 원리 소프트웨어와 소프트웨어의 역할 컴퓨터의 자료 표현 프로그래밍 언어의 종류와 특징 프로그램 개발

1.1 컴퓨터 시스템

컴퓨터 시스템 컴퓨터 시스템 컴퓨터 하드웨어 구성 컴퓨터 시스템은 하드웨어와 소프트웨어로 이루어진다. 250 GB 하드 디스크 드라이브 DVD/CD-RW 드라이브 2 GB RAM 키보드 19인치 LCD 모니터 해상도 1280×1024 2.8GHz 인텔 펜티엄 4프로세서 주 메모리 CPU 그림 1.1 컴퓨터 하드웨어 구성

컴퓨터 구조 Black Box 출력 입력 키보드, 마우스 모니터, 프린터 보조 기억장치 Input/Output BUS HDD DVD/CD USB Stick 출력 CPU 주 기억장치 입력 프로세서 2G RAM 키보드, 마우스 Black Box 모니터, 프린터

컴퓨터 하드웨어 구성 요소 중앙처리장치(Central Processing Unit; CPU) 주 메모리(Main Memory) 프로그램의 명령어들을 수행하는 컴퓨터의 두뇌 주 메모리(Main Memory) 프로그램과 데이터를 저장하는 휘발성(volatile) 기억장치 그림 1.1에서 512 메가바이트(MB) RAM 보조 메모리 장치(Secondary Memory) 소프트웨어를 비교적 영구적으로 저장하는 비휘발성 기억장치 그림 1.1의 120 기가바이트(GB) 하드 디스크 드라이브 64배속 DVD/CD-RW 콤보(combo) 드라이브 입출력 장치(Input/Output Device) 인간과 컴퓨터의 상호 작용을 도와주는 장치 키보드, 마우스, 모니터

프로그램 실행을 위한 구성 요소간 정보이동 프로그램 적재(loading) 프로그램 실행(execution) 입력(input) 하드 디스크에 저장된 프로그램을 주 메모리에 읽어 들인다 프로그램 실행(execution) CPU는 주 메모리로부터 프로그램의 명령어들을 하나씩 읽어 들여서 그 명령어를 한 번에 하나씩 수행한다. 입력(input) 명령어가 사용하는 데이터도 역시 주 메모리에 저장되며 보조 메모리 혹은 키보드 같은 입력 장치를 통해 입력된다. 출력(output) 프로그램은 실행되는 동안 필요에 따라 모니터와 같은 출력 장치에 정보를 출력한다

메모리 위치 및 값 저장 1278 1279 각 메모리 셀은 1 바이트를 저장한다. 10011010 1280 1281 1282 1283 1284 1285 1286 큰 값은 연속된 메모리 위치들에 저장된다. 10011010 각 메모리 셀은 1 바이트를 저장한다.                                                                                                                                    그림 1.2 메모리 위치 및 값 저장

이진 저장 단위 표 1.1 이진 저장 단위 단위 기호 2n 바이트 바이트 수 킬로바이트 KB 210 1,024 메가바이트 MB 220 1,048,576 기가바이트 GB 230 1,073,741,824 테라바이트 TB 240 1,099,511,627,776 표 1.1 이진 저장 단위

중앙처리장치(CPU) 그림 1.3 중앙처리장치의 구성요소

1.2 프로그램 실행 원리

프로그램 실행 원리 CPU 폰 노이만 구조(von Neumann architecture) 프로그램 내장 방식(stored program)의 컴퓨터 명령어, 데이터 인출 명령어 실행 결과 CPU 주메모리 프로그램 (명령어 + 데이터) PC 적재                                                                                                                                             그림 1.4 폰 노이만 컴퓨터 구조

폰 노이만 컴퓨터의 프로그램 내장 방식 프로그램 내장 방식(stored program) 명령어와 데이터로 구성된 프로그램을 주 메모리에 적재하고 CPU가 순차적으로 실행한다는 개념 CPU는 인출-해석-실행(fetch-decode-execute) 주기 반복 CPU는 주 메모리 내에 저장된 명령어를 한 번에 하나씩 읽어 들여 해석하고 실행한다. 인출 주 메모리로부터 명령어 인출 해석 명령어 의미 해석 실행 명령어를 실행 그림 1.5 인출-해석-실행 주기

1.3 소프트웨어

소프트웨어 시스템 소프트웨어(system software) 응용 소프트웨어(application software) 컴퓨터 시스템 효율적인 운영과 관리를 위한 소프트웨어 운영 체제, 컴파일러, 디버거, 유틸리티 프로그램 응용 소프트웨어(application software) 시스템 소프트웨어가 아닌 거의 모든 소프트웨어를 지칭하는 포괄적인 용어 문서 작성 S/W, 데이터 관리 S/W, 스프레드시트,그래픽 S/W, 웹 관련 S/W, 통계 S/W, 게임 S/W 등

소프트웨어 그림 1.6 소프트웨어의 종류 운영체제 시스템 S/W 응용 S/W 컴파일러 디버거 유틸리티 워드 프로세서 웹 브라우저 파워 포인트 데이터베이스 그림 1.6 소프트웨어의 종류

1.4 컴퓨터의 자료 표현

컴퓨터의 자료 표현 이진수 컴퓨터는 이진 값으로 표현된 정보만 저장하고 다룰 수 있다. 컴퓨터에서는 한 비트가 0과 1을 나타낼 수 있다. N 비트는 최대 2N개의 경우들을 표현할 수 있다. 1 비트  2 비트 3 비트 4 비트 1 00 01 10 11 000 001 010 011 100 101 110 111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 표 1.2 이진수

이진수와 십진수 십진수 열 개의 숫자(0에서 9)를 이용하여 값을 표현한다. 십진수의 각 자리에는 자릿값이 있다. 182     =  1 x 102  + 8 x  101 + 2 x  100  =  1 x 100 +  8 x 10  +  2 x 1  이진수 두 개의 숫자(0과 1)를 이용하여 값을 표현한다. 이진수의 각 자리에는 자릿값이 있다. 11012     = 1 x 23 + 1 x  22 + 0 x  21 + 1 x  20                 = 1 x 8 +  1 x 4   +  0 x 2   + 1 x 1                  = 13

십진수를 이진수로 변환 예 24(=16) < 27 < 25(=32) 27 = 1  x  16  +  1 x  8   +  0 x 4  +  1 x  2  +  1 x 1      = 1  x  24   +  1 x  23 +  0 x 22 +  1 x  21 +  1 x  20      = 110112 변환 방법 27을 24(=16)로 나누면 몫은 1, 나머지는 11 첫 번째 비트는 1이고, 11은 나머지 4 비트들로 표현 11을 23(=8)으로 나누면 몫은 1, 나머지는 3이다. 두 번째 비트는 1이고, 3은 나머지 3 비트들로 표현 3을 22(=4)로 나누면 몫은 0, 나머지는 3이다. 세 번째 비트는 0이고, 3은 나머지 2 비트들로 표현 3을 21(=2)로 나누면 몫은 1, 나머지는 1이다. 네 번째 비트는 1이고, 1은 나머지 1 비트로 표현

16진수(hexadecimal) 16진수(hexadecimal) = 2 x 256 + 10 x 16 + 12 x 1 기수 16인 수 체계 0, …, 9, A(10), B(11), C(12), D(13), E(14), F(15) 2AC16    =  2 x 162  +  A x  161 + C x  160                   =  2 x 256 +  10 x 16  +  12 x 1                   =  684 그림 1.7 이진수, 16진수 관계

1.5 프로그래밍 언어

프로그래밍 언어 프로그램을 작성하기 위한 언어 기계어 1001 0001 0001 위치의 값을 누산기에 저장하라. 어셈블리어 사람이 컴퓨터에게 시키고 싶은 내용을 표현하기 위한 표기법 그 발전 단계에 따라 기계어, 어셈블리어, 고급언어로 분류 기계어 이진수 코드로 CPU 종류마다 고유의 기계어      1001   0001   0001 위치의 값을 누산기에 저장하라.      1100   0010   누산기에 0010 위치의 값을 더하라      1010   0011   누산기의 값을 0011위치에 저장하라. 어셈블리어 기계어의 이진수 코드를 기호화 코드(mnemonics)로 대치한 것      LOAD   Y      Y의 값을 누산기에 저장한다.      ADD     Z      누산기에 Z의 값을 더하라      STORE  X      누산기의 값을 X에 저장하라.

프로그래밍 언어 고급 언어 주요 고급 언어 영어와 비슷한 구문으로 표현되며, 읽고 쓰기가 보다 쉽다 프로그래머가 기계의 세부사항을 알 필요가 없게 해준다 X = Y + Z 주요 고급 언어 FORTRAN, COBOL, BASIC, C, C++, Java 등

주요 고급 언어 FORTRAN(FORmula TRANslation) 1957년에 IBM의 John Backus가 개발한 최초의 고급 언어 과학계산용 언어로 프로그램을 단순화된 영어 단어와 수학 공식으로 표현 COBOL(COmmon Business Oriented Language) 1960년초에 개발된 사무용 프로그램을 개발을 위한 언어 COBOL로 작성된 많은 급여, 회계 및 기타 업무용 S/W는 지금도 많이 사용됨 BASIC(Beginner's All-purpose Symbolic Instruction Code) 초보자가 배우기 쉬운 프로그래밍 언어로 개발 원래 학생들에게 프로그래밍 언어를 가르치기 위해 개발 컴퓨터 업계에 소개되면서 비중 있는 프로그래밍 언어가 됨.

주요 고급 언어 C 언어 C++ Java AT&T 벨 연구소의 Dennis Ritchie가 개발한 시스템 프로그래밍 용 언어 1970년대 UNIX라는 운영 체제 개발을 위하여 개발된 언어 고급 언어이면서도 저급 언어(하드웨어에 가까운 언어)의 특성을 가지고 있음. C++ AT&T 벨 연구소의 B. Stroustrup에 의해 개발 C 언어의 기능을 확장하여 만든 객체 지향 프로그래밍 언어 Java 1990년대에 선 마이크로시스템 사의 James Gosling이 개발 인터넷 환경을 위해 개발된 객체지향 언어로 이동 코드실행 지원 Java 프로그램은 한번 작성되면 어느 플랫폼에서나 실행 가능

1.6 소프트웨어 개발

소프트웨어 개발과정 요구 요구사항 분석 설계 구현 테스트 유지보수 그림 1.9 소프트웨어 개발 과정

소프트웨어 개발과정 요구사항 분석(requirement analysis) 설계(design) 구현(implementation) 사용자의 요구사항 즉 소프트웨어가 해야 할 일을 파악하는 단계 사용자는 요구사항을 명세서(specification) 형태로 제시한다. 설계(design) 요구 사항을 구체화하는 단계로 소프트웨어의 구조를 결정 파악된 문제를 해결하는 알고리즘(algorithm)을 흐름도(flow chart)나 의사코드(pseudo code) 형태로 표현 구현(implementation) 설계된 내용을 구체적인 프로그래밍 언어로 작성하는 단계 프로그램을 작성하는 것을 코딩(coding)한다고 한다.

소프트웨어 개발과정 테스트(testing) 유지보수(maintenance) 프로그램의 오류를 찾아내고 이를 수정하는 단계 프로그램 오류는 컴파일시간 오류, 실행시간 오류, 논리 오류 등이 있음 유지보수(maintenance) 개발된 소프트웨어를 실제 상황에서 운영하면서 상황 및 변화된 요구에 따라 소프트웨어를 적절하게 수정하는 단계

프로그램 작성 및 실행 프로그램 개발 과정을 돕기 위한 소프트웨어 도구 프로그램 작성 및 실행 과정 편집기, 컴파일러, 디버거, 인터프리터 등 이들을 통합하여 제공하는 개발환경을 통합개발환경(IDE) 프로그램 작성 및 실행 과정 오류 프로그램 편집 및 저장 프로그램 컴파일 프로그램 실행 및 결과 평가                                                                                                                               그림 1.10 프로그램의 편집과 실행

오류의 종류 컴파일시간 오류(compile-time error) 논리 오류(logical error) 컴파일 과정에서 생긴 오류 컴파일러는 프로그램의 구문, 데이터, 의미 없는 문장 등을 검사 이런 경우 편집기로 돌아가서 오류를 수정한 후 다시 컴파일 해야 함 논리 오류(logical error) 성공적인 컴파일 후 프로그램을 실행하면서 잘못된 결과를 내는 경우 원하는 결과를 내도록 프로그램 수정 후 다시 컴파일해서 실행해야 함 실행시간 오류(run-time error) 프로그램실행 중에 예상치 못한 이유로 비정상적으로 종료 예: 어떤 값을 0으로 나누려고 하면 프로그램은 실행을 멈추고 종료 좋은 프로그램은 실행시간 오류가 가능한 한 발생하지 않아야 함

디버깅 디버깅(debugging) QnA 프로그램의 결함을 찾고 수정하는 과정을 디버깅이라고 함 디버깅이란 도대체 무슨 말인가요?

컴파일러 및 인터프리터 컴파일러 고급 언어로 작성된 코드를 동등한 의미의 저급 언어로 된 코드로 번역하는 소프트웨어이다. 인터프리터 별개의 컴파일 단계 없이 한 번에 한 문장씩 번역(혹은 해석)하여 실행한다. 소스 프로그램 입력 출력 인터프리터 목적 프로그램 소스 프로그램 컴파일러

Key Point

Key Point 1 컴퓨터 시스템은 하드웨어와 소프트웨어로 이루어진다. CPU는 주 메모리로부터 프로그램의 명령어들을 한 번에 하나씩 읽어 들여서 수행한다. 주 메모리는 휘발성이고 보조 메모리는 비휘발성이다. 운영 체제는 컴퓨터 자원을 효율적으로 관리하고 편리한 사용자 인터페이스를 제공한다. CPU는 인출-해석-실행 주기를 반복한다. 컴퓨터는 이진 값으로 표현된 정보만 저장하고 다룰 수 있다. N 비트는 최대 2N개의 경우들을 표현할 수 있다.

Key Point 2 프로그램이 컴퓨터에서 수행되기 위해서는 보통 그 컴퓨터의 기계어로 번역되어야 한다. 고급 언어는 프로그래머가 기계의 세부 사항을 알 필요가 없게 해준다. 소프트웨어 개발은 요구분석, 설계, 구현, 테스트, 유지보수 과정을 거친다. 컴파일러는 고급 언어로 작성된 코드를 동등한 의미의 저급 언어로 된 코드로 번역하는 소프트웨어이다. 인터프리터는 별개의 컴파일 단계 없이 한 번에 한 문장씩 번역(혹은 해석)하여 실행한다.

프로그래밍 실습

▶ 프로그래밍 실습 1 1. 하드웨어 사양 확인하기 내가 사용하고 있는 컴퓨터의 하드웨어 사양을 조사해 보자. 각 하드웨어의 등록 정보는 다음과 같은 방법으로 조사할 수 있다. 1.1 RAM / CPU / 기타 하드웨어       내 컴퓨터 →  제어판 → 시스템 1.2 디스플레이 / 해상도       내 컴퓨터 → 제어판 → 디스플레이 l.3 하드 디스크       내 컴퓨터 → C 드라이브의 팝업메뉴 → 속성

▶ 프로그래밍 실습 2 2. 이진수와 십진수 사이의 상호 변환 이진수와 십진수의 변환을 연습한다. 2.1 이진수를 십진수로 변환 (1) 0101 → (2) 1001 → (3) 010101 → 2.2 십진수를 이진수로 변환 (1) 17 → (2) 85 → (3) 120 → (4) 자기학번 끝자리 4개 (ex 2008123456 => 3456) →