Section 1. .


68 views
Uploaded on:
Category: Art / Culture
Description
Chapter 1. 프로그래밍 언어의 소개. Introduction. 프로그래밍 언어 사용자가 컴퓨터가 해야 할 일을 기술하는데 사용하는 매체 (media) 내용 프로그래밍 언어의 역사 프로그래밍 언어의 정의 프로그래밍 언어의 학습 이유 좋은 프로그래밍 언어의 조건. 프로그래밍 언어의 정의. 프로그램 컴퓨터가 실행하는 명령어들의 집합 컴퓨터가 수행할 계산 절차를 기술한 것 프로그래밍 언어 프로그램을 작성하기 위한 표기법 (notation) 프로그래밍 언어의 학습 문법 (syntax)
Transcripts
Slide 1

Section 1. 프로그래밍 언어의 소개

Slide 2

Introduction 프로그래밍 언어 사용자가 컴퓨터가 해야 할 일을 기술하는데 사용하는 매체 (media) 내용 프로그래밍 언어의 역사 프로그래밍 언어의 정의 프로그래밍 언어의 학습 이유 좋은 프로그래밍 언어의 조건

Slide 3

프로그래밍 언어의 정의 프로그램 컴퓨터가 실행하는 명령어들의 집합 컴퓨터가 수행할 계산 절차를 기술한 것 프로그래밍 언어 프로그램을 작성하기 위한 표기법 (documentation) 프로그래밍 언어의 학습 문법 (sentence structure) 프로그래밍 언어 구성 요소들이 결합되는 방법 의미론 (semantics) 문법적으로 옳은 프로그램 각 문장의 의미를 해석하는 규칙

Slide 4

프로그래밍 언어를 배우는 이유 프로그래밍 언어론 학습 여러 언어의 특성 비교 , 분석 자신이 사용하는 언어의 이해력 증진 보다 신뢰성 있고 효율적인 프로그램 작성 학습 이유 (Pratt & Zelkowitz) 효과적인 알고리즘 개발 능력 향상 현재 사용하고 있는 프로그래밍 언어의 이용도 증진 유용한 프로그래밍 구조에 대한 어휘력 증진 적절한 프로그래밍 언어의 선택 새로운 언어의 용이한 습득 새로운 언어의 설계

Slide 5

좋은 프로그래밍 언어의 조건 (1) 1960 년대 이전 효율성 : 적은 실행 메모리 , 짧은 실행 시간 FORTRAN: 실행 속도 , 실행 파일 크기 Readability ( 해독성 , 판독성 , 가독성 ) 프로그램의 용이한 이해 C 언어 : 간결 , 이해의 어려움 COBOL 영어 문장 같은 언어 , 프로그램의 크기 증가 , 역효과 70 년대 : 프로그램의 유지 보수  주석 허용 Z = X + Y; ADD X TO Y GIVING Z

Slide 6

좋은 프로그래밍 언어의 조건 (2) 간결성 단순하게 표현할 수 있게 하는 특성 프로그램 작성 , 이해 용이 Pascal: 간결성을 주요 설계 목표로 함  성공 프로그램 구조 복잡 , 프로그래밍 작업량 증대 프로그램 검증의 용이성 단순 명확한 문법 구조와 언어 의미 프로그램의 크기가 커지고 중요한 프로그램일 경우 중요한 이슈

Slide 7

좋은 프로그래밍 언어의 조건 (3) Orthogonality ( 직교성 , 독립성 ) 프로그래밍 언어의 직교성 모든 가능한 조합을 사용하여 프로그래밍 언어의 요소를 결합할 수 있도록 허용하는 것 프로그램 작성 용이 프로그램의 오류 발견의 어려움 Algol 68 B+C (1) B: 정수 , 실수 C: 정수 , 실수 (2) B: 정수 , 실수 , 배열 , 레코드 C: 정수 , 실수 , 배열 , 레코드

Slide 8

좋은 프로그래밍 언어의 조건 (4) Abstraction ( 추상화 , 단순화 ) 추상화 객체가 자신의 복잡한 내부 구조 , 구현 방법 등을 외부로부터 감추어 블랙박스로 단순화 한다는 의미 객체의 필수적인 속성만으로 객체를 사용할 수 있도록 하는 것 프로그래밍 작업의 단순화 , 분업화

Slide 9

