Lý thuyết về Máy tự động nghiên cứu các máy trừu tượng và automata, cùng với các vấn đề tính toán có thể giải quyết bằng chúng. Đây là một nhánh trong khoa học máy tính lý thuyết và toán học rời rạc (kết hợp giữa toán học và khoa học máy tính). Từ automata, số nhiều của automaton, có nguồn gốc từ tiếng Hy Lạp αὐτόματα, có nghĩa là 'tự động'.
Hình ảnh bên phải mô tả một máy trạng thái hữu hạn, thuộc một loại máy tự động phổ biến. Máy này bao gồm các trạng thái (biểu thị bằng các vòng tròn) và các chuyển tiếp (biểu thị bằng mũi tên). Khi máy tự động nhận một ký hiệu đầu vào, nó sẽ chuyển sang trạng thái khác theo chức năng chuyển đổi, dựa trên trạng thái hiện tại và ký hiệu đầu vào tiếp theo.
Lý thuyết máy tự động có liên quan mật thiết với lý thuyết ngôn ngữ hình thức. Máy tự động là một mô hình hữu hạn của ngôn ngữ hình thức, có thể biểu thị một tập hợp vô hạn. Các loại máy tự động thường được phân loại theo lớp ngôn ngữ hình thức mà chúng có thể nhận diện, được minh họa bởi hệ thống phân cấp Chomsky, mô tả mối quan hệ giữa các ngôn ngữ và các loại logic chính thức khác nhau.
Automata đóng vai trò quan trọng trong lý thuyết tính toán, xây dựng trình biên dịch, trí tuệ nhân tạo, phân tích cú pháp và xác minh hình thức.
Những lĩnh vực chính của khoa học máy tính | |
|---|---|
| Các nền tảng toán học | Logic toán · Lý thuyết tập hợp · Lý thuyết số · Lý thuyết đồ thị · Lý thuyết kiểu · Lý thuyết thể loại · Giải tích số · Lý thuyết thông tin · Đại số · Nhận dạng mẫu · Nhận dạng tiếng nói · Toán học tổ hợp · Đại số Boole · Toán rời rạc |
| Lý thuyết phép tính | Độ phức tạp Kolmogorov · Lý thuyết Automat · Lý thuyết tính được · Lý thuyết độ phức tạp tính toán · Lý thuyết điện toán lượng tử |
| Các cấu trúc dữ liệu và các giải thuật | Phân tích giải thuật · Thiết kế giải thuật · Hình học tính toán · Tối ưu hóa tổ hợp |
| Các ngôn ngữ lập trình và Các trình biên dịch | Các bộ phân tích cú pháp · Các trình thông dịch · Lập trình cấu trúc · Lập trình thủ tục · Lập trình hướng đối tượng · Lập trình hướng khía cạnh · Lập trình hàm · Lập trình logic · Lập trình máy tính · Lập trình mệnh lệnh · Lập trình song song · Lập trình tương tranh · Các mô hình lập trình · Prolog · Tối ưu hóa trình biên dịch |
| Tính song hành, Song song, và các hệ thống phân tán | Đa xử lý · Điện toán lưới · Kiểm soát song hành · Hiệu năng hệ thống · Tính toán phân tán |
| Công nghệ phần mềm | Phân tích yêu cầu · Thiết kế phần mềm · Các phương pháp hình thức · Kiểm thử phần mềm · Quy trình phát triển phần mềm · Các phép đo phần mềm · Đặc tả chương trình · LISP · Mẫu thiết kế · Tối ưu hóa phần mềm |
| Kiến trúc hệ thống | Kiến trúc máy tính · Tổ chức máy tính · Các hệ điều hành · Các cấu trúc điều khiển · Cấu trúc bộ nhớ lưu trữ · Vi mạch · Thiết kế ASIC · Vi lập trình · Vào/ra dữ liệu · VLSI design · Xử lý tín hiệu số |
| Viễn thông và Mạng máy tính | Audio máy tính · Chọn tuyến · Cấu trúc liên kết mạng · Mật mã học |
| Các cơ sở dữ liệu và Các hệ thống thông tin | Hệ quản trị cơ sở dữ liệu · Cơ sở dữ liệu quan hệ · SQL · Các giao dịch · Các chỉ số cơ sở dữ liệu · Khai phá dữ liệu · Biểu diễn và giao diện thông tin · Các hệ thống thông tin · Khôi phục dữ liệu · Lưu trữ thông tin · Lý thuyết thông tin · Mã hóa dữ liệu · Nén dữ liệu · Thu thập thông tin |
| Trí tuệ nhân tạo | Lập luận tự động · Ngôn ngữ học tính toán · Thị giác máy tính · Tính toán tiến hóa · Các hệ chuyên gia · Học máy · Xử lý ngôn ngữ tự nhiên · Robot học |
| Đồ họa máy tính | Trực quan hóa · Hoạt họa máy tính · Xử lý ảnh |
| Giao diện người-máy tính | Khả năng truy cập máy tính · Giao diện người dùng · Điện toán mang được · Điện toán khắp mọi nơi · Thực tế ảo |
| Khoa học tính toán | Cuộc sống nhân tạo · Tin sinh học · Khoa học nhận thức · Hóa học tính toán · Khoa học thần kinh tính toán · Vật Lý học tính toán · Các giải thuật số · Toán học kí hiệu |
Chú ý: khoa học máy tính còn có thể được chia thành nhiều chủ đề hay nhiều lĩnh vực khác dựa theo Hệ thống xếp loại điện toán ACM. | |
