Teori Bahasa terkait dengan Teori Komputasi. Sisi mana yang lebih filosofis dari Ilmu Komputer, tentang memutuskan program mana yang mungkin, atau mana yang mungkin untuk ditulis, dan jenis masalah apa yang tidak mungkin untuk dipecahkan oleh algoritma.
Ekspresi reguler adalah cara mendeskripsikan bahasa reguler. Bahasa biasa adalah bahasa yang dapat ditentukan oleh robot terbatas deterministik.
Anda harus membaca artikel di Finite State Machines: http://en.wikipedia.org/wiki/Finite_state_machine
Dan bahasa Reguler:
http://en.wikipedia.org/wiki/Regular_language
Semua Bahasa Reguler adalah Bahasa Bebas Konteks, tetapi ada Bahasa Bebas Konteks yang tidak teratur. Bahasa Bebas Konteks adalah himpunan semua string yang diterima oleh Grammer Bebas Konteks atau Pushdown Automata yang merupakan Mesin Keadaan Hingga dengan satu tumpukan: http://en.wikipedia.org/wiki/Pushdown_automaton#PDA_and_Context-free_Languages
Ada bahasa yang lebih rumit yang memerlukan Mesin Turing (Program apa pun yang mungkin Anda tulis di komputer Anda) untuk memutuskan apakah sebuah string ada dalam bahasa tersebut atau tidak.
Teori bahasa juga sangat berkaitan dengan masalah P vs. NP, dan beberapa hal menarik lainnya.
Buku teks Pengantar Ilmu Komputer tahun ketiga saya cukup bagus dalam menjelaskan hal-hal ini: Pengantar Teori Komputasi. Oleh Michael Sipser. Tapi, saya harus membayar $ 160 untuk membelinya baru dan itu tidak terlalu besar. Mungkin Anda dapat menemukan salinan bekas atau menemukan salinan di perpustakaan atau sesuatu yang dapat membantu Anda.
EDIT:
Batasan Ekspresi Reguler dan kelas bahasa yang lebih tinggi telah banyak diteliti selama 50 tahun terakhir ini. Anda mungkin tertarik dengan pumping lemma untuk bahasa biasa. Ini adalah cara untuk membuktikan bahwa bahasa tertentu tidak teratur:
http://en.wikipedia.org/wiki/Pumping_lemma_for_regular_languages
Jika suatu bahasa tidak teratur, mungkin ia Bebas Konteks, yang artinya dapat dijelaskan oleh Grammer Bebas Konteks, atau bahkan mungkin di kelas bahasa yang lebih tinggi, Anda dapat membuktikan bahwa itu bukan Bebas Konteks dengan memompa lemma untuk Bebas Konteks bahasa yang mirip dengan ekspresi reguler.
Sebuah bahasa bahkan bisa tidak dapat diputuskan, yang berarti bahkan mesin Turing (mungkin memprogram komputer Anda dapat berjalan) tidak dapat diprogram untuk memutuskan apakah sebuah string harus diterima seperti dalam bahasa atau ditolak.
Saya pikir bagian yang paling Anda minati adalah Finite State Machines (Baik Deterministik dan Deterministik) untuk melihat bahasa apa yang dapat diputuskan oleh Ekspresi Reguler, dan lemma pemompaan untuk membuktikan bahasa mana yang tidak teratur.
Pada dasarnya sebuah bahasa tidak teratur jika membutuhkan semacam memori atau kemampuan untuk berhitung. Bahasa pencocokan tanda kurung tidak teratur misalnya karena mesin perlu mengingat jika telah membuka tanda kurung untuk mengetahui apakah harus menutupnya.
Bahasa semua string yang menggunakan huruf a dan b yang mengandung minimal tiga b adalah bahasa biasa: a ba ba ba
Bahasa semua string yang menggunakan huruf a dan b yang mengandung lebih banyak b daripada a bukanlah bahasa biasa.
Juga Anda tidak boleh bahwa semua bahasa terbatas adalah reguler, misalnya:
Bahasa semua string yang panjangnya kurang dari 50 karakter menggunakan huruf a dan b yang mengandung lebih banyak b daripada a adalah biasa, karena terbatas kita tahu itu dapat dijelaskan sebagai (b | abb | bab | bba | aabbb | ababb |. ..) dll hingga semua kemungkinan kombinasi terdaftar.
Automata Theorem