제 1장 프로그래밍 언어 소개 1.1 프로그래밍 언어란 무엇인가 1.2 프로그래밍 언어를 배워야 하는 이유

Slides:



Advertisements
Similar presentations
Copyright © 2015 Pearson Education, Inc. 6 장 : 프로그래밍 언어.
Advertisements

Copyright © 2006 The McGraw-Hill Companies, Inc. 프로그래밍 언어론 2nd edition Tucker and Noonan 5 장 타입 “ 타입은 컴퓨터 프로그래밍의 효소이다 ; 프로그래밍은 타입을 통해 소화할만한 것이 된다.” 로빈.
천안천일고등학교 Copyright © by Ryu Bin All rights reserved 프로그래밍 실무.
Chapter 7 서브프로그램. Introduction 서브 프로그램의 명시 형식 인자전달 방법 ▫ Call by value ▫ Call by value result ▫ Call by reference ▫ Call by name 구현 방법 2.
제 4 장 변수, 영역, 수명 변수 바인딩 영역 기억장소 할당과 수명 변수와 그 환경 변수 초기화 상수와 변수.
8장 프로그래밍 언어 8.1 프로그램이란? 8.2 프로그램 언어의 역사 8.3 프로그램 설계 절차
Recursion SANGJI University KO Kwangman
C++ Espresso 제2장 제어문과 함수.
제 3장 프로그래밍 언어 설계 3.1 설계 기준의 역사적 변천 3.2 효율성 3.3 일반성, 직교성, 획일성
최윤정 Java 프로그래밍 클래스 상속 최윤정
Chapter 3 – 프로그래밍 언어 설계 Outline 3.1 설계 기준의 역사적 변천 3.2 효율성
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
알기 쉽게 해설한 Java 8th edition
제 4장 프로그래밍 언어의 구문과 구현 기법 4.1 언어 구문 4.2 프로그래밍 언어 구현 기법.
Chapter 1 – 프로그래밍 언어 소개 Outline 1.1 프로그래밍 언어란 무엇인가
제 7 장 문장 구조화 제어문 지정문 조건문 반복문 GOTO 문 비결정적문.
C 언어 강의 Windows, Unix 중심으로.
Chapter 10 – 추상 자료형 Outline 10.1 소개 10.2 Ada의 추상 자료형 10.3 C++의 추상 자료형
Chapter 11 – 추상 자료형 Outline 11.1 소개 11.2 Ada의 추상 자료형 11.3 C++의 추상 자료형
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
10장 예외 처리 프로그래밍 언어론 10.6 Pascal과 C의 에러 처리 10.1 설계 주제 10.2 PL/I의 예외 처리
제 6 장 데이터 타입 6.1 데이터 타입 및 타입 정보 6.2 타입의 용도 6.3 타입 구성자 6.4 사례 연구
프로그래밍 언어론 2004년 가을학기 창 병 모 숙명여대 컴퓨터과학과.
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
8. 객체와 클래스 (기본).
1장 기본적인 사항(3) 순천향대학교 컴퓨터공학과 하상호.
제9장 추상 데이터 타입 및 모듈 (Abstract Data Type & Module)
쉽게 풀어쓴 C언어 Express 제8장 함수 C Express Slide 1 (of 26)
제4장 블록 및 유효범위 Reading Chap. 5 © 숙대 창병모.
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
C++ Programming: Sample Programs
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
DataScience Lab. 박사과정 김희찬 (월)
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
정적 멤버 변수/정적 멤버 함수 - friend 함수/클래스 template
Lesson 7. 클래스와 메소드 - 1.
C#.
1장 기본적인 사항(3) 순천향대학교 컴퓨터공학과 하상호.
5장 이름, 바인딩, 영역(2) 순천향대학교 컴퓨터공학과 하상호.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
제 10장 부 프로그램 10.1 개요 10.2 매개 변수 평가와 전달 기법 10.3 형식 매개 변수 명세
DataScience Lab. 박사과정 김희찬 (월)
자바의 신 Volume 1 1부(1~3장) 자바의 신 메인 홈 : 자바의 신 페이스북: 자바의 신 문제 풀이 :
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
제 6장 함수 Hello!! C 언어 강성호 김학배 최우영.
Lesson 2. 기본 데이터형.
CHAPTER 04. 프로그래밍 언어 인간과 컴퓨터의 대화_진화하는 소통. 진화하는 컴퓨터
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
컴퓨터공학실습(I) 3주 인공지능연구실.
제 5장 변수, 바인딩, 식 및 제어문 5.1 변수 5.6 표현식 5.2 바인딩 5.7 조건문 5.3 선언 5.8 반복문
자바 5.0 프로그래밍.
제 1 장. 자료구조와 알고리즘.
자바 5.0 프로그래밍.
Chapter 4 변수 및 바인딩.
Chapter 02. 소프트웨어와 자료구조.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
Signature, Strong Typing
Signature, Strong Typing
Signature, Strong Typing
7주차: Functions and Arrays
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
Chapter 3 – 프로그래밍 언어 설계 Outline 3.1 설계 기준의 역사적 변천 3.2 효율성
발표자 : 이지연 Programming Systems Lab.
Static과 const 선언 조 병 규 한 국 교 통 대 학 교 SQ Lab..
.Net FrameWork for Web2.0 한석수
Chapter 1 – 프로그래밍 언어 소개 Outline 1.1 프로그래밍 언어란 무엇인가
C.
제 1장 프로그래밍 언어 소개 1.1 프로그래밍 언어란 무엇인가 1.2 프로그래밍 언어를 배워야 하는 이유
프로그래밍 기법 최적화 프로그래밍.
Presentation transcript:

