Presentation is loading. Please wait.

Presentation is loading. Please wait.

제목 CHAPTER 04. 프로그래밍 언어 인간과 컴퓨터의 대화_진화하는 소통. 진화하는 컴퓨터.

Similar presentations


Presentation on theme: "제목 CHAPTER 04. 프로그래밍 언어 인간과 컴퓨터의 대화_진화하는 소통. 진화하는 컴퓨터."— Presentation transcript:

1 제목 CHAPTER 04. 프로그래밍 언어 인간과 컴퓨터의 대화_진화하는 소통. 진화하는 컴퓨터

2 01 프로그래밍 언어의 개요 02 프로그래밍 언어의 실행 과정 03 절차 지향 언어의 프로그래밍 04 객체 지향 언어의 프로그래밍 05 교육용 프로그래밍 언어

3 프로그래밍 언어의 기본 개념과 특징을 알아본다.
프로그래밍 언어의 발전 과정과 기술 동향을 알아본다. 프로그래밍 언어의 종류와 구현 원리를 알아본다. 프로그래밍 언어의 실행 과정을 알아본다. 절차 지향 언어와 객체 지향 언어의 특성과 사용 절차를 알아본다. 교육용 프로그래밍 언어의 특성과 사용 절차를 알아본다.

4 1.1 프로그래밍 언어의 개념 프로그래밍 언어 인간이 컴퓨터와 의사소통할 수 있도록 컴퓨터에 내리는 명령으로 프로그램을 처리하도록 기술한 언어를 말함

5 1.2 저급 언어와 고급 언어 저급 언어(Low-level language)
컴퓨터 내부 표현에 가까운 언어로 기계어(machine Language)와 어셈블리어(Assembly Language)가 있다. 기계어 : 0과 1 인 2진수로 프로그래밍한 언어 어셈블리어 : 기계어 명령을 알기 쉬운 기호로 표시한 언어

6 고급 언어(High-level Language)
1.2 저급 언어와 고급 언어 고급 언어(High-level Language) 고급 언어의 특징 일상 언어에서 사용하는 표현을 그대로 가져다 쓸 수 있음 사용자가 기억 장소의 주소를 일일이 기억할 필요가 없음 하나의 명령어로 다수의 연산을 실행 고급 언어로 작성한 프로그램을 실행하는 과정 대표적인 고급 언어 C, 포트란(FORTRAN), 코볼(COBOL), 파스칼(PASCAL), C++, 자바(Java), 스몰토크(Smalltalk) 등

7 1.3 프로그래밍 언어의 발전 1950년대 언어 1960년대 언어 1970년대 언어
포트란 개발 → 과학 기술용으로 프로그래밍 언어 발전의 이정표가 됨 1960년대 언어 과학기술용으로 개발된 포트란을 더욱 발전시킨 고급 언어와 사무처리용 고급 언어 출현 대표적인 사무처리용 언어 ‘코볼(COBOL)’ 1970년대 언어 C언어와 파스칼(PASCAL)이 개발됨

8 1.3 프로그래밍 언어의 발전 1980년대 언어 1990년대 언어 2000년대 이후 언어
단말 시스템을 이용한 분산 처리 개념이 확산 학생들과 컴퓨터 초보자에게 적합한 교육용 언어가 요구 → 베이직(BASIC) 언어 등장 1990년대 언어 1990년대에는 객체 지향 언어가 본격적으로 등장 C++, 자바(Java), 비주얼 베이직(Visual basic) 등의 객체 지향 언어가 새로 등장 2000년대 이후 언어 파워빌더, 델파이, 각종 쿼리 전용 언어 등 소위 4세대라 불리는 언어 등장 소프트웨어 컴포넌트 기술 발전 객체 지향 기술과 웹의 결합을 통해 다양한 정보를 제공하는 기법도 발전 최근에는 5세대 언어라 불리는 인공지능 기능을 이용해 자연 언어로 직접 처리하는 기법에 대한 연구가 진행됨

9 1.3 프로그래밍 언어의 발전

10 1.4 주요 프로그래밍 언어별 특징 코볼

11 1.3 주요 프로그래밍 언어별 특징 파스칼 복합문 begin-end, 조건문 if-then-else, 반복문 while-do와 같은 제어 구조가 있어 구조적 프로그래밍에 적합 procedure squareroots (input,output) var x : real; begin repeat read(x); if x ≥ 0 then write(sqrt(x)) else write (‘argument error’) until x = 0 end

12 1.3 주요 프로그래밍 언어별 특징 비주얼 베이직

