Presentation is loading. Please wait.

Presentation is loading. Please wait.

컴퓨터 프로그래밍 컴퓨터의 구성 및 프로그램 언어의 개요 제 1 주 강의.

Similar presentations


Presentation on theme: "컴퓨터 프로그래밍 컴퓨터의 구성 및 프로그램 언어의 개요 제 1 주 강의."— Presentation transcript:

1 컴퓨터 프로그래밍 컴퓨터의 구성 및 프로그램 언어의 개요 제 1 주 강의

2 컴퓨터의 구성 컴퓨터란? 컴퓨터(Computer): ‘Compute(계산하다)’에서 유래
전자계산:고등학교나 대학교에서 배우는 컴퓨터 과목 가장 대표적인 컴퓨터의 기능: 계산 컴퓨터는 쉽고 빠르게 그리고 정확하게 계산을 마칠 수 있다. 어디에 사용하지? 빠른 계산이 필요한 곳 날씨 예측: 공기의 흐름, 기압 등을 계산해서 날씨를 예측 미사일이 날아가는 비행기를 맞추기 위해서는 비행기 속도, 비행기의 방향, 비행기와의 거리 등을 계산해서 미사일의 속도 방향 등을 결정 선박이나 해양구조물 주위의 물이나 공기의 흐름을 계산하여 저항이 적은 선형을 설계, 구조물의 강도/변형 등을 계산 해류의 예측: 조류와 기류 및 지구자전에 의한 회전력을 고려하여 방대한 해양의 흐름을 예측 컴퓨터는 빠른 계산을 할 수 있다!! 어디에 사용하지? 문서작성과 정보검색, 데이터 처리, 그리고 엔터테인먼트 등등...

3 컴퓨터의 구성 컴퓨터의 역사 주판 기계식 계산기 Mark I
주판은 5000년 전에 중국에서 개발되어 아직까지 사용되고 있는 최초의 컴퓨터라고 할 수 있다. 기계식 계산기 1642년 프랑스 사람 파스칼은 21살에 톱니바퀴를 이용한 기계식 계산기를 만들었습니다. 이 계산기는 8자리 덧셈을 할 수 있었다. Mark I 1944년에 마크Ⅰ이라 불리는 컴퓨터가 맨체스터 대학에서 만들어 졌다. 이 컴퓨터는 최초로 프로그램을 저장할 수 있는 전기 디지탈 컴퓨터였다.

4 컴퓨터의 구성 컴퓨터의 역사 제 1 세대 ( ) 1946년에 개발된 에니악은 18,000개의 진공관으로 된 방만큼 큰 컴퓨터 이 컴퓨터는 30~ 톤이나 될 정도로 굉장히 무거웠음 그런데, 진공관은 너무 약해서 평균적으로 15분 마다 진공관이 하나씩 고장이 났고, 60 00개의 스위치를 이용해서 프로그램을 함 에니악은 마크Ⅰ보다 계산 속도가 1000배정도 빨랐음 유니박이라는 컴퓨터는 맨 처음으로 상용화 되서 미국의 인구 통계국에서 사용이 되었음 이 컴퓨터는 7200개의 진공관 을 이용

5 컴퓨터의 구성 컴퓨터의 역사 제 2 세대 (1956-1963) 제 3 세대 (1964-1971)
2세대 컴퓨터는 트랜지스터의 발명으로 크게 발전 트랜지스터가 크고 불편했던 것에 비해 진공관을 대신해서 컴퓨터에 사용되었음 이 기간 동안에 포트란과 코볼이라는 프로그래밍 언어도 개발 제 3 세대 ( ) 잭이라는 한 기술자가 직접회로를 개발 이 직접회로를 이용해서 컴퓨터의 크기는 더욱 ~ 더 작아지게 되었음 이 시대에는 또 운영체제가 널리 사용되어 한 컴퓨터에서 여러 개의 프로그램을 동시에 돌릴 수 있게 되었음 년대 사용되던 IBM 7030 컴퓨터

6 컴퓨터의 구성 컴퓨터의 역사 제 4 세대 ( ) 4세대에는 직접회로 기술이 발달해서 대규모 직접회로(LSI)를 이용한 컴퓨터가 생산 1971년에 Intel은 4004칩을 개발 4004는 4비트 마이크로칩 인텔은 다시 1974년에 8080 마이크로프로세서를 개발했는데, 8080 프로세서는 16비트 주소 버스와 8비트 데이터 버스를 사용 내부적으로는 일곱 개의 8비트용 레지스터를 가지고 있었고, 16비트의 스택 포인터와 프로그램 카운터를 가지고 있었음 1977년에 소개된 애플Ⅱ는 ROM에 베이직 언어를 장착하고, RAM을 48K 까지 확장할 수 있었음 1981년에 IBM은 가정과 사무실에서 사용할 수 있는 PC를 선 보였음 Apple II Cray I: 1976년에 소개된 최초의 슈퍼컴퓨터. 최대 133Mflops의 성능이었고 미국 Los Alamos 연구소에 최초 설치

