Presentation on theme: "Formal Languages: main findings so far A problem can be formalised as a formal language A formal language can be defined in various ways, e.g.: the language."— Presentation transcript:
Formal Languages: main findings so far A problem can be formalised as a formal language A formal language can be defined in various ways, e.g.: the language accepted by a given DFSA the language accepted by a given NDFSA the language denoted by a given Regular Expression The language generated by a Regular Grammar Stated without proof: DFSA=NDFSA=Reg Grammar We proved: FSA = Regular Expression think about what “=“ means
Formal Languages FSAs and Regular Expressions are just two methods for defining a formal language. Many others exist. Other methods allow us to define languages that FSAs and Regular Expressions cannot define An entire series of increasingly complex formal languages is known: the Chomsky hierarchy Each requires a more complex type of automaton to define/accept the language in question. The most complex type of automaton that can still be considered an algorithm: Turing Machines. These accept the (Turing) decidable languages.
3 Turing-recognisable decidable context-free A Hierarchy of Languages regular Decidable languages: CS3518
Remainder of the course Mechanisms higher up in the hierarchy can recognize more languages Turing Machines resemble FSAs, but are more powerful. In particular, they –can write as well as read symbols –can move left as well as rightward along a string –have “failure” states as well as “success” states We’ll turn to Turing Machines in CS3518
A full course on formal languages and computability would tell you about all the elements of the hierarchy (e.g. pushdown automata) The plan of this course is different: we now turn to a short primer on mathematical logic