제 3장 프로그래밍 언어 설계 3.1 설계 기준의 역사적 변천 3.2 효율성 3.3 일반성, 직교성, 획일성

Slides:



Advertisements
Similar presentations
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 프로그래밍 언어론 2nd edition Tucker and Noonan 1 장 소 개 A good programming language is a.
Advertisements

Copyright © 2015 Pearson Education, Inc. 6 장 : 프로그래밍 언어.
내 마음의 버 스 이천신하교회 청년부. 이름 : 한상훈 나이 : 30 살 종교 : 기독교 ( 모태신앙 ) 생활신조 : 인생은 한방 ! 로또나 사자 이상형 : 청순 가련한 모태미녀 특이사항 : 걸그룹 노래에 환장함 식스팩을 갖기엔 슬픈 몸을 타고 남.
독서골든벨 2009 학년도 6 학년 1 학기 6-10 반. 1. 이야기 삼국유사 정대한 원효대사는 수행을 위해 떠나던 중 피곤하여 숲 속에서 잠이 들었다. 잠결에 너무 목이 마른 나머지 어디에 담겨있는 물을 맛있게 마셨나요 ?
두 손 들고 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 오직 주만이 나를 다스리네 오직 주만이 나를 다스리네 나 주님만을.
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
Copyright © 2006 The McGraw-Hill Companies, Inc. 프로그래밍 언어론 2nd edition Tucker and Noonan 5 장 타입 “ 타입은 컴퓨터 프로그래밍의 효소이다 ; 프로그래밍은 타입을 통해 소화할만한 것이 된다.” 로빈.
프로젝트 구성. 프로젝트 델파이 프로그램의 기본 단위 즉, 델파이로 만드는 프로그램을 구성하 는 모든 파일들의 집합 구성파일 확인 –View 메뉴 -> Project Manager 메뉴 – 프로젝트 파일 (DPR 확장자 ) – 폼 관련 파일 (FRM 확장자 ) – 소스.
Chapter 7 서브프로그램. Introduction 서브 프로그램의 명시 형식 인자전달 방법 ▫ Call by value ▫ Call by value result ▫ Call by reference ▫ Call by name 구현 방법 2.
지도교사 : 김은이 선생님 연현초등학교 5 학년 조인해 연현초등학교 5 학년 최지원 우리는 항상 먹기 싫은 쓴 약을 먹을 때 달콤한 주스 나 탄산음료와 함께 마시면 쓴 약을 쉽게 먹을 수 있 을 텐데, 사람들은 감기약, 두통약, 영양제등과 같은 알약을 먹을 때 너무나.
지금은 기도 하는 시간입니다 1. 송구영신예배를 위해서 2. ‘크리스마스 이브’ 행사를 준비하는 교육 기관을 위하여
장. 프로그래밍 언어의 이해 컴퓨터공학과 권기태 프로그래밍언어론프로그래밍 언어.
팀명 : 정효가현팀 팀원 : 김효진, 이가현, 이정민
제 4 장 변수, 영역, 수명 변수 바인딩 영역 기억장소 할당과 수명 변수와 그 환경 변수 초기화 상수와 변수.
8장 프로그래밍 언어 8.1 프로그램이란? 8.2 프로그램 언어의 역사 8.3 프로그램 설계 절차
비뇨계통.
현대사회의 여성문제와 여성복지 3조 권경욱 강향원 황대인 변갑수 박창욱 김지현.
9장 부프로그램(2) 순천향대학교 컴퓨터공학부 하 상 호.
Chapter 3 – 프로그래밍 언어 설계 Outline 3.1 설계 기준의 역사적 변천 3.2 효율성
고교평준화의 득과 실 김영주 이지영 최윤영.
제 7 장 문장 구조화 제어문 지정문 조건문 반복문 GOTO 문 비결정적문.
제 2장 언어의 변천 2.1 디지털 컴퓨터 이전의 언어 년대 : 최초의 프로그래밍 언어
10장 예외 처리 프로그래밍 언어론 10.6 Pascal과 C의 에러 처리 10.1 설계 주제 10.2 PL/I의 예외 처리
제 6 장 데이터 타입 6.1 데이터 타입 및 타입 정보 6.2 타입의 용도 6.3 타입 구성자 6.4 사례 연구
제7장 제어구조 I – 식과 문장.
제 5 장 자 료 형 기본 데이터 형 포인터 형 배열 데이터 형 스트링 집합 형 레코드 공용체 형 형 시스템.
제4장 블록 및 유효범위 Reading Chap. 5 © 숙대 창병모.
Chapter 6 – 변수, 바인딩, 식 및 제어문 Outline 6.1 변수 6.2 바인딩 6.3 선언 6.4 배정문
제 1장 프로그래밍 언어 소개 1.1 프로그래밍 언어란 무엇인가 1.2 프로그래밍 언어를 배워야 하는 이유
출처: IT CookBook, 컴퓨터 구조와 원리 2.0 제 12장
Chapter 9 – 부 프로그램 Outline 9.1 개요 9.2 매개변수 평가와 전달기법 9.3 형식 매개변수 명세
장. 문법 구조(Syntax) 컴퓨터공학과 권기태 프로그래밍언어론.
9. 중간언어 9-1. Polish표기법 9-2. N-투플 표기법 9-3. 트리 구조 코드 9-4. 추상 기계 코드
멀티미디어시스템 멀티미디어 정보화 사회 IT응용시스템공학과 김 형 진 교수.
2010년 직원연수 자료 제1차 : 4월 16일 ~ 17일 제2차 : 4월 23일 ~ 24일
제 1장 시스템 소프트웨어의 개요.
10장. 중앙처리 장치의 명령어 다루는 내용 어셈블리 프로그램의 이해 인터럽트(interrupt) 명령어 세트 주소 지정 방식.
제1장 시스템 소프트웨어의 개요 컴퓨터시스템 및 하드웨어 구성 컴퓨터의 구성과 기능 시스템프로그램의 개요
Lecture 01: Compiler Overview
Chapter 2 – 언어의 변천 Outline 2.1 디지털 컴퓨터 이전의 언어
5장 이름, 바인딩, 영역(2) 순천향대학교 컴퓨터공학과 하상호.
제 10장 부 프로그램 10.1 개요 10.2 매개 변수 평가와 전달 기법 10.3 형식 매개 변수 명세
6장 데이터 타입(2) 순천향대학교 컴퓨터공학부 하 상 호.
(신)비취가인천비방진연3종기획1 182,000 ▶ 91,000 (신)비취가인 천비방 진연수
소금물과 물의 부력 차이 실험 작성자 - 백민준.
6장 데이터 타입(2) 순천향대학교 컴퓨터공학부 하 상 호.
6장 데이터 타입(3) 순천향대학교 컴퓨터공학부 하 상 호.
프로그래밍언어론 2nd edition Tucker and Noonan
제 5장 변수, 바인딩, 식 및 제어문 5.1 변수 5.6 표현식 5.2 바인딩 5.7 조건문 5.3 선언 5.8 반복문
사과는 왜 갈변 할까? 조장: 31017유수빈 조원:31024이지은.
운영체제 발표자료 B반 최민웅.
Chapter 4 변수 및 바인딩.
소방시설 자동산정 프로그램.
9장 부프로그램(2) 순천향대학교 컴퓨터공학부 하 상 호.
Signature, Strong Typing
Signature, Strong Typing
1장 기본적인 사항 순천향대학교 컴퓨터공학부 하 상 호.
Chapter 13 – 객체 지향 프로그래밍 Outline 13.1 소프트웨어의 재사용과 독립성
과학 1 학년 2 학기 생명> 04.태아의 발생 과정은 어떻게 진행될까?[ 4 / 6 ] 수정과 착상 수업계획 수업활동.
Signature, Strong Typing
<2013 과학탐구 보고서> 우유와 발효유가 일정온도에서 만나면?
언어 언어 사람 사람 사람들간의 의사 소통을 위한 수단
세일즈의 원칙과 기술.
Chapter 3 – 프로그래밍 언어 설계 Outline 3.1 설계 기준의 역사적 변천 3.2 효율성
P 보일의 법칙 - 생각열기 – 기포가 수면으로 올라가면 크기는 어떻게 될까?
Ⅱ. 물질의 특성 물질의 끓는점.
시민이 체감하는 편리한 건축인허가 절차 개선 추진.
운영체제 학 번 : 이름 : 변현영.
나-는 믿음으로 주 얼굴 보리니- 아침에 깰 때에 주형상에 만족하리 나주님 닮기 원하네 믿음으로 주얼굴 보리라 -
제 1장 프로그래밍 언어 소개 1.1 프로그래밍 언어란 무엇인가 1.2 프로그래밍 언어를 배워야 하는 이유
Presentation transcript:

