<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>



Similar documents
Microsoft PowerPoint - chap03-변수와데이터형.pptx

슬라이드 1

제4장 기본 의미구조 (Basic Semantics)

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap06-5 [호환 모드]

PowerPoint Presentation

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - ch07 - 포인터 pm0415

설계란 무엇인가?

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - chap06-2pointer.ppt

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

Microsoft PowerPoint - chap01-C언어개요.pptx

설계란 무엇인가?

Microsoft PowerPoint - e pptx

슬라이드 1


OCW_C언어 기초

PowerPoint Presentation

1

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Microsoft PowerPoint - C++ 5 .pptx

<C6F7C6AEB6F5B1B3C0E72E687770>

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap12-고급기능.pptx

목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2

11장 포인터

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

Microsoft PowerPoint - additional08.ppt [호환 모드]

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 08.다형성

C언어 및 실습 C Language and Practice

KNK_C_05_Pointers_Arrays_structures_summary_v02

chap x: G입력

Microsoft PowerPoint - chap-11.pptx

PowerPoint Template

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

Microsoft PowerPoint - PL_03-04.pptx

PowerPoint Presentation

untitled

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

PowerPoint Presentation

PowerPoint 프레젠테이션

슬라이드 1

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

C# Programming Guide - Types

PowerPoint Presentation

Microsoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt

<C7C1B7CEB1D7B7A1B9D6BEF0BEEE2E687770>

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

PowerPoint 프레젠테이션

PowerPoint Presentation

OCW_C언어 기초

Microsoft PowerPoint Predicates and Quantifiers.ppt

윤성우의 열혈 TCP/IP 소켓 프로그래밍

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

11장 포인터

Microsoft PowerPoint 세션.ppt

Microsoft PowerPoint - chap-09.pptx

JVM 메모리구조

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

자료형 크기 값의범위 접미문자 Byte형 1바이트 0~255까지 없음 Boolean형 2바이트 True, False 없음 Integer형 2바이트 ~ 32767까지 % Long형 4바이트 -2,147,483,648 ~ 2,147,483,648까지 & Sin

No Title

UI TASK & KEY EVENT

슬라이드 1

15강 판소리계 소설 심청전 다음 글을 읽고 물음에 답하시오. [1106월 평가원] 1)심청이 수궁에 머물 적에 옥황상제의 명이니 거행이 오죽 하랴. 2) 사해 용왕이 다 각기 시녀를 보내어 아침저녁으로 문 안하고, 번갈아 당번을 서서 문안하고 호위하며, 금수능라 비

예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 2

Microsoft PowerPoint - Chapter_04.pptx

설계란 무엇인가?

Chapter ...

C++ Programming

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp

4장.문장

Lab 3. 실습문제 (Single linked list)_해답.hwp

9장.예외와 단정

내지4월최종

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

부벽루 이색 핵심정리+핵심문제.hwp

OCW_C언어 기초

Frama-C/JESSIS 사용법 소개

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

Data Structure

statistics

슬라이드 1

Microsoft PowerPoint - Chapter 6.ppt

Transcription:

예약어(reserved word) : 프로그래밍 언어에서 특별한 용도로 사용하고자 미리 지정한 단어 - 프로그램의 구성요소를 구별하게 해주는 역할 => 라벨, 서브 프로그램 이름, 변수에 연관되어 다른 변수나 서브 프로그램 등과 구별 - 식별자의 최대길이는 언어마다 각각 다르며 허용길이를 넘어서면 나머지 문자열은 무시됨 - FORTRAN, COBOL, HTML 등의 언어는 대소문자를 구별하지 않음 - C 및 C++는 대소문자 구별 - FORTRAN의 경우는 예외로써 예약어를 변수로 사용 가능 - 예약어 사용의 장점 1 프로그램의 가독성을 향상 컴파일러가 구문분석을 보다 빠르고 정확하게 처리 - 예약어 사용의 단점 1 프로그래머는 모든 예약어를 숙지하여, 변수 선언 시에 예약어를 제외하여야 함 예약어 추가시 기존 프로그램에서 사용하였던 변수 중 예약어와 중복된 변수 수정 필요 - 설계 특징 1 식별자 최대길이는 몇 글자인가? 사용할 수 있는 문자의 집합은 무엇인가? 3 대소문자를 구분하는가? 4 키워드를 식별자로 사용할 수 있는가? 예) sum이라는 변수에 선언문과 배정문을 실행하였을 때, 변수의 속성 - 기억장치의 한 장소를 추상화한 것 - 기억장소 이외에 저장하는 값의 해석 방법, 값의 타입, 가능한 연산 등이 정의되어야 함 - 일반적으로 변수는 이름, 주소, 영역, 수명, 값, 형 등의 속성을 가짐 - 변수와 연관된 식별자(identifier)는 다른 변수와 구별하는 데 사용 1 변수 X의 주소 - 변수 X와 연관된 기억장소의 주소를 의미 변수 X의 형(type) - 변수 X에 할당될 수 있는 값의 종류를 결정 3 변수 X의 영역 - 변수 X가 사용될 수 있는 프로그램의 부분 4 변수 X의 수명 - 변수 X와 연관된 기억장소가 할당되어 있는 시간을 의미 var sum: integer; sum := 0; D. W. Barron의 표기법에 따라 변수 sum을 표현 참조 이름: sum 유형: 정수 값: 0 일반적인 속성 속성 (attribute) 값 속성 결정시간 이름 (name) sum 컴파일 시간. 유형 (type) 정수형 컴파일 시간. 주소 (address)? 프로그램 적재시간 (loading time) 값 (value) 0 실행시간.

