Teori bahasa dan automata merupakan salah satu komponen ilmu informatika, teori ini merupakan ide dan model fundamental yang mendasari sebuah system komputasi, teori ini juga bisa disebut sebagai sebuah teknik rekayasa untuk perancangan system komputasi. Beberapa bidang ilmu lain yang mendukung pengembangan metode komputasi : 1. Biologi Mempelajari jaringan neuron yang mengilhami ditemukanannya finite automata.
2. RangkaianElektronika Mempelajari teori switching sebagai perancangan perangkat keras menggunakan finite automata.
3. Matematika Mengembangkan system logika yang berguna untuk masalah pembuktian automata.
B. Komponen-komponen Ilmu Informatika
Teori bahasa dan automata merupakan salah satu komponen ilmu informatika, teori ini merupakan ide dan model fundamental yang mendasari sebuah system komputasi, teori ini juga bisa disebut sebagai sebuah teknik rekayasa untuk perancangan system komputasi. Ada 3 model mesin komputasi yang akan kita pelajari dalam otomata : 1. Finite Automata (FA) Sering juga disebut dengan Finite State Automata (FSA). Terdiri dari Deterministic Finite Automata (DFA) dan Non Deterministik Finite Automata (NDFA). Teori dasar dari FA sangat umum yaitu system pada saat berada di salahsatu state dari sejumlah state bergerak diantara state-state secara dapat diproduksi yang bergantung pada masukan ke system. Salah satu penerapannya adalah kompilasi/translasi bahasa pemograman tingkat tinggi menjadi bahasa mesin yang ekivalen. Finite automata merupakan jenis otomata yang tidak memiliki memori sementara, FA adalah kelas mesin dengan kemampuan paling terbatas. Finite Automata berguna untuk membantu perancangan lexical analyzer, aplikasi editor teks, pengenalan pola, fault tolerant system, dll
2. Pushdown Automata (PDA)
Terdiri dari Deterministic Pushdown Automata (DFA) dan Non Deterministik Pushdown Automata (NDFA). PA memiliki memori sementara dengan mekanisme stack LIFO (Last In First Out). Berguna untuk mengenali bahasa yang bersifat context-free grammar, kamus data, query, script, parsing, dll
3. Turing Machine (TM)
Mesin turing dapat digunakan untuk mengidentifikasi ketidakmungkinan penulisan sebuah program komputer. Jika suatu persoalan tidak dapat dimodelkan oleh mesin turing, maka persoalan tersebut tidak akan mungkin dapat diselesaikan secara komputatif oleh mesin komputasi apapun. Mesin Turing memiliki mekanisme Random Access Memory.
C. Aturan – aturan Produksi
1. Noam Chomsky : Membuat model matematis untuk mendeskripsikan bahasa sekaligus menjawab pertanyaan tentang psycho-linguistic Membuat perangkat formal untuk memodelkan property bahasa (disebut Grammar). 2. McCulloch & Pitts : Merancang Finite Automata untuk memodelkan neuron nets 3. Stephen Kleene : Menemukan model representasi lain dari automata melalui Regular Expression 4. Alan Turing : Menemukan model untuk mengidentifikasi apakah sebuah permasalahan dapat dikomputasi Ä Mesin Turing