제 3장 프로그래밍 언어 설계 3.1 설계 기준의 역사적 변천 3.2 효율성 3.3 일반성, 직교성, 획일성 3.4 프로그래밍 언어의 기타 설계 원칙 3.5 문제점과 해결책들

주요 언어 설계 목적 FORTRAN 실행의 효율성 COBOL 프로그램 판독성(영어 비슷) ALGOL 60 프로그래밍 언어 설계 주요 언어 설계 목적 FORTRAN 실행의 효율성 COBOL 프로그램 판독성(영어 비슷) ALGOL 60 블록 구조 : 알고리즘 작성 PASCAL 간단 명료 : 하향식 설계 증진

3.1 설계 기준의 역사적 변천 1950년대 실행의 효율성 중시 : FORTRAN 점차로 일반적 원칙 중시 프로그래밍 언어 설계 3.1 설계 기준의 역사적 변천 1950년대 실행의 효율성 중시 : FORTRAN 점차로 일반적 원칙 중시 ALGOL 60 : 블럭구조, 재귀적 용법 제공 COBOL : 프로그램 판독성 증가

1960년대 프로그램 복잡 증대 복잡성 제어 인식 추상화 기법 : 언어 규칙 제한 감소 필요성 프로그래밍 언어 설계 1960년대 프로그램 복잡 증대 복잡성 제어 인식 추상화 기법 : 언어 규칙 제한 감소 필요성 Simular 67 : 추상화 기법 제공 ALGOL 68 : 일반성, 직교성 제공