프로그래머가 프로그램을 작성할 때 고려하는 일반적인 것 특이한 속성도 결정되어야 함 - 정수형의 내부 표현방법 1 프로그래밍 언어 설계시간이나 구현시간에 결정 C 언어에서 정수형은 구현된 컴퓨터에 따라 다르게 표현 => 16bit 컴퓨터에서는 16bit로, 3bit 컴퓨터에서는 3bit로 - 정수형 변수에서 표현 가능한 최대값과 최소값 1 일반적으로 프로그래밍 언어 구현시간에 결정 => 일부 언어에서는 기계 독립성을 높이기 위해 언어 설계시간에 정의 FORTRAN에서 정수형은 -3,768부터 3,767사이의 값(16bit표현, 15-1 ~ - 15 )을 표현 - 정수형 변수에서 가능한 모든 연산 1 언어 정의시간에 결정 배정연산 (:= or =), 사칙연산(+, -, *, /), 나머지연산(% or mod) 및 비교연산(>=, ==) 등 - 프로그램 실행시에 사용할 데이터 속성에 관한 정보를 컴파일러나 인터프리터에게 알려주는 문장 - 프로그래밍 언어에서의 역할 1 보다 효율적인 주기억장치 사용과 액세스가 가능: 변수들의 크기, 유형에 관한 정보를 제공 보다 효율적인 주기억장치 관리가 가능: 생성 및 소멸 시기에 관한 정보를 제공 3 컴파일 시간에 변수의 형 검사가 가능: 의미없는 수식에 대한 정보를 제공 - 일부 언어에서는 묵시적으로 변수를 선언 1 FORTRAN 변수의 첫 글자가 I에서 N사이의 문자로 시작하는 경우는 정수로, 그 외에는 실수로 간주 BASIC 정수변수는 %로, 문자열변수는 $로 끝나며, 그 외에는 실수 변수 3 Perl 변수명의 맨 앞에 $를 붙여 scalar형 표시, 배열은 변수명 앞에 @를 붙여 표시 (예 : Perl의 변수 $sum은 scalar 형으로서, 정수, 실수, 문자열을 포함) - 바인딩이란 프로그램 요소에 지정 가능한 속성 값을 지정하는 것 - 바인딩 시간(binding time)이란 바인딩이 발생하는 시간 - 바인딩과 바인딩 시간은 프로그래밍 언어 설계시에 매우 중요한 포인트 - 바인딩은 언어 설계시간, 언어 구현시간, 컴파일 시간, 적재시간 및 실행시간에 발생 예) min := min + 5; binding되는 속성 binding time 변수 min의 가능한 변수 유형 언어 설계 시간 변수 min의 유형(type) 컴파일 시간 변수 min이 가질 수 있는 값의 범위 언어 설계시간 or 구현시간 변수 min의 주소값 프로그램 적재 시간 변수 min의 값 언어 실행 시간 연산자 + 의 의미의 집합 언어 설계 시간 연산자 + 의 연산 종류 컴파일 시간 5의 내부적 표현 컴파일 시간, 언어 설계 시간 정적 바인딩 - 프로그램이 실행되기 전(주로 컴파일 할 때)에 바인딩이 발생하는 것 - 수치 계산을 목적으로 개발된 언어에서 많이 사용 - 효율성 중시 - 컴파일시에 대부분의 속성을 지정하여, 실행시간의 오버헤드를 줄이고자 함이 목적 - 컴파일 언어에서 사용 1 컴파일 언어는 명시적인 선언 요구 컴파일시간에 더 많은 에러를 찾아내고 보다 효율적인 실행코드를 발생 요구 동적 바인딩 - 실행시간 중에 일어나기 때문에 프로그램 실행 지연 - 문자열처리나 인공지능처리 언어인 LISP, Perl, Prolog 등에서 많이 사용 - 융통성, 편리성 중시 - 인터프리터형 언어에서 사용 1 인터프리터형 언어는 명시적인 선언을 요구하지 않음 실행시간에 변수의 값을 지정할 때까지 변수의 형을 바인딩 하지 않음

