[프로그래밍언어론] 12. 블록(Block), 환경(Environment)

2023. 10. 10. 16:39·프로그래밍언어론
목차
  1. 블록
  2. 블록 겹치기
  3. 환경 유형
블록(Block)과 환경(Environment)이란?

 


블록

  • 환경을 이해하기 위해서는 먼저 { ... }에 대해 생각해보자.
  • 블록은 시작과 끝 기호로 식별되는 프로그램의 텍스트 영역이다.
  • 블록에는 해당 지역에 대한 로컬 선언이 포함된다.
    • 그러한 선언은 해당 지역 외부에서는 유효하지 않다.
  • 블록은 다양한 방식으로 표현될 수 있다.
  • 일반적으로 블록에 들어가고 나갈 때마다 환경이 변경된다.
  • 블록은 중첩될 수 있다.
  • 블록의 중복은 절대 허용되지 않는다.
    • 마지막으로 열린 블록이 닫힐 때까지 이전 블록을 닫을 수 없다.

언어별 블록 표현 방식

Java

if (a > 0 && b > 0) {
    q = a / b;
}
Python

if a > 0 and b > 0:
     q = a /b

Scheme

(define var "PL")
(let ((var 10))
)

 


 

블록 겹치기

  • 일반적으로 블록 내에서는 로컬 환경을 고려한다.
  • 겹치면 매우 복잡해진다.
  • 따라서 이는 어떤 언어에서도 허용되지 않는다.
  • 그러나 블록 중첩 정책은 언어마다 약간 다를 수 있다.

 


 

환경 유형

  • 블록과 관련된 환경은 다음과 같이 구성될 수 있다.
  • 로컬 환경(Local environment) : 블록에서 로컬로 선언된 이름에 대한 바인딩 집합
  • 비로컬 환경(Non-Local environment) : 표시되지만 블록에서 선언되지는 않는 이름에 대한 바인딩으로 구성
  • 글로벌 환경(global environment) : 프로그램이 시작될 때 생성된 바인딩의 환경
저작자표시 변경금지 (새창열림)

'프로그래밍언어론' 카테고리의 다른 글

[프로그래밍언어론] 14. 스택(Stack), 힙(Heap)  (0) 2023.10.11
[프로그래밍언어론] 13. 가시성 규칙(Visibility Rules), 범위 규칙(Scope Rules)  (0) 2023.10.10
[프로그래밍언어론] 11. 이름(Name), 바인딩(Binding)  (1) 2023.10.10
[프로그래밍언어론] 10. 추상 구문 트리(AST)를 EBNF로 변환  (1) 2023.10.10
[프로그래밍언어론] 9. BNF를 EBNF로 변환  (0) 2023.09.19
  1. 블록
  2. 블록 겹치기
  3. 환경 유형
'프로그래밍언어론' 카테고리의 다른 글
  • [프로그래밍언어론] 14. 스택(Stack), 힙(Heap)
  • [프로그래밍언어론] 13. 가시성 규칙(Visibility Rules), 범위 규칙(Scope Rules)
  • [프로그래밍언어론] 11. 이름(Name), 바인딩(Binding)
  • [프로그래밍언어론] 10. 추상 구문 트리(AST)를 EBNF로 변환
파스텔코랄
파스텔코랄
Developer Blog 📜 Lots of rules and no mercy ✨
파스텔코랄
슬기로운 개발일지
파스텔코랄
전체
오늘
어제
  • 스터디
    • 컴퓨터시스템구조
    • 모바일프로그래밍
    • 프로그래밍언어론
    • 운영체제
    • 컴퓨터네트워크
    • 데이터분석
    • 소프트웨어공학
    • 시스템프로그래밍

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • About

링크

공지사항

인기 글

태그

어셈블리어
프로그래밍언어론
운영체제
네트워크

최근 댓글

최근 글

hELLO· Designed By정상우.v4.6.1
파스텔코랄
[프로그래밍언어론] 12. 블록(Block), 환경(Environment)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.