7 컴퓨터의 구성 컴퓨터의 역사 제 5 세대 (1980-1990) 제 6 세대 (1990-1990): Multimedia
IBM 16비트인 386 PC의 등장(1988) 486 PC (1989) 제 6 세대 ( ): Multimedia IBM Pentium PC와 Windows95의 등장: 486에 비해 4배의 속도를 가지고 있고, 부동소수점 연산능력에서는 특히 탁월한 것으로 알려짐 64비트 데이터 버스를 지원한다는 것 이외에도 386이나 486에 채택된 많은 기술과 아울러 새로운 기술도 채택되었는데, 이중 파이프라인(pipe line)이나 분기예측과 같은 것이 그것 제 7 세대 (1990-현재): Internet

8 컴퓨터의 구성 중앙처리장치(Central Processing Unit, CPU) 기억장치(Memory Unit)
컴퓨터의 심장: 전체 시스템 동작의 제어, 산술 및 논리 동작의 수행, 데이터의 저장과 판독을 담당한다. 기억장치(Memory Unit) 명령과 데이터는 고속 기억장치에 저장된다. 제어장치(Control Unit) 메모리로부터 이들 명령을 가져와 변환하고, 그 명령에 의해 지시되는 동작을 실행하도록 시스템을 제어한다. 산술 및 논리 동작은 CPU의 연산 로직 장치(Arithmetic Logic Unit, ALU)회로에서 실행된다. 입출력 장치(Input/Output device)

9 컴퓨터의 구성 기억 장치(memory unit) 기억 장치 주기억 장치 램(Ram) 롬(Rom) 보조 기억 장치
직접 접근 기억 장치 순차적 접근 기억 장치

10 컴퓨터의 구성 기억소자의 성격 비소멸성(nondestructive, ROM): 전원이 꺼졌을 때 먼저 기억시킨 내용이 그래도 남아 있다. 소멸성(destructive, RAM): 전원이 꺼지면 기억된 내용이 모두 지워 진다. 주기억 장치 대개 소멸성이지만 비소멸성인 부분도 있다. 연산 장치나 제어 장치에 비하여 속도가 늦기 때문에 속도가 빠른 특수 소자로 된 소규모의 기억 장치를 마련하여 계층적으로 운용한다.

11 컴퓨터의 구성 보조기억 장치 주기억 장치에 있는 내용을 저장하기 위한 장치 . 보조 기억 장치 직접 접근 기억 장치
자기 드럼 자기 디스크 레이져 디스크 플로피 디스크 데이터 셀 순차적 접근 기억 장치 자기 테이프 카세트 테이프

12 컴퓨터의 구성 입력장치 입력장치 종류 조이스틱: 주로 컴퓨터의 게임에서 조절점이나 캐릭터를 움직일 때 사용하는 기구
컴퓨터에게 데이터나 명령을 입력시켜 줄 수 있는 장비. 입력장치 종류 조이스틱: 주로 컴퓨터의 게임에서 조절점이나  캐릭터를 움직일 때  사용하는 기구 키보드: 컴퓨터에서의 대표적인 입력장치로서 키의 개수에 따라 101키, 103키 등이 있다. 마우스: 화면상에 나타나 있는 포인터를 움직이거나 데이터 또는  도형을 입력하는 장치 광펜: 컴퓨터 모니터의 특정 부분에 접촉시켜 문자나 도형을  입력하는 장치 스캐너: 이미 인쇄된 문자나 사진 등을 읽고 처리하여 파일의  형태로 저장하는 장치 광학 마크 판독기: 일정한 형식으로 만들어진 용지나 카드에 연필이나 사이펜 등으로 표시를 함으로써 정보를 표현한 것. (OMR: Optical Mark Reader) 광학문자 판독기: 용지에 인쇄된 문자에 빛을 대었을 때 나오는  반사광선으로 그 문자가 무엇인지를 판단하는 입력장치. (OCR: Optical Character Reader) 트랙볼: 휴대용 컴퓨터에서 키보드를 대신해서 사용할 수 있는 입력장치

