• 類型系統

    編輯
    本詞條由“匿名用戶” 建檔。

    類型系統

    計算機編程中,類型系統是一個由一組規則組成的邏輯系統,它為每個術語(一個詞、短語或其他符號集)分配一個稱為類型的屬性。通常,這些術語是計算機程序的各種結構,如變量、表達式、函數或模塊。類型系統規定了可以在一個術語上進行的操作。對于變量,類型系統決定了該術語的允許值。類型系統將程序員用于代數數據類型數據結構或其他組件(例如,字符串浮點數組、返回布爾值的函數)的隱含類別正式化并強制執行。類型系統通常被指定為編程語言的一部分,并內置于解釋器和編譯器中,盡管一種語言的類型系統可以由可選的工具來擴展,這些工具使用語言的原始類型句法和語法進行附加檢查。編程語言中的類型系統的主要目的是減少計算機程序中由于類型錯誤而產生的錯誤的可能性。有關的類型系統決定了什么是類型錯誤,但一般來說,其目的是防止期望某種類型的值的操作被用于該操作沒有意義的值(有效性錯誤)。類型系統允許在計算機程序的不同部分之間定義接口,然后檢查這些部分是否以一致的方式連接。這種檢查可以是靜態的(在編譯時),動態的(在運行時),或兩者的結合。類型系統也有其他目的,比如表達業務規則、實現某些編譯器優化、允許多重調度,以及提供一種文檔形式。

    使用概述

    一個簡單類型系統的例子是C語言的類型系統。C語言程序的部分內容是函數定義。一個函數被另一個函數所調用。一個函數的接口說明了該函數的名稱和傳遞給該函數代碼的參數列表。調用函數的代碼說明了被調用的名稱,以及容納傳遞給它的數值的變量名稱。在執行過程中,這些值被放置到臨時存儲中,然后執行跳轉到被調用函數的代碼。被調用函數的代碼訪問這些值并利用它們。如果函數內部的指令是以接收整數值為前提編寫的,但調用代碼傳遞的是浮點值,那么被調用函數將計算出錯誤的結果。C語言編譯器會在函數被調用時,根據函數定義中聲明的參數類型來檢查傳遞給函數的參數類型。如果類型不匹配,編譯器會拋出一個編譯時錯誤。編譯器也可以使用一個值的靜態類型來優化它所需要的存儲以及對該值進行操作的算法選擇。例如,在許多C語言編譯器中,float數據類型是用32位表示的,符合IEEE對單精度浮點數的規范。

    類型系統

    因此,他們會對這些值使用浮點專用的微處理器操作(浮點加法、乘法等)。類型約束的深度和其評估方式會影響語言的類型。在類型多態性的情況下,編程語言可以進一步將一個操作與每個類型的各種決議聯系起來。類型理論是對類型系統的研究。一些編程語言的具體類型,如整數和字符串,取決于計算機結構、編譯器實現和語言設計等實際問題。

    基本原理

    從形式上看,類型理論研究類型系統。一種編程語言必須有機會使用類型系統進行類型檢查,不管是在編譯時還是在運行時,是手動注釋還是自動推斷。類型理論引起的基本問題是,有意義的程序可能沒有被賦予意義。對更豐富的類型系統的追求就來自于這種矛盾。賦予一個數據類型,即類型化,給一個比特序列以意義,如內存中的一個值或一些對象,如一個變量。通用計算機的硬件無法區分內存地址和指令代碼,也無法區分字符、整數或浮點數,因為它對比特序列可能意味著的任何值都沒有內在的區別。把一個比特序列與一個類型聯系起來,就可以把這個意義傳達給可編程的硬件,形成一個由該硬件和一些程序組成的符號系統。一個程序將每個值與至少一個類型相關聯。

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/170877/

    (5)
    詞條目錄
    1. 類型系統
    2. 使用概述
    3. 基本原理

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久