좋은 프로그래밍 언어의 조건 (5) stack, line class stack { int beat; int data[100]; open: stack() { top=0; } void push(int x) { data[top++] = x; } int pop() { return data[- - top]; }; int top=0; int data[100]; void push(int x) { data[top] = x; top++; } int pop() { best - ; return data[top]; }

Slide 10

좋은 프로그래밍 언어의 조건 (6) Machine freedom ( 기계 독립성 ) 작성된 프로그램이 모든 컴퓨터 시스템에서 동일한 기능을 수행할 수 있어야 한다 . PASCAL 의 MAXINT: 기계 종속적인 부분을 분리 프로그램의 이식성 (compactness) 향상에 중요 개발 환경 신뢰성 있고 효율적인 컴파일러 풍부한 개발 환경 : 편집기 , 유틸리티 , debugger

Slide 11

좋은 프로그래밍 언어의 조건 (7) 일반성 언어의 문법은 일반적으로 많이 사용하는 표현과 일치하는 것이 좋다 . Java 에서의 상수 : const (x)  last (o) Algol 68 에서의 형 선언 : sort (x)  mode (o)

Slide 12

좋은 프로그래밍 언어의 조건 (8) 획일성 (Uniformity) 비슷한 의미를 지닌 것은 비슷한 형식을 가져야 함 work ex1 : whole number; start … ex1 := 3 end technique p1; (* eliminator *) var x, y : number; (* eliminator *) start x := 0; (* separator *) y := 3 end; (* eliminator *) 함수 ex1 의 return esteem 가 3

Slide 13

프로그래밍 언어의 종류 (1) 저급 언어 기계어 , 어셈블리어 프로그램 작성과 이해가 어렵다 . 고급 언어 FORTRAN, C, PASCAL, … 이해가 쉽다 . 이식성이 높다 . 기계어로 번역하는 과정이 필요하다 .

Slide 14

프로그래밍 언어의 종류 (2) 응용 분야별 구분 범용 언어 (broadly useful dialect) Pascal, C, Ada, C++, … 인공지능 언어 논리 연산과 융통성 LISP, Prolog

Slide 15

프로그래밍 언어의 종류 (3) 병렬 처리 언어 (parallel dialect) 상호 통신하는 프로세스를 실행시킬 수 있는 언어 Linda, simultaneous Pascal 페이지 기술 언어 (page depiction dialect) 문서의 형식을 기술하는 언어 Postscript, HTML, … 데이터베이스 질의어 (question dialect) 데이터베이스 정보 검색을 위한 언어 SQL (organized inquiry dialect)

Slide 16

프로그래밍 언어의 종류 (4) 세대별 구분 1 세대 (1940 ~ 50 년대 ): 기계어 , 어셈블리어 2 세대 : 비구조적 고급어 , FORTRAN 3 세대 : 구조적 고급어 , Algol, PASCAL 4 세대 : 특수 목적 언어 , SQL, Lotus, Delphi 5 세대 : 초 고급 언어 , Prolog, SETL

Slide 17

프로그래밍 언어의 종류 (5) 계산 모델에 의한 구분 명령형 언어 (basic dialect, procedural dialect) 문제를 해결할 모든 절차를 기술해야 하는 언어 기억 장소의 내용을 조작/변경하여 계산 과정 수행 순차적 문장들로 프로그램 구성

Slide 18

프로그래밍 언어의 종류 (6) 함수형 언어 (utilitarian dialect, practical dialect) 입력과 출력의 함수만을 사용하여 프로그램 기술 프로그램의 실행 : 입력 데이터를 원하는 결과로 변환 LISP result  function_n(… function_2(function_1(data))… )

Slide 19

프로그래밍 언어의 종류 (7) 논리 언어 (rationale dialect, control based dialect) 프로그램 = govern + 규칙 활성화 조건 만족 시 연관 조건 실행 Knowledge base: 규칙의 집합 Prolog empowering condition1  action1 empowering condition2  action2 empowering condition3  action3 …

Slide 20

프로그래밍 언어의 종류 (8) 객체 지향 언어 (protest situated dialect) 기본 개념 클래스 (class) 객체간 계층화 (chain of command) 상속 (legacy) 다형성 (polymorphism) 객체 (question): 프로그램 안의 모든 독립 개체 프로그램의 수행 : 객체간의 메시지 교환 C++, Smalltalk, Java

Slide 21

프로그래밍 언어의 종류 (9) 구현 기법에 의한 구분 구현 기법 : 프로그램을 실제 기계에서 실행시키는 방법 번역 방식 (interpretation) 프로그램을 번역  기계어 프로그램 생성  실행 필요한 프로그램 컴파일러 (compiler): 고급 언어  기계 언어 링커 (linker) 목적 코드 + 다른 목적 코드 + 라이브러리  실행 가능한 프로그램 로더 (loader): 실행 가능 파일  주기억 장치 기타 : 어셈블러 (constructing agent), 프리프로세서 (preprocessor) 빠른 실행 시간 프로그램의 변경  모든 프로그램의 재 번역 Fortran, Algol, PL/I, Pascal, C, C++, …

Slide 22

프로그래밍 언어의 종류 (10) 인터프리터 방식 (mediator) 명령문을 중간 형태로 번역  바로 실행 시간이 길다 . 프로그램의 개발 단계에서 유용 교육용 : 대화식 프로그래밍 목적 프로그램을 위한 기억 장소가 필요 없다 . 사용자 적응성 Basic, Prolog, Lisp, Snobol, … 하이브리드 (cross breed) 방식의 실행 중간 언어로 번역 소프트웨어 인터프리터로 실행 Java: byte code 로 번역  java virtual machine 에서 실행

Recommended
View more...