13 컴퓨터의 구성 출력장치 출력장치 종류 처리장치로부터 결과를 입력 받아 사용자가 볼 수 있는 형태의 정보로 보여주는 장치.
모니터: 모니터는 크면 클수록 좋다고 봐야 한다. 보통의 경우는 모니터가 커지면 지원 해상도가 높아지기 때문이다. 도트피치: 모니터의 한 점과 한 점의 사이 간격. 이것은 작으면 작을 수록 좋다. 보통 도트피치는 0.28mm정도가 표준이다. 모니터의 Hz는 1초 동안 화면을 몇 번 그리느냐인데, 이 숫자는 크면 클수록 좋다. 해상도마다 다르긴 하지만 보통 75hz정도 되면 눈이 피로하지 않다. 프린트: 보통 문서 작성을 해서 출력하는데 가장 많이 쓰이고, 그래픽을 출력하는 용도로도 많이 사용 된다. 프로젝터: 컴퓨터의 화면을 영사기로 뿌리듯이 화면을 만들어 내는 것이다.

14 컴퓨터의 구성 특수기억 장치 가상 기억 장치: 메모리를 주기억 장치의 용량으로 제한하지 않고 보조 기억 장치의 용량 까지 확대 사용한 것. 주로 하드 디스크를 주기억 장치처럼 이용. 주기억 장치가 연장된 것과 같이 처리 블록단위 일부분을 실제공간으로 가져옴 주기억 장치 용량보다는 큰 프로그램 실행 처리 속도는 늦으나 기억공간 확대 도움. 캐시 기억 장치: CPU 와 주기억 장치 사이에 존재하며 적은 용량의 빠른 기억장치 다음에 처리할 명령 또는 데이터를 미리 주기억 장치로부터 캐시 기억 장치로 이동 시켜 CPU 처리 속도로 수행 CPU가 주기억 장치 보다 5배정도 더 빠르게 연산 하므로 CPU 속도로 빠르게 수행될 수 있도록 함. 복수 모듈 기억 장치: 기억 장치를 여러 개로 분할하고 각 기억 장치의 역할을 독립적으로 수행할 여러 개의 모듈을 마련한 것. 기억 장치에 접근하는 순서가 하나의 모듈에서 차례대로 수행되지 않고 여러 개의 모듈에 동시에 접근. 하나의 모듈에서 여러 번 접근하는 것보다 시간이 빨라짐. 연상 기억 장치: 기억된 데이터의 내용에 의하여 그 위치에 접근할 수 있는 기억 장치 번지에 의해 접근 방식 보다 찾는 시간 줄일 수 있음. 병렬 검색이 가능하고 전체워드 또는 일부만으로 검색 가능 주어진 특성을 가진 데이터를 신속히 찾아주나 램보다 값이 비싸다.

15 프로그래밍 언어의 역사 제1세대 프로그래밍 언어 컴퓨터 자체가 매우 귀하고 비쌌다. 대표적 언어
FORTRAN(FORmula TRANslation) 0,1 IBM에서 개발 최초로 컴파일된 고급수준의 언어 ALGOL(ALGOLithmic language) 58 유럽(반 IBM 세력)이 중심이 되어 개발 FORTRAN을 일반화하고 기능 첨가 프로그래밍 언어로서 한마디로 FORTRAN보다 훨씬 좋은 언어 하지만 당시에는 FORTRAN이 훨씬 더 대중적 실제로 그 당시 ALGOL의 구조적 프로그래밍 기법이나 여러 유용한 기능을 대중들이 제대로 이해 못함

16 프로그래밍 언어의 역사 제2세대 프로그래밍 언어(1959~1961) 매우 많은 언어가 출현 대표적 언어
FORTRAN(FORmula TRANslation) 과학과 공학용 가장 수명이 긴 언어중 하나…계속되는 변신… FORTRAN II → FORTRAN IV → FORTRAN 77 → FORTRAN 90 → FORTRAN-D → HPF(High Performance Fortran) COBOL(Common Business Oriented Language) 미 국방성에서 개발 사무처리용 언어의 대명사 6,70년대 작성된 프로그램의 대부분이 COBOL이라 해도 과언이 아님 “2000년 문제”의 주인공 → millennium bug

17 프로그래밍 언어의 역사 제3세대 프로그래밍 언어(1962~) 60년대 초에 컴파일러 개념이 발전되어 많은 번역문제 해결
수 많은 프로그래밍 언어 출현(10년간 200여개) 실험적인 언어들도 많았다 대표적 언어 PL/I IBM에서 개발 좋다는 것은 무엇이든지 첨가 everything for everybody Swiss Army Knife(멕가이버 칼)식 설계 → 실패 (교훈) 결국 프로그래밍 언어란 뚜렷한 사용목적을 가지면서 최소규모를 유지해야 한다는 사실 PASCAL ALGOL의 개발에 참여했던 Niklaus Wirth가 학생들에게 프로그래밍 언어를 가르치기 위해 개발 → 의외의 성공 – 단순성과 표현력만을 강조한 결과 가장 대중적인 프로그래밍 언어 중 하나가 됨

