Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computers: Tools for an Information Age Chapter 12

Similar presentations


Presentation on theme: "Computers: Tools for an Information Age Chapter 12"— Presentation transcript:

1 Computers: Tools for an Information Age Chapter 12
프로그래밍 언어 Computers: Tools for an Information Age Chapter 12

2 학습 목표 프로그래머가 프로그램을 작성하기 위한 절차를 이해한다. 다양한 프로그래밍 언어의 레벨에 대해 이해한다.
프로그래머가 프로그램을 작성하기 위한 절차를 이해한다. 다양한 프로그래밍 언어의 레벨에 대해 이해한다. 널리 사용되고 있는 프로그래밍 언어에 대해 숙지한다. 객체 지향적인 프로그래밍에 대해 이해하고 절차 중심의 프로그래밍과의 차이에 대해 숙지한다.

3 프로그램과 프로그래밍 프로그램의 정의 프로그래밍 언어 프로그래밍을 하는 이유
Set of step-by-step instructions 프로그래밍 언어 어떤 연산을 수행해야 하는지를 컴퓨터에게 알려 주는 규칙의 집합 언어의 단계에 따라 다양한 형태의 규칙이 존재 프로그래밍을 하는 이유 컴퓨터의 이해를 돕는다. 컴퓨터로 하여금 원하는 행위를 하도록 지시

4 프로그래밍 과정 문제 정의 해결 방법 기획 프로그램 코우딩 프로그램 테스트 사용자와 프로그래머간의 입출력, 처리내용 상의
흐름도(flowchart) 이용 의사코드(pseudocode) 이용 프로그램 코우딩 흐름도나 의사코드를 특정 프로그래밍 언어로 표현 프로그램 테스트 다양한 테스트 방법이 존재

5 Flowchart의 예

6 프로그램 테스트 Desk-checking Translating Debugging 프로그램에 오류가 없는지 재 검토해 본다
컴파일러를 이용 구문오류를 검사 : 프로그램에 정의된 문법에 맞지 않는 것을 찾아 줌 링크 오류: 라이브러리나 외부 모듈과의 결합 시의 오류를 찾아 줌 Debugging 버그를 찾아서 교정하는 과정 주로 논리 오류를 찾아서 없애는 과정

7 프로그램의 다양한 형태 원시 프로그램 (source program) 목적 프로그램 (object program)
특정 프로그래밍 언어로 작성된 원래 형태의 프로그램 목적 프로그램 (object program) 컴파일러에 의해 번역된 프로그램 링크/로우드 프로그램 (link/load program) 시스템 라이브러리가 결합된 프로그램 컴퓨터에 의해 실행됨

8 프로그램의 수행 과정

9 프로그램의 문서화 문서화 프로그램의 재이용과 수정의 필요로 중요성이 증가
프로그래밍 주기와 프로그램에 대한 구체적인 사실을 문서로 상술하는 과정 주어진 문제 설명 프로그램 흐름과 논리 설명 흐름도와 의사 코드, 데이터 레코드 설명 프로그램 리스트, 테스트 결과 기록 프로그램의 재이용과 수정의 필요로 중요성이 증가

10 프로그래밍 언어의 단계 기계어 (machine language) 어셈블리어 (assembly language)
가장 낮은 수준의 언어 데이터와 명령이 1,0으로 표시됨 각 컴퓨터 마다 고유의 기계어 존재 어셈블리어 (assembly language) 0,1대신에 mnemonic code사용 어셈블러 (assembler): 어셈블리어를 기계어로 변환시켜 주는 프로그램 단점 컴퓨터 마다 언어가 다름 (Hardware dependant) 코우딩이 어려우므로 오류가 많다. <기계어의 예>

11 어셈블리어의 예:pp.325

12 프로그래밍 언어의 단계 고 수준의 언어 (High level language)
사용하기 쉽다. 컴파일러에 의해 번역 C, C++, Pascal, Cobol과 같은 언어가 해당 4th-Generation Language (4GL) 축약된 형태로 프로그래밍이 가능함 수백 라인의 3세대 언어==> 5~10 라인의 4세대 언어 비 절차적인 언어 (what to do 에 초점) cf: 절차적 언어 (How to do에 초점) 자연언어 (natural language) 말로서 컴퓨터에게 작업 지시

