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

Slides:



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

멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
Copyright © 2006 The McGraw-Hill Companies, Inc. 프로그래밍 언어론 2nd edition Tucker and Noonan 5 장 타입 “ 타입은 컴퓨터 프로그래밍의 효소이다 ; 프로그래밍은 타입을 통해 소화할만한 것이 된다.” 로빈.
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 일반성, 직교성, 획일성
Chapter 3 – 프로그래밍 언어 설계 Outline 3.1 설계 기준의 역사적 변천 3.2 효율성
Internet Computing KUT Youn-Hee Han
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
알기 쉽게 해설한 Java 8th edition
Java Presentation 중간 시험2 풀이
제 7 장 문장 구조화 제어문 지정문 조건문 반복문 GOTO 문 비결정적문.
Chapter 10 – 추상 자료형 Outline 10.1 소개 10.2 Ada의 추상 자료형 10.3 C++의 추상 자료형
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. 객체와 클래스 (기본).
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
10장 객체-지향 프로그래밍 II ©창병모.
6장. printf와 scanf 함수에 대한 고찰
Part 08 함수 ©우균, 창병모 이 슬라이드는 부산대학교 우균이 작성하였습니다. 오류나 수정할 사항 있으면 연락 주세요.
제 1장 프로그래밍 언어 소개 1.1 프로그래밍 언어란 무엇인가 1.2 프로그래밍 언어를 배워야 하는 이유
프로그램 개발과 언어 Chapter 05 컴퓨터의 이해
Chapter 9 – 부 프로그램 Outline 9.1 개요 9.2 매개변수 평가와 전달기법 9.3 형식 매개변수 명세
장. 문법 구조(Syntax) 컴퓨터공학과 권기태 프로그래밍언어론.
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
프로그래밍 서울대학교 통계학과 2009년 2학기 컴퓨터의 개념 및 실습 (
DataScience Lab. 박사과정 김희찬 (월)
C ++ 프로그래밍 시작.
김 정 석 Web Programming 김 정 석
제 4주 2014년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
5장 이름, 바인딩, 영역(2) 순천향대학교 컴퓨터공학과 하상호.
제 10장 부 프로그램 10.1 개요 10.2 매개 변수 평가와 전달 기법 10.3 형식 매개 변수 명세
프로그램 식 조합 방법 <expr> ::= <constant> | <name>
프로그래밍 보고서 작성법 순천향대학교 컴퓨터공학과 하 상 호.
DataScience Lab. 박사과정 김희찬 (월)
자바의 신 Volume 1 1부(1~3장) 자바의 신 메인 홈 : 자바의 신 페이스북: 자바의 신 문제 풀이 :
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
제 6장 함수 Hello!! C 언어 강성호 김학배 최우영.
메소드와 클래스 정의 및 문제 풀이 Method and Class Define and Problem Solve
Formatted Input/Output
Introduction to Programming Language
컴퓨터공학실습(I) 3주 인공지능연구실.
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
Chap02 객체 지향 개념 2.1 객체지향(object-oriented)과 절차지향(procedural-oriented)
프로그래머를 위한 첫걸음 JDBC Lecture 001 BY MINIO
제 5장 변수, 바인딩, 식 및 제어문 5.1 변수 5.6 표현식 5.2 바인딩 5.7 조건문 5.3 선언 5.8 반복문
제 1 장. 자료구조와 알고리즘.
자바 5.0 프로그래밍.
Chapter 4 변수 및 바인딩.
3장. 클래스의 기본.
Chapter 02. 소프트웨어와 자료구조.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
9장 부프로그램(2) 순천향대학교 컴퓨터공학부 하 상 호.
Signature, Strong Typing
Signature, Strong Typing
3장,4장 발표 서정우.
Signature, Strong Typing
언어 언어 사람 사람 사람들간의 의사 소통을 위한 수단
Chapter 3 – 프로그래밍 언어 설계 Outline 3.1 설계 기준의 역사적 변천 3.2 효율성
Java 5장. 객체지향 개념 public class SumTest {
C.
C++ 언어의 특징
프로그래밍 기법 최적화 프로그래밍.
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++) { 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 = 2 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) 제어 추상화 : 알고리즘 추상화 (반복문, 조건문, 프로시저 호출) 추상화 정보량에 의한 분류 기본적 추상화 : 기계 정보 수집 구조화된 추상화 : 프로그램 구조에 대한 보다 전역적 정보 단위 추상화 : 단위 프로그램 전체에 대한 정보

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

구조화된 추상화 관련된 자료의 집합을 추상화(배열, 레코드) type person = record name : nwords; 프로그래밍 언어 소개 구조화된 추상화 관련된 자료의 집합을 추상화(배열, 레코드) 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 ;

구조화된 추상화 분할된 명령어 그룹 수행 단위 추상화 Procedure의 집합을 추상화 if x > y then 프로그래밍 언어 소개 구조화된 추상화 분할된 명령어 그룹 수행 if x > y then begin t := x; x := y; y := t; end 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))))

논리형언어(Logic Language) 프로그래밍 언어 소개 논리형언어(Logic Language) Declarative Language 기호 논리학 근거 예) 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 연산의 집합 예) 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);