1970∼80년대 간결성, 추상화 강조 PASCAL, C, Modula-2, Ada 수학적 정의 도입 신뢰성 증진 1980년대 프로그래밍 언어 설계 1970∼80년대 간결성, 추상화 강조 PASCAL, C, Modula-2, Ada 수학적 정의 도입 신뢰성 증진 1980년대 논리 수학 개념 삽입 증진 함수형 언어 관심 증대 ML Scheme 객체 지향 언어 관심 증대 C++

언어 설계의 기본 원칙 효율성 (efficiency) 일반성 (generality) 직교성 (orthogonality) 프로그래밍 언어 설계 언어 설계의 기본 원칙 효율성 (efficiency) 일반성 (generality) 직교성 (orthogonality) 획일성 (uniformity)

3.2 효율성 효율성의 기준에 따른 분류 목적 코드에 따른 분류 번역기의 효율적 실행 코드 생성 최적화 프로그래밍 언어 설계 3.2 효율성 효율성의 기준에 따른 분류 목적 코드에 따른 분류 번역기의 효율적 실행 코드 생성 최적화 정적 자료형 변수 : 효율적 코드 생성 PASCAL의 상수 식별자 사용

번역의 효율성 원시 코드의 효율적으로 번역 알맞은 크기의 번역기로 빠르게 번역 언어 번역의 단계 구성 문제 프로그래밍 언어 설계 번역의 효율성 원시 코드의 효율적으로 번역 알맞은 크기의 번역기로 빠르게 번역 언어 번역의 단계 구성 문제 PASCAL : 단일 패스 Modula-2 : 2 패스 구현성 번역기의 효율적 구현 문제 번역기 작성의 어려움 언어실패요인 (ALGOL 60) 번역 수행 알고리즘 이해 부족

프로그래밍의 효율성 프로그램 작성의 단순성, 용이성 문제 언어의 표현성, 추상화 관련 이상적 언어 LISP PROLOG 프로그래밍 언어 설계 프로그래밍의 효율성 프로그램 작성의 단순성, 용이성 문제 언어의 표현성, 추상화 관련 이상적 언어 LISP PROLOG