제 1장 프로그래밍 언어 소개 1.1 프로그래밍 언어란 무엇인가 1.2 프로그래밍 언어를 배워야 하는 이유 1.3 프로그래밍 언어에서의 추상화 1.4 계산 전형

1.1 프로그래밍 언어란 무엇인가 프로그래밍 언어 정의 (1) 기계가 읽을 수 있고 사람이 읽을 수 있는 형식으로 프로그래밍 언어 소개 1.1 프로그래밍 언어란 무엇인가 프로그래밍 언어 정의 (1) 기계가 읽을 수 있고 사람이 읽을 수 있는 형식으로 계산을 기술하는 표현 체계 A notational system for describing computation in machine - readable and human - readable form

계산 처리과정을 컴퓨터가 해독할 수 있는 방법으로 표현하는 체계적인 표기법 프로그래밍 언어 소개 프로그래밍 언어 정의 (2) 계산 처리과정을 컴퓨터가 해독할 수 있는 방법으로 표현하는 체계적인 표기법 프로그래밍 언어 정의 (3) Any notation for the description of algorithms and data structures

1.2 프로그래밍 언어를 배워야 하는 이유 현재 사용하는 언어를 더욱 더 잘 이해하게 된다. 프로그래밍 언어 소개 1.2 프로그래밍 언어를 배워야 하는 이유 현재 사용하는 언어를 더욱 더 잘 이해하게 된다. 예) Recursion(재귀호출, 되부름) - 자기 자신을 부르는 루틴 효율적인 알고리즘 실행시간이 길다 FOTRAN, COBOL : 실행 안됨 (FOTRAN I, II, IV, 77) PASCAL, C : 실행 가능

Example 1.1 FORTRAN90 ! This is Recursive function in Fortran90 프로그래밍 언어 소개 Example 1.1 FORTRAN90 ! This is Recursive function in Fortran90 PROGRAM recursive_example INTEGER acc, fact fact = 10 acc = exp_(fact) CONTAINS RECURSIVE FUNCTION exp_(n) RESULT(result) INTEGER result, n IF(n.EQ.0) THEN result = 1 ELSE result = 2*exp_(n-1) PRINT *, " 2 ^", n, "=", result END IF END FUNCTION exp_ END PROGRAM recursive_example

Example 1.2 PASCAL PROGRAM POWERLIST(OUTPUT); VAR Y, Z:REAL; 프로그래밍 언어 소개 Example 1.2 PASCAL PROGRAM POWERLIST(OUTPUT); VAR Y, Z:REAL; K:INTEGER; FUNTION POWER(X:REAL; N:INTEGER):REAL; BEGIN WRITELN(‘ ‘:3,’POWERSIZE WITH N=‘,N:2); IF N=0; THEN POWER:=1.0 ELSE POWER:=X*POWER(X,N-1); WRITELN(‘ ‘:3,’END POWER OF N=‘, N:2) END (* OF FUNTION POWER *);

Example 1.2 PASCAL (continued) 프로그래밍 언어 소개 Example 1.2 PASCAL (continued) BEGIN (*MAIN PROGRAM *) Y:=2.0; K:=3; Z:=POWER(Y,K); WRITELN; WRITELN(Y:=4:1,’ RISED TO THE POWER’,K:1, ‘ EQUAL’, Z) END (* OF MAIN PROGRAM *);

Example 1.2 PASCAL (Result) 프로그래밍 언어 소개 Example 1.2 PASCAL (Result) POWERSIZE WITH N= 3 POWERSIZE WITH N= 2 POWERSIZE WITH N= 1 POWERSIZE WITH N= 0 END POWER OF N= 0 END POWER OF N= 1 END POWER OF N= 2 END POWER OF N= 3 2.0 RISED TO THE POWER 3 EQUAL 8.00000E+00