예) 인터프리트 언어 Perl의 융통성 변수는 선언할 필요가 없음 정수 값이 지정된 변수에 문자열을 배정 가능 - 변수의 내용을 변경하는 기본 연산 - 프로그램에서 가장 일반적인 연산문 중에 하나 - 여러 가지 언어의 배정문 프로그래밍 언어 배정문 형식 Pascal, Ada X := Y; C, C++, Perl, Java X = Y; FORTRAN, BASIC X = Y COBOL MOVE Y TO X. APL X Y - 문장 A := B;에서 l-value와 r-value 1 연산자(:=)의 왼쪽에 있는 변수(l-value or left-value)는 주소를 사용함 연산자(:=)의 오른쪽에 있는 변수(r-value or right-value)는 값을 사용함 - 자료의 l-value와 r-value 예) C에서 다음 두 가지 배정문의 의미 1 모든 변수들은 l-value와 r-value를 가진다. 10과 같은 상수는 r-value만을 갖는다. 3 C의 정수 포인터 int *ip; 변수 ip의 l-value는 ip 자신의 주소 r-value는 다른 변수의 l-value 4 배열 A에서 A[i] l-value는 배열 A에서 i번째 요소의 주소 r-value는 그 주소에 저장된 값 case 1 int a=1, b=; a = b; <case 1>의 실행결과 a : 1 b : <case >의 실행결과 case (right??) int *a=1, *b=; a=b; a : b : a : 1 b : b : <case >에서 a=b; 대신에 *a=*b;를 수행하면 결과는 다음과 같다. a 1 a b b

- 둘 이상의 이름으로 하나의 변수를 참조할 때를 말함 - C나 Pascal에서 포인터 변수를 사용하여 이명 생성 - FORTRAN의 EQUIVALENCE, COMMON문에 의해서 이명 생성 - 프로그램의 해독성(readability)을 해치며, 유지보수를 어렵게 만듦 - 변수 X의 영역은 변수이름 X가 동일한 의미를 갖는 프로그램의 일부분을 의미 - 변수 X가 X의 영역에서 참조 가능하면 가시적(visible) - 변수 X가 X의 영역이 아니거나 동일한 이름을 가진 변수에 의해 가려지면 비가시적(invisible) - Hole-in-scope: 지역변수에 가려서 전역변수가 비가시적인 경우 - 변수의 영역이 프로그램의 실행순서와는 무관하게 프로그램 블록의 포함관계에 따라 결정 - 명령형 언어 대부분은 정적 영역 규칙을 사용 - 블록내의 모든 비 지역변수는 자신을 둘러싸고 있는 가장 가까운 블록에서 선언된 변수를 참조 - APL, SNOBOL4와 같은 언어는 동적 영역 규칙을 사용 - 함수를 호출하는 순서에 기반을 둔 것(실행시간에 결정) - 비지역변수를 참조할 때 자신을 호출한 함수의 정의를 사용 블록 참조 가능한 변수 및 함수이름 {main} a, b, Large {Large} a, b, x, y, Large, sub1 {sub1} a, b, x, y, z, Large, sub1

- 변수의 수명 : 변수가 메모리에 할당되는 시간부터 역할을 마치고 저장공간이 반환될 때까지 - C, PASCAL과 같은 블록구조의 언어에서 변수의 영역과 수명은 일치 1 정적 영역 규칙 사용한 결과 sub1의 print(x)의 결과는 동적 영역 규칙 사용 sub1은 x에 대한 선언이 없으므로, sub1을 호출한 sub의 정의 사용 sub에서 x:=4의 값을 지정하였으므로, print(x)의 결과는 4 - 변수를 선언함과 동시에 값을 배정하는 것 - FORTRAN은 DATA문을 사용하여 변수를 초기화 - 많은 언어에서 변수를 선언함과 동시에 값을 배정 - 기억장소 바인딩 종류에 따라 변수는 정적 변수, 스택-동적 변수, 힙-동적 변수로 분류 - 정적 변수(static variable): 프로그램 실행 전에 메모리에 위치하고 종료시까지 바인딩이 유지되는 변수 - 스택-동적 변수(static-dynamic variable): 변수의 유형은 정적으로 바인딩되지만 기억장소 할당과 회수는 동적으로 이루어지는 변수 - 힙-동적 변수(heap-dynamic variable): 기억장소 할당과 회수가 명시적인 명령어에 의해서 힙이라 는 메모리에서 동적으로 이루어지는 변수 분류 장점 단점 예제 정적 변수 실행의 효율성이 높음 재귀 호출 불가 기억 장소 공유 불가 실행의 효율성이 정적 스택-동적 변수 재귀 호출 가능 변수에 비해 떨어짐 힙-동적 변수 실행 중 수시변환 가능 프로그램이 복잡해짐 global variables static variables local variables malloc(), free() new, delete