3.3 일반성, 직교성, 획일성 일반성 여러 개념들을 일반적으로 하나의 개념을 통합하여 얻는 성질 일반성이 부족한 예 프로그래밍 언어 설계 3.3 일반성, 직교성, 획일성 일반성 여러 개념들을 일반적으로 하나의 개념을 통합하여 얻는 성질 일반성이 부족한 예 PASCAL : 가변 배열 불허 FORTRAN : call by reference만 허용 FORTRAN : 상수 이름 부재

C언어의 pointer : 일반성 -> 문제점 제기 PASCAL : pointer 제한 사용 프로그래밍 언어 설계 일반성의 문제점 언어의 간결성 저하 언어의 판독성 저하 언어의 신뢰성 저하 C언어의 pointer : 일반성 -> 문제점 제기 PASCAL : pointer 제한 사용

call by value-result 허용 프로그래밍 언어 설계 직교성 수학 개념 : 직각 또는 완전히 독립적인 방향 각각 의미 가진 채 결합하는 성질 Ada : 모든 자료형 (직교성 보장) call by value call by result call by value-result 허용 ALGOL 68 주요 설계 쟁점

획일성 언어 구조 외모와 행동 조화 중점 유사한 것은 유사하게 상이한 것은 서로 다르게 행동하는 성질 프로그래밍 언어 설계 획일성 언어 구조 외모와 행동 조화 중점 유사한 것은 유사하게 상이한 것은 서로 다르게 행동하는 성질 PASCAL 비 획일성 (; 사용) Procedure p ; (* teminator *) var x : integer ; (* separator *) y : real ; (* teminator *) begin x := 0 ; (* separator *) y := 1.0 end ; (* terminator *)

3.4 프로그래밍 언어의 기타 설계 원칙 간결성 (Simplicity) PASCAL : 간결성 프로그래밍 언어 설계 3.4 프로그래밍 언어의 기타 설계 원칙 간결성 (Simplicity) PASCAL : 간결성 구성자의 수와 비례 안함 : LISP, PROLOG 과다한 단순성도 문제

표현력 (Expressiveness) 복잡한 과정이나 구조 표현의 용이함 되부름 프로그램 프로그래밍 언어 설계 표현력 (Expressiveness) 복잡한 과정이나 구조 표현의 용이함 되부름 프로그램 표현력이 강하면서도 단순한 언어 : C 언어 while (incr < 20) { while (sum <= 100) { sum += incr; } loop1 : if (incr >= 20) goto out : loop2: if (sum > 100) goto next : sum + = incr; goto loop2; next : incr++; goto loop1 : out : 정확성 (Preciseness) 언어에 대한 정확한 정의 언어의 신뢰도, 번역기의 신뢰도 영향

기계독립성 (machine independence) 프로그래밍 언어 설계 기계독립성 (machine independence) 호환성 제공 기계 구조와 별개의 자료형 사용 안전성(security) 오류발생을 줄이고 발견 용이한 언어 목표 언어 설계시 자료형, 형 검사, 변수 선언 도입

기존 표기나 관습과의 일치성 표준화된 특성, 개념 일치 언어의 간결성 저하 확장성 (Extensibility) 프로그래밍 언어 설계 기존 표기나 관습과의 일치성 표준화된 특성, 개념 일치 언어의 간결성 저하 확장성 (Extensibility) 새로운 특징 첨가 의미 추상화 개념 : 확장성 지원

제약성 (Restrictability), 부분성 (Subset) 프로그래밍 언어 설계 제약성 (Restrictability), 부분성 (Subset) 언어의 일부 지식으로 효과적 프로그램 작성 언어의 부분 선택 구현 작성 SP/1, SP/2 … SP/k : PL/I의 부분 언어

3.5 문제점과 해결책들 성공적인 언어 설계를 위한 제언 신뢰성 : 집단 컴파일러 사용 프로그래밍 언어 설계 3.5 문제점과 해결책들 성공적인 언어 설계를 위한 제언 신뢰성 : 집단 컴파일러 사용 효율적인 번역 : 분리, 통합 컴파일 사용 코드 최적화 적절한 간결성