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

Slides:



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

프로그래밍언어론 TA 윤들녁. 소개 윤들녁 연락처 : 공대 7 호관 4 층 401 호 데이터베이스 연구실 실습 후 날짜 _ 학번.zip 으로.
천안천일고등학교 Copyright © by Ryu Bin All rights reserved 프로그래밍 실무.
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
(1.1 v) 엔트리교육연구소 엔트리 카드게임 설명서.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
Java 1장. 컴퓨터와 프로그램 그리고 자바 public class SumTest {
Power Java 제3장 이클립스 사용하기.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
최윤정 Java 프로그래밍 클래스 상속 최윤정
CHAPTER 05 프로그래밍.
Introduction To Computers
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
C언어 콘서트 제1장 프로그래밍 소개.
Power Java 제2장 자바 개발 도구.
1장 기본적인 사항(3) 순천향대학교 컴퓨터공학과 하상호.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 01. 이것이 C언어다.
Chapter 11: 소프트웨어 개발 프로그래밍 및 언어.
1. C++ 시작하기.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
C++ Programming: Sample Programs
FTP 프로그램 채계화 박재은 박수민.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터과학 전공탐색 배상원.
03. 병행 프로세스 (Parallel Process)
Computational Thinking
스크래치 언어 이해 스크래치 이용법 습득 고양이가 말을 하며 움직이는 예제 작성
1장 기본적인 사항(3) 순천향대학교 컴퓨터공학과 하상호.
1. C 언어 개요.
프로그래밍 개요
Chap 6.Assembler 유건우.
27장. 모듈화 프로그래밍.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
UNIX Unbounded A Beginning Approach
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
CHAPTER 04. 프로그래밍 언어 인간과 컴퓨터의 대화_진화하는 소통. 진화하는 컴퓨터
제 9장 트랜스레이터.
6강. 객체지향 프로그램의 시작 객체지향 이전의 프로그래밍 객체지향의 등장 배경과 이해 메소드의 이해
웹디자인
20장. 객체지향 프로그래밍 01_ 객체지향 프로그래밍의 시작.
제 4장. 객체 지향 프로그래밍 시작하기 학기 프로그래밍언어및실습 (C++).
04. DBMS 개요 명지대학교 ICT 융합대학 김정호.
자바 5.0 프로그래밍.
LabVIEW WiznTec 주임 박명대 1.
Part 1 개요 Chapter 1 : 컴퓨터와 프로그램 그리고 자바 Chapter 2 : 자바의 환경
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
웹사이트 분석과 설계 (화면 설계) 학번: 성명: 박준석.
Computers: Tools for an Information Age Chapter 12
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
알고리즘 알고리즘이란 무엇인가?.
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
AT MEGA 128 기초와 응용 I 기본적인 구조.
Flow Diagram IV While.
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
Chapter 01 자바의 개요 자바는 최초 전자기기의 내장형 소프트웨어를 위해 개발되었으나, 최근 엔터프라이즈 응용에도 폭 넓게 활용됨 자바의 특징과 실행방법, 개발 환경 및 도구에 대해 소개.
Coding for Kids.
Chapter 10 데이터 검색1.
공학도를 위한 C언어 프로그래밍실습1 -통합개발환경 사용법-
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
발표자 : 이지연 Programming Systems Lab.
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
.Net FrameWork for Web2.0 한석수
왜 ‘프로그래밍’을 ‘비이공계 학생’이 알아야 하는가?
제 4 장 Record.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
1. 강의 소개 컴퓨팅적 사고와 문제해결.
7 생성자 함수.
6 객체.
Presentation transcript:

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

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

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

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

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

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

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

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

1.3 프로그래밍 언어의 발전

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

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

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

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

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

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

프로그래밍 절차

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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