Trong công nghệ thông tin và khoa học máy tính, một chương trình được mô tả là có trạng thái nếu nó được thiết kế để ghi nhớ các sự kiện hoặc tương tác người dùng trước đó;[1] các thông tin được ghi nhớ này được gọi trạng thái của hệ thống.
Tập trạng thái mà một hệ thống có thể lưu giữ được gọi là không gian trạng thái. Trong hệ thống rời rạc, không gian trạng thái là đếm được và hữu hạn, và hành vi hoặc tương tác nội bộ của hệ thống với môi trường bao gồm các hành động hoặc sự kiện riêng lẻ đang xảy ra, chẳng hạn như việc chấp nhận đầu vào hoặc việc xuất kết quả đầu ra, có thể có hoặc không thay đổi trạng thái của hệ thống. Ví dụ về các hệ thống như vậy là các mạch luận lý số, máy tự động và ngôn ngữ hình thức, chương trình máy tính và máy tính. Đầu ra của một mạch số hoặc chương trình máy tính tại bất kỳ thời điểm nào là hoàn toàn xác định bởi đầu vào và trạng thái hiện tại.[2]
Các trạng thái sau được phân biệt: