SlideShare a Scribd company logo
1 of 5
Concept of Programming
Language
변수 part1
변수의 속성
• 변수의 6가지 속성
• 이름 (Name)
• 타입 (Type)
• 주소 (Address)
• 값 (Value)
• 영역 (Scope)
• 존속기간 (Lifetime)
• 변수의 값
• 변수의 l-value : 변수의 주소
• 변수의 r-value : 변수의 값
• Call-by-value는 r-value를
Call-by-Reference는 l-value를
전달한다.
• 영역과 존속기간
• 영역 : 변수 선언문부터 부프로그램의
끝 부분까지
• 존속기간 : 부프로그램이 호출되어 실
행을 시작한 시점부터 부프로그램의
실행이 종료되어 return 할 때까지
변수의 바인딩
정적 바인딩
• 최초의 바인딩이 프로그램 실행하기 전에 이루어진다.
• 한번 바인딩이 이루어진 속성은
프로그램이 종료될 때까지 변하지 않는다.
• 시기별 정적바인딩
• 프로그래밍언어를 설계할 때
• 연산자 기호
• 프로그래밍언어를 구현할 때
(compile/interpreter를 작성할 때)
• 정수형 값의 범위
• 실수형의 표현
• 프로그램을 Compile할 때
• 변수의 타입
• 프로그램을 메모리에 : Load할 때
• 전역변수의 주소
• static 변수의 주소
동적바인딩
• 최초의 바인딩이 프로그램 실행하는 동안 이루어진다.
• 한번 바인딩이 이루어진 속성이 프로그램 실행 과정에서
다시 발생하는 바인딩에 의해서 다른 속성으로 변할 수 있다.
• 시기별 동적바인딩
• 프로그램을 실행할 때
• static이 아닌 지역변수의 주소
• 부프로그램의 인자의 주소
• 동적으로 할당된 기억장소의 주소
변수의 영역
• 영역의 종류
• 지역변수 (Local Variable)
• block 내부에 선언된 변수
• 변수가 선언된 부프로그램이나 block 내부에서 가
시적, 외부에서는 비가시적
• 비지역변수 (Nonlocal Variable)
• 부프로그램이나 block 내부에서 가시적, 내부에 선
언되어있지 않음
• 전역변수 (Global variable)
• 프로그램 전체 영역에서 가시적인 변수
• 정적영역 규칙(Static Scope Rule)
vs 동적영역 규칙 (Dynamic Scope Rule)
• SSR이 DSR에 비해 가독성, 신뢰성, 실행 비용
면에서 우수하다.
• SSR을 적용하는 언어가 DDR에 비해 많다.
• DSR을 적용하는 언어는 SSR도 지원한다.
(perl, common lisp)
• DSR을 적용하던 언어에서 SSR을 적용하는 언
어로 발전하는 경우도 있다.
Scheme : Lisp의 방언
• 요즘 개발되는 대부분의 언어는 SSR을 적용함.
포인터
• 포인터의 개념
• 메모리 주소와 특수 값 nil로 구성되는 값의 범위를 갖는 타입
• 용도
• 주소 지정 유연성(간접 주소 지정)
• 힙-동적 변수 다루기 :힙으로부터 동적으로 할당되는 변수, 무명이며, 포인터나 참조 타입 변수를 통
해서 참조 가능
• 언어의 작성력 향상 : 연결 리스트와 같은 동적 구조체 -> 노드의 최대 개수를 미리 예측할 필요 없
다
• 평가
• 일종의 필요악, 프로그램은 복잡해지지만 메모리 접근 유연성은 향상된다.
• 논점
• 포인터 변수의 영역과 존속기간
• 힙-동적 변수의 존속기간
• 포인터가 가리킬 수 있는 값의 타입에 제한이 있는가?
• 포인터의 용도는? (동적메모리 관리 또는 간접 주소지정)
• 언어가 포인터 타입, 참조 타입 혹은 둘 다를 지원하는가?

More Related Content

More from DonggyuKim21 (8)

Lightning talk - 11
Lightning talk - 11Lightning talk - 11
Lightning talk - 11
 
Lightning Talk 10
Lightning Talk 10Lightning Talk 10
Lightning Talk 10
 
Lightning Talk 9
Lightning Talk 9Lightning Talk 9
Lightning Talk 9
 
Lightning Talk 7
Lightning Talk 7Lightning Talk 7
Lightning Talk 7
 
