Presentation is loading. Please wait.

Presentation is loading. Please wait.

컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부.

Similar presentations


Presentation on theme: "컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부."— Presentation transcript:

1 컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부

2 Chapter 6. 프로그래밍 언어

3 학습목표 프로그래밍 언어 개념에 대해 살펴본다. 프로그래밍 언어의 구문을 정의하는 대표적인 표기법인 BNF에 대해 살펴본다. 변수의 개념과 영역의 개념에 대해 살펴본다. 다양한 자료형에 대해 살펴본다. 실행 순서에 변화를 가져오는 조건문과 반복문에 대해 살펴본다. 하나의 단위로 만들어진 기능인 부프로그램에 대해 살펴본다.

4 프로그래밍 언어 기계어 어셈블리어 Section 1: 프로그래밍 언어의 개요
컴퓨터에서 일을 수행하기 위한 명령문의 집합인 프로그램을 작성하기 위해 사용하는 기호 체계 저급 언어(low level language)와 고급 언어(high level language)로 분류 기계어 컴퓨터가 직접 이해할 수 있는 유일한 언어 효율성은 높지만 언어 자체가 복잡하고 어려움 컴퓨터의 종류에 따라 다르며, 컴퓨터에 의존적인 경향을 띄어 표준이 없음 어셈블리어 어려운 기계어의 명령들을 쉬운 기호로 나타낸 것 모든 컴퓨터들의 어셈블리어는 같지 않음 기계어에 비해 프로그램을 작성하기가 쉽고, 고급언어와는 달리 하드웨어에 직접적인 접근을 하기 때문에 수행 속도가 빠른 장점

5 어셈블리어 고급언어 Section 1: 프로그래밍 언어의 개요
컴파일러 : 고급언어로 작성된 프로그램을 컴퓨터는 직접 이해할 수 없으므로 기계어 프로그램으로 번역하는 소프트웨어

6 Section 2: 프로그래밍 언어의 구문 정의
BNF(Backus-Naur Form) 프로그래밍 언어의 구문을 기술하기 위하여 가장 일반적으로 사용되는 표기법 1960년 ALGOL 60이란 언어의 구문을 정의할 때 최초로 사용 BNF는 생성 규칙들의 집합으로 구성되는데, 생성 규칙은 다음과 같은 형태 ‘|’ 기호 : 선택적인 구조

7 Section 2: 프로그래밍 언어의 구문 정의
[예] 첫 자가 영문자로 시작하고, 두 번째 문자부터 영문자나 숫자로 이루어진 식별자 비단말(nonterminal) 기호 : <식별자>, <영문자>와 같이 ‘< >’로 묶인 기호 단말(terminal) 기호 : A, B, 0, 1과 같이 프로그램에 직접 나타날 수 있는 기호

8 Section 2: 프로그래밍 언어의 구문 정의
BNF 예 ‘AA2’라는 식별자가 문법에 맞는지 살펴보자.

9 Section 2: 프로그래밍 언어의 구문 정의
BNF 예 파스 트리(parse tree) : 유도 과정을 트리로 나타낸 것

10 Section 2: 프로그래밍 언어의 구문 정의
[예 2] 배정문

11 Section 2: 프로그래밍 언어의 구문 정의
[예 2] 배정문 ‘AA = B - 20’이라는 배정문이 문법에 맞는지 살펴보자. 주어진 규칙을 이용해서 ‘AA = B - 20’이 유도되므로 문법에 맞는 배정

12 Section 2: 프로그래밍 언어의 구문 정의
BNF 예(2) 파스 트리

13 변수 Section 3: 변수와 영역 다음과 같은 속성들이 모여서 변수의 개념이 형성 선언문에 의해 변수를 선언
① 변수 이름 : 여기서는 x가 된다. 변수의 이름은 약간의 규칙이 있지만 프로그래머가 임의로 정할 수 있다. ② 변수형 : 변수가 가질 수 있는 값들의 자료형으로, 변수 x는 정수형이 된다. ③ 변수 주소 : 변수가 위치하고 있는 메모리 주소인데, 다음은 변수 x가 메모리 주소 0x1000~0x1003에 위치함을 의미한다.

