Dil Teorisi, Hesaplama Teorisi ile ilgilidir. Bilgisayar Biliminin daha felsefi tarafı hangisidir, hangi programların mümkün olduğuna veya hangilerinin yazılmasının mümkün olacağına karar vermek ve çözmek için bir algoritma yazmanın ne tür problemler olduğuna karar vermek.
Normal bir ifade, normal bir dili tanımlamanın bir yoludur. Düzenli dil, deterministik sonlu bir otomat tarafından kararlaştırılabilen bir dildir.
Sonlu Durum Makineleri hakkındaki makaleyi okumalısınız: http://en.wikipedia.org/wiki/Finite_state_machine
Ve Normal diller:
http://en.wikipedia.org/wiki/Regular_language
Tüm Normal Diller Bağlam İçermeyen Dillerdir, ancak normal olmayan Bağlamdan Bağımsız Diller vardır. Bağlamdan bağımsız bir dil, bir Bağlamdan Bağımsız Grammer veya tek yığınlı bir Sonlu Durum Makinesi olan Aşağı Açılan Otomata tarafından kabul edilen tüm dizelerin kümesidir: http://en.wikipedia.org/wiki/Pushdown_automaton#PDA_and_Context-free_Languages
Bir dizenin dilde olup olmadığına karar vermek için bir Turing Makinesi (bilgisayarınızda yazabileceğiniz olası herhangi bir program) gerektiren daha karmaşık diller vardır.
Dil teorisi ayrıca P'ye karşı NP problemi ve diğer bazı ilginç konularla da çok ilgilidir.
Bilgisayar Bilimlerine Giriş üçüncü sınıf ders kitabım bu konuyu açıklamada oldukça iyiydi: Hesaplama Teorisine Giriş. Michael Sipser tarafından. Ama yeni satın almak bana 160 dolara mal oldu ve çok da büyük değil. Belki kullanılmış bir kopyasını bulabilir veya bir kütüphanede veya size yardımcı olabilecek bir şeyde bulabilirsiniz.
DÜZENLE:
Normal İfadelerin ve daha yüksek dil sınıflarının sınırlamaları, son 50 yılda bir ton araştırıldı. Normal diller için pompalayan lemma ilginizi çekebilir. Belirli bir dilin düzenli olmadığını kanıtlamanın bir yoludur:
http://en.wikipedia.org/wiki/Pumping_lemma_for_regular_languages
Bir dil normal değilse, Bağlamsız olabilir, bu da bir Bağlamdan Bağımsız Grammer tarafından tanımlanabileceği anlamına gelir veya daha yüksek bir dil sınıfında bile olabilir, Bağlamsız için pompalama lemması ile bunun Bağlamsız olmadığını kanıtlayabilirsiniz. normal ifadeler için olana benzer diller.
Bir dil bile karar verilemez olabilir, yani bir Turing makinesi bile (bilgisayarınızı çalıştırabilir) bir dizgenin dilde kabul edilip edilmeyeceğine veya reddedilmesine karar verecek şekilde programlanamaz.
Bence en çok ilgilendiğiniz kısım, bir Düzenli İfadenin hangi dillere karar verebileceğini görmek için Sonlu Durum Makineleri (Hem Belirleyici hem de Belirleyici) ve hangi dillerin düzenli olmadığını kanıtlamak için pompalama lemması.
Temelde, bir tür hafızaya veya sayma yeteneğine ihtiyaç duyan bir dil normal değildir. Eşleşen parantez dili düzenli değildir, çünkü makinenin birini kapatması gerekip gerekmediğini anlamak için parantez açıp açmadığını hatırlaması gerekir.
En az üç b içeren a ve b harflerini kullanan tüm dizelerin dili normal bir dildir: a ba ba ba
A'dan daha fazla b içeren a ve b harflerini kullanan tüm dizgelerin dili düzenli değildir.
Ayrıca, sonlu dillerin hepsinin düzenli olmasını da istememelisiniz, örneğin:
A'dan daha fazla b içeren a ve b harflerini kullanan 50 karakterden kısa tüm dizelerin dili normaldir, çünkü sonlu olduğu için (b | abb | bab | bba | aabbb | ababb | olarak tanımlanabileceğini biliyoruz. ..) Tüm olası kombinasyonlar listelenene kadar ect.
Automata Theorem