Example 1.3 C Result #include<stdio.h> main() { int m, k, c; 프로그래밍 언어 소개 Example 1.3 C #include<stdio.h> main() { int m, k, c; m = 2; for (k = 0; k <= 10; k++) if( k == 0 ){ c = 1; } else{ c = c * m; printf("%d ^ %d = %d\n", m, k, c); Result 2 ^ 0 = 1 2 ^ 1 = 2 2 ^ 2 = 4 2 ^ 3 = 8 2 ^ 4 = 16 2 ^ 5 = 32 2 ^ 6 = 64 2 ^ 7 = 128 2 ^ 8 = 256 2 ^ 9 = 512 2 ^ 10 = 1024

Example 1.3 C Result 2 ^ 0 = 1 2 ^ 1 = 2 2 ^ 2 = 4 2 ^ 3 = 8 프로그래밍 언어 소개 Example 1.3 C #include<stdio.h> main() { int m, k, c; m = 2; for (k = 0; k <= 10; k++) { c = power(m, k); printf("%d ^ %d = %d\n", m, k, c); } Power (x,y) int c = 1, square; if( k == 0 ){ c = 1; } else{ for( square = 0 ; square < k ; square++ ){ c = c * m; return c; Result 2 ^ 0 = 1 2 ^ 1 = 2 2 ^ 2 = 4 2 ^ 3 = 8 2 ^ 4 = 16 2 ^ 5 = 32 2 ^ 6 = 64 2 ^ 7 = 128 2 ^ 8 = 256 2 ^ 9 = 512 2 ^ 10 = 1024

Example 1.3 C Result ※ Recursion #include<stdio.h> main() { 프로그래밍 언어 소개 Example 1.3 C ※ Recursion #include<stdio.h> main() { int m, k, c; m = 2; for (k = 0; k <= 10; k++) { c = power(m, k); printf("%d ^ %d = %d\n", m, k, c); } power(x, y) int x, y; return((y == 0) ? 1 : x * power(x, y - 1)); Result 2 ^ 0 = 1 2 ^ 1 = 2 2 ^ 2 = 4 2 ^ 3 = 8 2 ^ 4 = 16 2 ^ 5 = 32 2 ^ 6 = 64 2 ^ 7 = 128 2 ^ 8 = 256 2 ^ 9 = 512 2 ^ 10 = 1024

#include<stdio.h> power(int, int); void main() { int m, k, c; m = 2; for (k = 0; k <= 10; k++) { c = power(m, k); printf("%d ^ %d = %d\n", m, k, c); } power(int x,int y) return((y == 0) ? 1 : x * power(x, y - 1)); #include<stdio.h> float power(int, int); void main() { int m, k; float c; m = 2; for (k = 0; k <= 10; k++) { c = power(m, k); printf("%d ^ %d = %.1f\n", m, k, c); } float power(int x,int y) return((y == 0) ? 1 : x * power(x, y - 1));

Example 1.4 C++ #include <iostream.h> class Recursion { public: int power (int x, int y); }; int Recursion::power(int x, int y) return ((y == 0) ? 1 : x * power(x, y-1)); } main (){ Recursion recur; int m, k, c; m = 2; for (k = 0; k <= 10; k++) c = recur.power(m, k); cout << m << "^" << k << " = " << c << '\n'; return 0;

Example 1.5 Java public class Recursion { public static void main (String args[]) { int m, k, c; m=2; for (k=0 ; k <= 10 ; k++) { c = power (m, k); System.out.println(" " + m + "^" + k + "=" + c); } public static int power ( int x, int y) { return (( y == 0) ? 1 : x * power (x, y-1));

유용한 프로그램을 구사할 수 있는 능력을 증대 시킨다. 프로그래밍 언어 소개 유용한 프로그램을 구사할 수 있는 능력을 증대 시킨다. 예) Coroutine 개념을 사용 프로그램 언어를 선택할 수 있는 능력을 증대 시킨다. 문자 처리 FORTRAN, COBOL 대신 SNOBOL4 예) X P : S(L1) F(L2)

예) Fortran ⇒ Pascal ⇒ C ⇒ C++ ⇒ Java 프로그래밍 언어 소개 새로운 프로그래밍 언어를 배우기 쉽게 해 준다. 예) Fortran ⇒ Pascal ⇒ C ⇒ C++ ⇒ Java 새로운 프로그래밍 언어를 설계하기 쉽게 해 준다. 예) JCL Query Language

1.3 프로그래밍 언어에서의 추상화 추상화(Abstraction)의 개념 프로그래밍 언어 소개 1.3 프로그래밍 언어에서의 추상화 추상화(Abstraction)의 개념 자신의 속성들의 일부분만을 가지고 주어진 작업이나 객체들을 필요한 정도로 묘사할 수 있는 방법을 지원 하는 것