14 영역 정적 영역 규칙 Section 3: 변수와 영역 그 이름의 사용이 허락되고 있는 프로그램 범위
④ 변수 값 : 배정문에 의해 부여되는데, 'x=10;'은 변수 x에 10을 저장하는 C 언어 배정문이다. 이런 변수의 값은 그 변수가 위치하고 있는 메모리 영역에 저장된 내용을 말하는 것으로, 변수 x의 값은 10이 된다. ⑤ 변수 영역 : 앞으로 살펴보자. 영역 그 이름의 사용이 허락되고 있는 프로그램 범위 정적 영역 규칙 ALGOL 60에서 도입, 현재 대부분의 언어에서 사용 이름에 해당하는 변수를 찾을 때 외향적인 구조에 따라 동작하는데, 자신을 포함하고 있는 블록에서 선언되었는지 살펴보고 아니면 그 바깥쪽 블록에서 선언되었는지를 조사

15 Section 3: 변수와 영역 정적 영역 규칙

16 정적 영역 규칙 Section 3: 변수와 영역 앞 프로그램 실행 순서
① 우선 02행에서 a와 b를 선언하고, 14행에서 a에 0을, b에 1을 저장한다. 그리고 15행에서 func를 호출한다. ② func를 호출하면 07~12행이 실행된다. 먼저 08행에서 변수 a와 b를 선언하는데, 02행의 변수 a, b와는 이름은 같지만 전혀 다른 변수다. 그리고 10행에서 a에 2를, b에 3을 저장하고, 11행에서 print를 호출한다. ③ print를 호출하면 03~06행을 실행하여 05행에서 a와 b의 값을 출력한다. 이때 어떤 값이 출력되는지는 영역 규칙에 따라 달라지는데, 정적 영역 규칙을 적용한 경우에 어떤 값이 출력되는지 알아보자. 우선 05행의 a와 b를 포함하고 있는 블록(03~06행)에서 a와 b를 선언하고 있는지 살펴보았는데, 선언된 부분이 없다. 그러므로 그 바깥쪽 블록(01~16행)에서 a와 b를 선언하고 있는지 살펴보았는데, 02행에서 선언하고 있는 것을 볼 수 있다. 이 블록의 14행에서 a에 0을, b에 1을 저장했으므로 0과 1이 출력된다.

17 동적 영역 규칙 앞의 프로그램을 이용한 설명 Section 3: 변수와 영역
APL, SNOBOL 4 그리고 LISP 초기 버전에서 적용된 방식 이름에 해당하는 변수를 찾을 때 외향적인 구조에 기반하지 않고, 부프로그램들의 호출 순서에 기반 먼저 자신을 포함하고 있는 블록에서 선언되었는지를 보고 아니면 자신을 포함한 블록(부프로그램)을 호출한 문장을 포함하고 있는 블록에서 선언된 것인지를 조사 앞의 프로그램을 이용한 설명 05행을 포함한 블록(03~06행)에서 a와 b를 선언하고 있는지를 살펴보는데, 선언된 부분이 없다. 그러면 이 블록(print)을 호출한 문장(11행)을 포함하고 있는 블록(07~12행)에서 a와 b를 선언하고 있는지를 살펴보는데, 08행에서 선언하고 있는 것을 볼 수 있다. 이 블록의 10행에서 a에 2를, b에 3을 저장했으므로 2와 3이 출력된다.

18 12는 정수형이고, 3.456은 부동소수점형 변수의 형은 선언문에서 결정 Section 4: 자료형
자료형이란 저장할 수 있는 값의 집합뿐만이 아니라 수행할 수 있는 연산의 집합까지 포함하는 의미를 지님 자료형은 기본 자료형, 구조적 자료형 그리고 포인터 자료형 등으로 구분할 수 있는데, 여기에서는 기본 자료형과 구조적 자료형에 대해 살펴본다.

19 기본 자료형 Section 4: 자료형 수치형 정수형
int형이 short int형보다는 크기가 크거나 같고, long int형이 int형보다는 크기가 크거나 같다. 부동소수점형 : 실수를 표현하는 방식

20 문자열형 Section 4: 자료형 PL/Ⅰ : 문자열을 값으로 가질 수 있는 변수를 선언할 수 있는 최초의 언어
 길이가 10인 문자열 변수 A를 선언 문자열과 관련된 연산 |는 문자열과 문자열을 연결 LENGTH(A)는 문자열 A의 길이를 반환 SUBSTR(A, I, J)는 문자열 A의 I번째 문자로 시작해서 J개의 문자열을 추출 INDEX(A, B)는 문자열 A에서 문자열 B의 위치를 찾음 VERIFY(A, B)는 문자열 A에서 문자열 B에 속하지 않는 첫 번째 문자의 위치를 찾음 TRANSLATE(A, B, C)는 문자열 A에서 C에 있는 문자들을 B에 있는 문자들로 교체