13 4GL 장점 예) 질의 언어(query language) 방법보다 결과 지향적인 언어
프로그램의 작성 및 유지가 쉬우므로 생산성이 증가 사용법 훈련이 매우 적다 사용자가 불필요하게 하드웨어나 소프트웨어 적인 내용을 알 필요 없음 예) 질의 언어(query language) 4GL의 일종 데이터 베이스에서 정보를 검색하는 데 쓰임

14 주요 프로그래밍 언어 FORTRAN COBOL FORmula TRANslator 최초의 고 수준 언어
과학 계산용 언어: 빠른 계산 수행 1954년 IBM에서 개발 COBOL COmmon Business-Oriented Language 사업용 언어 1959년 개발 ANSI 표준 (1968, 1974, 1985)

15 주요 프로그래밍 언어 BASIC PASCAL
Beginner;s All-purpose Symbolic Instruction Code 1965년 John Kemeny와 Thomas Kurtz에 의해 개발 초보자용, 대화형 시분할 환경에서 많이 이용 PASCAL 프랑스 수학자 Blaise Pascal의 이름을 빌림 단순 명료한 언어 1971년 Niklaus Wirth가 개발 교육용으로 많이 사용

16 주요 프로그래밍 언어 Ada C 최초의 프로그래머인 Ada lovelace 백작 부인의 이름을 따서 작명
1981년 미국방성에서 투자하여 개발 국방 시스템을 위한 표준 언어로 개발 C 1972년 Bell Lab의 Dennis Ritchie가 개발 어셈블리어 수준의 효율성을 지닌 고 수준 언어 특정 기계의 구조에 무관한 언어 (이식성) 시스템 소프트웨어 작성에 용이 (범용 언어)

17 주요 프로그래밍 언어 Java 네트웍 지향적인 프로그래밍 언어 C++로 부터 개념을 도입
동일한 소프트웨어가 상이한 플랫폼에서 돌아 갈수 있도록 지원 Web 상에서의 응용 프로그래밍 작성 도구로 많이 사용

18 객체 지향 프로그래밍 Object-Oriented Programming(OOP) 객체 (Object)
데이터와 그 데이터의 조작을 위한 기능을 지원하는 함수들을 가지고 있는 유닛 절차적인 언어에 비해 데이터의 중요성을 강조 이러한 형태의 object를 Encapsulation되어 있다라고도 함 Attribute: Object내에 포함된 데이터 Method: 데이터를 조작하기 위한 함수 Instance: 실제 생성된 특정 객체

19 객체 지향 프로그래밍 Everything is Object Class: OOP에서 작성된 객체의 정의
상속(Inheritance): 상위 클래스의 속성이나 기능을 하위 클래스에서 사용할 수 있도록 허용 Message passing에 의해 객체들간의 의사 소통이 가능 다형성(Polymorphism): message에 의해 어떤 method가 수행되어야 하는지를 각 객체가 판단하여 message 처리

20 Object Classes and Subclasses

21 객체 지향 프로그래밍 객체 지향 언어 (OOP Language) C++ Smalltalk C++, Smalltalk
가장 널리 사용되고 있는 객체 지향 언어 Superset of C C의 모든 기능을 지원 + OOP paradigm 지원 Smalltalk 최초의 OOP paradigm을 가장 잘 지원해 준 언어 Visual system을 지원

22 문제 정의

23 FORTRAN version

24 COBOL version

25 BASIC version

26 PASCAL version

27 C++ version

28 요약 및 연습 문제 Assembly language Object Machine language OOP BASIC Method
COBOL C / C++ 4GL Java Smalltalk Object OOP Method Polymorphism Inheritance Source module Object module Link module 연습 문제: pp


Download ppt "Computers: Tools for an Information Age Chapter 12"

Similar presentations


Ads by Google