자료 추상화 : 자료의 특성 추상화 (문자열, 수, tree) 제어 추상화 : 알고리즘 추상화 프로그래밍 언어 소개 범주 자료 추상화 : 자료의 특성 추상화 (문자열, 수, tree) 제어 추상화 : 알고리즘 추상화 (반복문, 조건문, 프로시저 호출) 추상화 정보량에 의한 분류 기본적 추상화 : 기계 정보 수집 구조화된 추상화 : 프로그램 구조에 대한 보다 전역적 정보 단위 추상화 : 단위 프로그램 전체에 대한 정보

자료 추상화 기본적 추상화 컴퓨터 내부 자료 표현 기억 장치의 장소 PASCAL var x : integer; 프로그래밍 언어 소개 자료 추상화 기본적 추상화 컴퓨터 내부 자료 표현 기억 장치의 장소 PASCAL var x : integer; var y : real; C 언어 int x; float y;

구조화된 추상화 관련된 자료의 집합을 추상화(배열, 레코드) PASCAL type person = record 프로그래밍 언어 소개 구조화된 추상화 관련된 자료의 집합을 추상화(배열, 레코드) PASCAL type person = record name : nwords; age : years; address : awords; telnumber : twords; salary : integer; end var X, Y : array[0..20] of real; employee : person

단위 추상화 자료 캡슐화, 추상화 프로그래밍 언어 소개 package BSTREE is type BSTREEPTR is private; type BSTREE is private; function HAS(I : ITEM, P:BSTREEPTR) return BOOLEAN; procedure INSERT(I : ITEM, in out P : BSTREEPTR); function EQUAL(P,Q:BSTREEPTR) return BOOLEAN; private type BSTREEPTR; type BSTREE is; record DATE : ITEM; LEFTCHILD : BSTREESPTR; LIGHTCHILD : BSTREEPTR; end record; type BSTREEPTR is access BSTREE; end;

프로그래밍 언어 소개 제어 추상화 기본적 추상화 기계어 명령어 모양, 이해하기 쉬운 추상 구문으로 만듬 x := x + y ;

구조화된 추상화 분할된 명령어 그룹 수행 Ada Java 단위 추상화 Procedure의 집합을 추상화 프로그래밍 언어 소개 구조화된 추상화 분할된 명령어 그룹 수행 Ada Java if x > y then begin t := x; x := y; y := t; end else x := x + y; if (x > y) { t = x; x = y; y = t; } else { x = x + y; 단위 추상화 Procedure의 집합을 추상화 Modula-2의 module, Ada의 package

1.4 계산 전형 명령형언어(Imperative Language) Procedure Language 명령 순서대로 시행 프로그래밍 언어 소개 1.4 계산 전형 명령형언어(Imperative Language) Procedure Language 명령 순서대로 시행

프로시저 추상화 부프로그램의 사용 PROCEDURE gcd ( u, v : INTERGER; VAR x : INTERGER); 프로그래밍 언어 소개 프로시저 추상화 부프로그램의 사용 PROCEDURE gcd ( u, v : INTERGER; VAR x : INTERGER); VAR y, t : INTEGER BEGIN x := u; y := v; LOOP IF y <= 0 THEN EXIT END t := y; y := x MOD y; x := t; END gcd

함수형언어(Functional Language) 프로그래밍 언어 소개 함수형언어(Functional Language) Application Language 함수의 평가 및 호출 방법 예) Modular-2 PROCEDURE gcd(u, v : INTEGER) : INTEGER; BEGIN IF v= 0 THEN RETURN u; ELSE RETURN gcd(v, u MOD v); END END gcd; 예) LISP (define (gcd u v) (if (= v 0) u(gcd v (remainder u v))))

함수형언어(Functional Language) 프로그래밍 언어 소개 함수형언어(Functional Language) 예) Java int gcd(int u, int v) { if(v==0) return u; else return gcd(v, u%v); }

논리형언어(Logic Language) 프로그래밍 언어 소개 논리형언어(Logic Language) Declarative Language 기호 논리학 근거 예) Prolog gcd(U, V, U) :- v = 0. gcd(U, V, X) :- v > 0, Y is U mod V, gcd(V, Y, X).

객체 지향 언어(Object Oriented Language) 프로그래밍 언어 소개 객체 지향 언어(Object Oriented Language) 객체(object) 기본 Object 연산의 집합 예) Java class GcdLcm { //클래스 GcdLcm 선언 public int gcd, lcm; int x, y; GcdLcm(int num1, int num2) { x = num1; y = num2; gcd = gcdf(x,y); } int gcdf(int a, int b) { if(b==0) return a; else return gcdf(b, a % b);