Download presentation

1
**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 We stated without proof: DFSA=NDFSA We proved: FSA = Regular Expression think about what “=“ means

2
**You have seen two equivalence results **

Formal Languages FSAs and Regular Expressions are just two methods for defining a formal language. Many others exist. You have seen two equivalence results But some methods allow us to define languages that FSAs (and Regular Expressions) cannot define In fact, 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. At the top of this hierarchy: Turing Machines

3
Chomsky’s hierarchy Languages Automatons Recursively enumerable = Turing machine Context-sensitive = LB non-deterministic Turing machine Context-free = Non-deterministic pushdown automaton Regular = Finite state automaton

4
**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 the third part of this course

5
A full course on formal languages and computability would tell you about all the elements of the hierarchy (e.g. context free languages and pushdown automata) The plan of this course is different: we now turn to a different model of computation

6
**It is believed that TMs can do anything that any computer could ever do (Lectures 16-24)**

How can we know what any computer could ever do? Let’s broaden our view by looking at a class of programming languages entirely different from JAVA, Pascal, Fortran, Basic, ...

7
**We kill two birds with one stone:**

The name of this programming paradigm: the functional model of programming Mathematical basis: the calculus The programming language: Haskell We kill two birds with one stone: we get a better view of what programming means you learn about an up-and-coming programming language particularly useful for maths

Similar presentations

OK

Parsing Introduction Syntactic Analysis I. Parsing Introduction 2 The Role of the Parser The Syntactic Analyzer, or Parser, is the heart of the front.

Parsing Introduction Syntactic Analysis I. Parsing Introduction 2 The Role of the Parser The Syntactic Analyzer, or Parser, is the heart of the front.

© 2019 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google