21 여러 자료를 묶어서 하나의 단위로 처리하는 자료형
Section 4: 자료형 구조적 자료형 여러 자료를 묶어서 하나의 단위로 처리하는 자료형 배열은 집합체에서의 위치로 원소를 식별하는 동질형 자료의 모임, 레코드는 이름으로 원소를 식별하는 이질형 자료의 모임 배열 이름, 배열의 차원, 배열 원소의 형, 첨자 범위 등으로 특징 FORTRAN, Ada에서는 이름이 A이고 크기가 2×3인 2차원 배열을 다음과 같이 소괄호를 이용해서 나타냄 ALGOL 60, Pascal 등 대부분의 언어는 다음과 같이 대괄호를 이용해서 나타냄 이름이 A, 크기가 5 그리고 원소의 형이 정수형인 1차원 배열을 선언(C 언어)

22 레코드 Section 4: 자료형 이질형 자료의 모임 1960년대 초기에 COBOL에서 도입
C 언어의 구조체(structure) 정의된 구조체인 struct student형의 변수 선언 필드에 접근

23 조건문 양자택일문과 다자택일문 Section 5: 조건문과 반복문
조건문은 조건에 따라 둘 또는 그 이상의 실행 경로 중에서 하나를 선택할 수 있는 수단을 제공 양자택일문과 다자택일문 양자택일문 양자택일문을 처음 도입한 언어 : ALGOL 60

24 양자택일문 Section 5: 조건문과 반복문 C 언어의 if-else 구조
만약 참이거나 거짓인 경우에 실행되어야 하는 문장이 여러 개인 경우 if-else 구조에서 다음과 같은 경우에 else가 첫 번째 if와 연결되는 것인지 두번째 if와 연결되는 것인지 해석이 어려운 경우가 발생 가장 가까이 있는 if와 연결되므로 두번째 if와 연결되는 것이다. 만약 첫번째 if와 연결을 시키려면 중괄호를 이용

25 Section 5: 조건문과 반복문 양자택일문 else-if 구조

26 Section 5: 조건문과 반복문 다자택일문 ALGOL-W의 case 문이 처음 도입된 다자택일문 C 언어는 switch 문

27 반복문 Section 5: 조건문과 반복문 특정 부분을 반복해서 실행하는 구조 FORTRAN의 DO 문

28 Section 5: 조건문과 반복문 반복문 while 문 만약 반복하고자 하는 문장이 여러 개인 경우

29 Section 5: 조건문과 반복문 반복문 do-while 문 다음과 같이 중괄호로 묶는 것이 바람직

30 반복문 Section 5: 조건문과 반복문 for 문
초기식, 조건식, 변환식 등 수식은 생략해도 되지만 수식을 생략할 경우라도 세미콜론(;)은 생략이 불가능 초기식을 생략할 경우

31 기능A를 하나의 단위로 만든 프로그램 구조 : 부프로그램
Section 6: 부프로그램 기능A를 여러 번 실행하는 프로그램 구조 기능A를 하나의 단위로 만든 프로그램 구조 : 부프로그램

32 Section 6: 부프로그램 부프로그램 부프로그램A를 ‘부프로그램 정의’ 부분이라 하고, 부프로그램이 실행되도록 명령하는 문장을 ‘부프로그램 호출’이라 함 부프로그램이 있는 프로그램의 실행 순서

33 부프로그램의 종류 Section 6: 부프로그램 서브루틴(subroutine)과 함수(function)로 구분
함수가 있는 프로그램의 동작

34 매개변수 Section 6: 부프로그램 매개변수를 이용하면 실행될 부프로그램에게 값을 전달할 수 있음 부프로그램의 형식
호출 형식 C 언어에서 function이라는 함수를 정의하는 예 함수를 호출

35 부프로그램 Section 6: 부프로그램 매개변수 전달 방식 (C 언어) 값에 의한 전달
실 매개변수의 값을 형식 매개변수에 저장해서 동작하는 방식

36 Section 6: 부프로그램 부프로그램 주소에 의한 전달 실 매개변수의 주소를 형식 매개변수에 저장해서 동작하는 방식

37 Thank you


Download ppt "컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부."

Similar presentations


Ads by Google