Hệ_thống_kiểu

Bản mẫu:Kệ thống kiểuTrong ngôn ngữ lập trình, hệ thống kiểu (tiếng Anh: type system) là một tập các quy tắc gán một thuộc đặc tính gọi là kiểu cho các cấu trúc khác nhau của một chương trình máy tính bao gồm, như biến, biểu thức, hàm hay mô đun.[1]Những kiểu này chính thức hóa và bắt buộc (một cách ngầm định) các loại mà lập trình viên sử dụng cho cấu trúc dữ liệu và thành phần, ví dụ như: "chuỗi" (string), "mảng số thực" (array of float), "hàm trả về giá trị boolean"). Mục đích chính của hệ thống kiểu là để giảm khả năng lỗi trong chương trình máy tính[2] bằng cách định nghĩa giao diện giữa các phần của chương trình máy tính, và sau đó kiểm tra các bộ phận được kết nối theo một cách nhất quán. Kiểm tra có thể xảy ra tĩnh (vào thời gian biên dịch - compile time), động (vào thời gian chạy -- run time), hay là sự kết hợp của kiểm tra tĩnh và động. Hệ thống kiểu còn có mục đích khác, như cho phép tối ưu hóa trình biên dịch nhất định, cho phép đa điều phối (multiple dispatch), cung cấp một dạng tài liệu,...Một hệ thống kiểu liên kết mỗi kiểu với một giá trị tính toán, bằng cách kiểu tra dòng của những giá trị đó, cố gắng bảo đảm hay chứng minh rằng không có lỗi kiểu nào có thể xảy ra. Hệ thống kiểu đã cho xác định chính xác những gì cấu thành lỗi kiểu, nhưng nói chung mục đích là để ngăn các toán tử sử dụng được những loại giá trị mà hoạt động tính toán trên đó không có ý nghĩa (lỗi logic); lỗi bộ nhớ cũng sẽ được ngăn chặn. Hệ thống kiểu thường được đặc tả như là một phần của ngôn ngữ lập trình, và xây dựng trong trình thông dịch và trình biên dịch của ngôn ngữ đó; mặc dù hệ thống kiểu của nogon ngữ có thể được mở rộng bởi các công cụ tùy chọn (extended static checking) để thực hiện các loại kiểm tra bổ sung sử dụng cú pháp và ngữ pháp kiểu gốc của ngôn ngữ đó.