18 프로그래밍 언어의 역사 제3세대 프로그래밍 언어(1962~) 대표적 언어
BASIC(Beginner’s All-purpose Symbolic Instruction Code) 영어를 할 줄 아는 보통 사람을 위한 프로그래밍 언어 인터프리터 방식을 채택하여 대화형 프로그램에 적합 → 물론 요즘 BASIC은 컴파일러 방식 !! 그래픽 처리 능력을 인정 받아 장수에 성공… → visual BASIC (*) 원래 BASIC을 개발한 다스마우스 대학은 미술대학으로 유명 LISP 최초의 함수형 언어 함수형 언어란 수학적 함수의 개념을 그대로 프로그래밍 언어화 인공지능 분야에 대한 관심과 더불어 발전 가장 널리 사용되는 두 가지 dialects Scheme COMMON LISP

19 프로그래밍 언어의 역사 1970년대의 언어 60년대에 쏟아져 나온 많은 언어들 중 가장 대중적으로 성공한 PASCAL을 발전시킴 Ada 미 국방성에서 PASCAL에 기반을 두면서 병렬처리, 예외처리 등의 개념을 지원하는 언어 개발 프로젝트 지원 역사상 가장 많은 노력과 돈을 들여서 만든 언어 C UNIX라는 운영체제를 설계하던 중 탄생 효율적이고 이식성이 뛰어남 고급언어와 어셈블리어의 중간적 성격 — 중급언어 시스템 프로그래밍에서 일반 응용 프로그램의 작성에 이르기까지 역사상 가장 대중적으로 성공한 언어

20 프로그래밍 패러다임의 변화 구조적 프로그래밍 기법 객체지향 프로그래밍 기법
프로시져, 함수 등의 사용으로 대표되는 구조적 프로그래밍 기법이 70년대를 풍미 ALGOL계열(PASCAL, C 등) 언어들이 대표적 → 절차(Procedural) 중심적인 사고에서 객체(object) 중심적인 사고로의 전환 객체지향 프로그래밍 기법 SIMULA(1966)라는 언어에서 클래스 개념을 도입 Smalltalk(1983)으 등장으로 비로소 객체지향 프로그래밍 언어시대 개막 추상화, 캡슐화, 다형성, 동적 바인딩 등이 대표적 개념 → 사실상 알게 모르게 모든 언어들에 조금씩 들어있는 개념들

21 그렇다면, 현재는? C++ Java 가장 대중적 언어인 C와 객체지향 패러다인의 만남 C언어에 클래스 개념을 도입하면서 시작
C with classes C++(“++”는 C언어만이 갖는 대표적인 증가 연산자) 사실상 C++는 순수한 의미에서의 객체지향 언어는 아니다. 그러나 가장 대중적으로 성공한 객체지향 언어임에는 틀림 없다 Java Sun Microsystem 사에서 개발한 프로그래밍 언어 간단하고 버그가 없는 전자제품 개발이 초기의 목적 플랫폼 독립적이면서 분산 네트워크 지원필요 1994년 중반부터 웹의 인기 상승으로 브라우저 개발 현재는 Netscape과 Explore 모두에서 자바를 지원 웹상에서 에니메이션이나 고수준의 상호작용이 가능 프로그래밍 언어로서의 자바 단순 객체지향적 분산처리 컴퓨터 구조에 중립적 등등

22 정리해 보면... 프로그래밍 언어의 역사란... FORTRAN, ALGOL, COBOL 등으로 대표되는 프로그래밍 언어의 태동기 구조적 프로그래밍 기법으로 대표되는 70년대의 프로그래밍 언어 중흥기 객체지향 프로그래밍 기법이 등장하는 80년대는, 구조적 프로그래밍, 객체지향 프로그래밍, 함수형 프로그래밍 등 지난 20여 년간을 지내면서 살아남은 생명력 있는 프로그래밍 언어들의 각축장 이제 네트워크가 중심이 되는 시대를 맞아, 자바로 대표되는, 분산처리가 가능하고 웹을 기반으로 하는 프로그래밍 언어 시대가 펼쳐지고 있다

23 연산 속도의 비교 <2013> <제 2 주 강의>

24 과제 현재 내가 사용하고 있는 PC의 스펙 조사 CPU, 메모리, 하드드라이브, 그래픽카드 등


Download ppt "컴퓨터 프로그래밍 컴퓨터의 구성 및 프로그램 언어의 개요 제 1 주 강의."

Similar presentations


Ads by Google