Lightning talk - 6
Lightning talk - 6Lightning talk - 6
Lightning talk - 6
 
Lightning talk - 5
Lightning talk - 5Lightning talk - 5
Lightning talk - 5
 
Lightning talk - 2
Lightning talk - 2Lightning talk - 2
Lightning talk - 2
 
Lightning talk - 1
Lightning talk - 1Lightning talk - 1
Lightning talk - 1
 

Recently uploaded

파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
Wonjun Hwang
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 

Recently uploaded (6)

파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
 
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
 
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
 
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
 

Lightning talk - 3

  • 2. 변수의 속성 • 변수의 6가지 속성 • 이름 (Name) • 타입 (Type) • 주소 (Address) • 값 (Value) • 영역 (Scope) • 존속기간 (Lifetime) • 변수의 값 • 변수의 l-value : 변수의 주소 • 변수의 r-value : 변수의 값 • Call-by-value는 r-value를 Call-by-Reference는 l-value를 전달한다. • 영역과 존속기간 • 영역 : 변수 선언문부터 부프로그램의 끝 부분까지 • 존속기간 : 부프로그램이 호출되어 실 행을 시작한 시점부터 부프로그램의 실행이 종료되어 return 할 때까지
  • 3. 변수의 바인딩 정적 바인딩 • 최초의 바인딩이 프로그램 실행하기 전에 이루어진다. • 한번 바인딩이 이루어진 속성은 프로그램이 종료될 때까지 변하지 않는다. • 시기별 정적바인딩 • 프로그래밍언어를 설계할 때 • 연산자 기호 • 프로그래밍언어를 구현할 때 (compile/interpreter를 작성할 때) • 정수형 값의 범위 • 실수형의 표현 • 프로그램을 Compile할 때 • 변수의 타입 • 프로그램을 메모리에 : Load할 때 • 전역변수의 주소 • static 변수의 주소 동적바인딩 • 최초의 바인딩이 프로그램 실행하는 동안 이루어진다. • 한번 바인딩이 이루어진 속성이 프로그램 실행 과정에서 다시 발생하는 바인딩에 의해서 다른 속성으로 변할 수 있다. • 시기별 동적바인딩 • 프로그램을 실행할 때 • static이 아닌 지역변수의 주소 • 부프로그램의 인자의 주소 • 동적으로 할당된 기억장소의 주소
  • 4. 변수의 영역 • 영역의 종류 • 지역변수 (Local Variable) • block 내부에 선언된 변수 • 변수가 선언된 부프로그램이나 block 내부에서 가 시적, 외부에서는 비가시적 • 비지역변수 (Nonlocal Variable) • 부프로그램이나 block 내부에서 가시적, 내부에 선 언되어있지 않음 • 전역변수 (Global variable) • 프로그램 전체 영역에서 가시적인 변수 • 정적영역 규칙(Static Scope Rule) vs 동적영역 규칙 (Dynamic Scope Rule) • SSR이 DSR에 비해 가독성, 신뢰성, 실행 비용 면에서 우수하다. • SSR을 적용하는 언어가 DDR에 비해 많다. • DSR을 적용하는 언어는 SSR도 지원한다. (perl, common lisp) • DSR을 적용하던 언어에서 SSR을 적용하는 언 어로 발전하는 경우도 있다. Scheme : Lisp의 방언 • 요즘 개발되는 대부분의 언어는 SSR을 적용함.
  • 5. 포인터 • 포인터의 개념 • 메모리 주소와 특수 값 nil로 구성되는 값의 범위를 갖는 타입 • 용도 • 주소 지정 유연성(간접 주소 지정) • 힙-동적 변수 다루기 :힙으로부터 동적으로 할당되는 변수, 무명이며, 포인터나 참조 타입 변수를 통 해서 참조 가능 • 언어의 작성력 향상 : 연결 리스트와 같은 동적 구조체 -> 노드의 최대 개수를 미리 예측할 필요 없 다 • 평가 • 일종의 필요악, 프로그램은 복잡해지지만 메모리 접근 유연성은 향상된다. • 논점 • 포인터 변수의 영역과 존속기간 • 힙-동적 변수의 존속기간 • 포인터가 가리킬 수 있는 값의 타입에 제한이 있는가? • 포인터의 용도는? (동적메모리 관리 또는 간접 주소지정) • 언어가 포인터 타입, 참조 타입 혹은 둘 다를 지원하는가?