블록

블록

유닛과 프로그램은 블록(block)으로 이루어져 있어요. 블록을 구성하는 여러 선언부와 문장부를 이해하면 프로그램 전체 구조를 파악할 수 있습니다.

출처: 문서

본문

유닛과 프로그램은 블록으로 만들어져요. 블록은 레이블·상수·타입·변수, 그리고 함수나 프로시저의 선언으로 구성됩니다. 블록은 특정한 방식으로 중첩될 수 있어요. 즉 프로시저나 함수 선언은 그 내부에 블록을 가질 수 있습니다.

블록의 구조는 문법 도식으로 표현할 수 있어요. 블록은 선언부(declaration part)문장부(statement part) 로 나뉩니다. 선언부는 다시 다음과 같은 여러 부분으로 구성됩니다.

  • 레이블 선언부(label declaration part) — 레이블 선언
  • 상수 선언부(constant declaration part) — 상수, typed 상수 선언
  • resourcestring 선언부 — 문자열 상수 선언
  • 타입 선언부(type declaration part) — 타입 선언
  • 변수 선언부(variable declaration part) — 변수 선언
  • threadvar 선언부 — 스레드 변수 선언
  • 프로시저/함수 선언부 — 프로시저·함수·생성자·소멸자 선언

문장부는 컴파운드 문장(compound statement)으로 되어 있어요.

블록에서 문장을 식별하는 데 사용하는 레이블은 그 블록의 레이블 선언부에서 선언됩니다. 각 레이블은 오직 하나의 문장만 식별할 수 있어요.

  • 한 블록에서만 사용할 상수는 그 블록의 상수 선언부에,
  • 한 블록에서만 사용할 변수는 그 블록의 변수 선언부에,
  • 한 블록에서만 사용할 타입은 그 블록의 타입 선언부에,
  • 그 블록에서 사용할 함수·프로시저는 그 블록의 프로시저/함수 선언부에 각각 선언해야 합니다.

이 네 가지 선언부는 서로 섞여 있을 수 있어요. 아직 선언되지 않은 식별자를 사용(또는 참조)할 수 없다는 것 외에는 필수 순서가 없습니다. 여러 선언부 다음에는 문장부가 옵니다. 여기에는 블록이 실행해야 할 동작들이 들어 있어요. 문장부 앞에서 선언된 모든 식별자는 그 문장부에서 사용할 수 있습니다.

더 알아보기