13 1.3 주요 프로그래밍 언어별 특징 C언어 계열(C, C++, C#)

14 1.3 주요 프로그래밍 언어별 특징 자바(Java) C++의 강력함을 제공하면서도 규모는 더 작고 안전성은 강화된 언어
웹 환경에 적합하다는 것이 큰 장점 월드 와이드 웹(World Wide Web)의 보급 확대와 보조를 맞춰 발전

15 2.1 사용자 요구 사항 분석과 프로그램 설계 사용자 요구 사항 분석 프로그램 설계
사용자의 필요를 파악하고 프로그램을 통해 해결할 문제가 무엇인지 확인하는 단계 프로그램 설계 실제 코딩을 시작할 때 사용할 논리를 프로그래머가 대략 그려내는 단계 알고리즘 설계라고도 함 알고리즘의 특성 알고리즘 명령을 수행하면 유한한 횟수를 거친 후 종료해야 한다. 알고리즘의 각 단계와 명령은 명확하게 정의되어야 한다. 알고리즘은 데이터 입력이 0 또는 그 이상이어야 한다. 알고리즘은 한 가지 이상의 결과를 출력한다. 알고리즘은 효과적이어야 한다. 이는 유한한 시간 내에 정확히 수행할 수 있을 정도로 단순해야 함을 의미한다.

16 프로그래밍 절차

17 2.1 사용자 요구 사항 분석과 프로그램 설계 프로그램 설계 프로그램 제어 흐름 유형
순차 구조 : 프로그램 코드 순서대로 실행 선택 구조 : 프로그램이 다음에 무엇을 해야 하는지를 결정하는 분기 구조 반복 구조 : 조건이 만족하지 않을 때까지 계속 반복

18 2.1 사용자 요구 사항 분석과 프로그램 설계 프로그램 설계 반복 구조 For문 : 특정 횟수만큼 반복한다.

19 2.1 사용자 요구 사항 분석과 프로그램 설계 프로그램 설계 반복 구조 while문 : 조건식이 참이면 계속 반복 실행한다.

20 2.1 사용자 요구 사항 분석과 프로그램 설계 프로그램 설계 반복 구조
do-while문 : 일단 문장을 실행 한 후 조건식을 검사하여 반복 수행한다. 최소 1회 수행

21 2.2 코딩 및 컴파일 코딩 : 프로그래밍 언어로 프로그램을 작성하는 단계
컴파일 : 고급 언어로 작성된 명령문을 기계어로 바꾸는 단계 컴파일러(Compiler)를 이용한 방식 프로그램 전체를 한번에 기계어로 번역하는 방식 C언어, 코볼, 포트란, 파스칼 등의 언어에서 사용

22 2.2 코딩 및 컴파일 인터프리터(interpreter)를 이용한 방식
프로그램을 한 행씩 읽어 번역과 실행을 동시에 하는 방식 베이직 등의 언어에서 사용

23 2.2 코딩 및 컴파일 하이브리드(Hybrid) 방식 컴파일러와 인터프리터를 함께 이용하는 방식
리스프, 스노볼4, APL, 프롤로그, 자바 등의 언어에서 사용

24 2.4 디버깅 및 시험 디버깅(Debugging) : 벌레를 잡는다는 뜻으로 프로그램이 포함하는 모든 오류를 찾아내 제거하는 것 오류에는 구문 오류와 논리 오류가 있음 구문 오류 : 틀린 문자를 입력하거나 문법에 맞지 않는 명령문을 사용했을 때 발생하는 오류 논리 오류 : 제어 구조의 부적절한 사용으로 발생하는 오류 시험은 알파 테스트와 베타 테스트로 구분 알파 테스트 : 완성된 프로그램을 개발 환경에서 시험하는 방법 베타 테스트 : 특정 고객이 고객에 쓰는 환경에서 시험하는 방법

25 프로그램 개발 방법 상향식 프로그래밍(bottom-up programming)
‘밑에서 위로’ 프로그래밍하는 것 작은 기능의 단위들을 만들고 이 단위들을 상호작용시켜 무엇인가를 하도록 함 현실적인 사물의 구조에 기초해서 개발을 하기 때문에 일반화하기가 쉬워서 유연한 코드를 작성할 수 있음 구조가 너무 복잡해져 프로그래밍 분석과 수정이 어려워질 수 있음 하향식 프로그래밍(top-down programming) ‘위에서 아래로’ 프로그래밍을 하는 것 문제를 정의하고 해결 작업에 필요한 요소들로 분해한 후 이들을 프로그래밍 초반에 기능을 구현할 때 고려해야 하는 범위가 좁기 때문에 개발할 때 많이 고민할 것 없이 해당 기능에 맞게 간단하게 구현이 가능 너무 간단하게만 생각한 나머지 자칫 딱딱하고 고정적인 프로그램을 만들 수 있음

26 절차 지향(Procedure Oriented) 언어의 개념
3.1 절차 지향 언어의 개념 절차 지향(Procedure Oriented) 언어의 개념 프로그램 코드가 순서대로 실행되는 언어 파스칼, 코볼, 포트란, 베이직, C언어 등

27 구조적 프로그래밍(structured programming) 등장 배경
3.2 구조적 프로그래밍의 이해 구조적 프로그래밍(structured programming) 등장 배경 goto문의 무분별한 분기 구조를 개선하고 모든 명령문의 처리를 블록으로 모듈화시키기 위해 등장

28 객체지향 프로그램의 등장 배경 소프트웨어 생산성의 위기(software productivity crisis)
초창기 소프트웨어는 규모 면에서도 작았을 뿐만 아니라 기능도 비교적 단순했으나 시간이 흘러감에 따라 규모가 커지기 시작함. 소프트웨어가 점차 대형화되어 가면서 유지하고 보수하는 작업 역시 어려운 작업이 되어감 근본적인 원인인 다른 기종, 다른 전산 환경을 해결하는 개방형 소프트웨어 기술과 점차 복잡해져 가는 소프트웨어의 효율적인 개발 문제를 해결하지 못하였기 때문 위기를 해결하기 위해서는 새로운 개발 방법과 원칙이 필요 근본적인 원인을 해결하고자 객체지향 프로그래밍 기술이 등장

29 객체지향 프로그램의 목표 객체지향 프로그램의 궁극적 목표
각각의 소프트웨어 모듈(module)을 하나의 객체(object)로 만들어 보관 다른 소프트웨어를 개발할 때에 프로그램 코드를 전혀 변경하지 않고 다시 사용할 수 있도록 함 소프트웨어의 모듈들을 재사용할 수 있도록 하여 소프트웨어 개발의 생산성을 향상시키고자 하는 것

30 4.1 절차 지향 언어와 객체 지향 언어의 차이점 절차 지향 언어 : 데이터와 데이터를 처리하는 기능이 별도로 관리
객체 지향 언어 : 데이터와 기능을 묶어 캡슐화시킨 후 메시지를 전달하여 일을 처리

31 4.2 객체 지향(Object Oriented) 언어의 주요 개념
클래스 다른 사물과 구분되는 속성을 가진 객체가 모여, 일반화된 범주로 묶인 것 객체 개별적으로 식별되는 사물을 지칭 속성과 기능을 캡슐화 함 상속 하위 클래스는 상위 클래스가 가지는 속성과 기능을 모두 이어받을 수 있는데 이를 상속이라고 함

32 4.2 객체 지향 언어의 주요 개념 메시지 객체 간에 전달되는 명령 단위

33 4.2 객체 지향 언어의 주요 개념 추상화 어떤 객체가 상대하는 다른 객체에 대해, 꼭 필요한 부분만 알고 나머지 세부적인 사항은 감추는 것 캡슐화 객체에 속성과 기능을 포함하면서 추상화 개념을 통해 객체의 세부내용은 사용자로부터 은폐하는 것

34 4.2 객체 지향 언어의 주요 개념 다형성 일반화된 클래스는 어떤 특정화된 클래스 객체를 지칭할 수 있기 때문에 같은 동작을 함, 하지만 각각 특정화된 클래스는 다른 성질을 가질 수 있음 이런 성질을 다형성이라 함

35 5.1 교육용 프로그래밍 언어의 종류 스크래치 프로그래민 스몰베이직 스퀵 이토이즈 엔트리

36 Chapter 4 둘러보기 연습문제 -1 컴퓨터가 처리할 일들을 순서에 맞게 계획해 놓은 것을 ( ) 이라 한다.
( ) 이라 한다. 초창기의 컴퓨터 프로그래밍은 ( )에 의해 작성되고 처리되었다. ( )는 컴퓨터의 전기적 회로에 의해 직접적으로 해석되어 실행되는 언어이다. ( )는 원시프로그램을 입력 받아 명령문 단위로 기계어로 해석하여 바로 실행하는 번역기 이다. ( )에 의해 구현된 언어로는 APL, BASIC, LISP, SNOBOL4, SQL, HTML, Javascript 이다. 구조적 프로그래밍 방법에는 ( ), ( ), ( )구조가 있다. ( )는 포트란, 코볼, 파스칼, C, C++, C#, Java 등과 같은 고급언어로 작성된 프로그램을 기계어로 번역하는 언어 처리기 이다. 프로그램 기계어 기계어 인터프리터 인터프리터 순차형 선택형 반복형 컴파일러

37 Chapter 4 둘러보기 연습문제 -2 ( )란 지난 수십 년간 하드웨어의 눈부신 발전에 비해 큰 기술의 발전을 이룩하지 못한 소프트웨어 기술의 낙후성을 의미한다. 프로그래밍 절차는 문제분석 → 입출력설계 → 순서도 작성 → 프로그램 코딩 및 입력 → 번역 및 착오 검색 → 실행 → ( ) 이다. 세상에 존재하는 모든 것들을 하나의 객체로 파악하고 컴퓨터와 프로그램에서 객체들 단위로 작업을 처리하는 방식을 기술하기 위하여 사용되는 것을 ( )이라 한다. 작은 기능의 단위들을 만들고 이 단위들을 상호 작용시켜 무엇인가를 하도록 만드는 프로그래밍 방식을 ( )이라 하고 문제를 정의하고 해결 작업에 필요한 요소들로 분해 후 이들을 프로그래밍 하는 방식을 ( )이라 한다. 소프트웨어의 위기 문서화 객체지향 상향식(bottom-up) 하향식(top-down)

38


Download ppt "제목 CHAPTER 04. 프로그래밍 언어 인간과 컴퓨터의 대화_진화하는 소통. 진화하는 컴퓨터."

Similar presentations


Ads by Google