定型环境

定型環境(英語:Typing Environment)是程式語言類型論中的一個重要概念,用於記錄變量名稱及其對應的類型。定型環境通常用符號 Γ(伽瑪)來表示,是靜態類型程式語言中類型檢查和類型推導的基礎工具。

定義

在靜態類型系統中,定型環境是一個映射,用於關聯變量名稱和它們的類型。例如,假設某個定型環境包含以下三個變量:

  • x 的類型為整數(int)
  • y 的類型為布林值(bool)
  • z 的類型為字串(string)

則該定型環境可表示為:

Γ=x:int,y:bool,z:string

其中,冒號「:」用於表示變量與類型的關係。

用途

定型環境在類型系統中的主要用途是確定變量的類型,以支援以下功能:

  1. 類型檢查:檢查程式中的變量使用是否符合其類型。例如,對於 x 的運算,若定型環境中記錄 x:int,則系統可驗證該變量是否用於整數運算。
  2. 類型推導:根據上下文推導未知變量的類型,確保程式的類型安全性。

判斷示例

給定定型環境:

Γ=x:int,y:bool,z:string

若需要判斷變量 a 的類型是否為字元(char),可以表示為以下形式:

x:int,y:bool,z:string⊢a:char

此表達式的含義是:在定型環境 Γ 下,驗證 a 的類型是否為 char。由於定型環境中未記錄變量 a,判斷結果為假。

相關概念

  • 靜態類型系統:在編譯時進行類型檢查的系統。
  • 類型推導:在未明確指定類型的情況下,根據程式上下文自動推斷類型。
  • 類型檢查:驗證程式中變量或運算是否符合類型規則的過程。

另见