This presentation is the property of its rightful owner.
1 / 20

# Formal Languages, Part Two PowerPoint PPT Presentation

Formal Languages, Part Two. SIE 550 Lecture Matt Dube Doctoral Student – Spatial. Where we left off on Friday. Formal Languages Terminal Symbols – base-level instances “symbols that we can’t break down further”-Jake

Formal Languages, Part Two

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

## Formal Languages, Part Two

SIE 550 Lecture

Matt Dube

Doctoral Student – Spatial

### Where we left off on Friday

• Formal Languages

• Terminal Symbols – base-level instances

• “symbols that we can’t break down further”-Jake

• Non-terminal Symbols – rules to extract specific sequences of terminal symbols

• “symbols that can be broken down”

• Well Formed Formulas (WFF)

• Valid outputs of a formal language

• Semantics DO NOT matter!

• Logic is not involved

NON- TERMINAL SYMBOLS

atom::=proton{proton}{electron}{neutron}

TERMINAL SYMBOLS

Carbon 14 = 6 protons, 6 electrons, 8 neutrons

Helium = 2 protons, 5 electrons, 2 neutrons

### Homework from Friday

• You are a math teacher and want to take a nap during class.

• Create a formal language that will generate addition and subtraction problems involving arbitrary terms over positive integers.

48 + 97 –9+ 17 – 4–1 … =?

### One possible solution

• start ::= problem

• problem ::= integer sign {term} integer end

• term ::= integer sign

• integer ::= digit/0 {digit}

• sign ::= “+” | “-”

• end ::= “=?”

• digit/0 ::= “1” | “2” | … | “9”

• digit ::= “0” | “1” | “2” | … | “9”

undo

### Another Example to Discuss

Language for Computer Drawing?

Just like text, we can interpret this as a formal language and use the same concepts and terminology!

Terminal Symbols?

Non-terminal Symbols?

• Please voice before we move forward

### Today’s Class

• Apply formal languages to a class of English sentences

• Propositional logic

• First Order Languages

• Predicates

Peter Naur

John Backus

### Backus-Naur Form

• Recall the operators: |::=[]{}“” ()

• These operators are referred to as the Backus-Naur Form.

• “Language of the language” – meta-language

• Standard syntax

### Example of BNF

• start ::= transitive_sentence

• transitive_sentence ::= [article] noun verb [article] noun end

• article ::= “a” | “an” | “the”

• noun ::= “tricycle” | “cat” | “veterinarian” | “rubber” | “ferrari”

• verb ::= “rides” | “fixes” | “eats” | “burns” | “jumps”

• end ::= “.”

the cat fixes the veterinarian.

an ferrari eats a cat.

ferrari jumps a veterinarian

The tricycle burns rubber.

the cat rode a tricycle.

a tricycle burns the ferrari.

### What are the goals?

• We want a computer to retrieve correct information.

• We want a computer to tell us correct information.

• We want a computer to test the correctness of information.

• We want a computer to infer correct information.

Query Language

Print Commands

Formal Language

???

How should we go about that?

### Well…

• How do we do it minus a computer?

• Propositional Logic

• Related statements and then moving information between them

• Example:

• Jake lives in Hampden

• Hampden is in Maine

• Therefore Jake lives in Maine.

• Very effective system if…

You Can Think!

You expect me to think?

I am only a machine!

My aren’t they temperamental sometimes!

### How do we rectify the situation?

• We need a logic system

• “Propositional logic”-like, but…

• We know a computer can:

• Handle a formal language

• Cross-reference and replace terms

• Pass information through code

• So what’s missing?

• We need functions to pass through

### First Order Logic

• First order logic = functional propositional logic

• Example:

• man(X)

• X=socrates

• X=plato

• man(socrates) -> socrates is a man.

• man(plato) -> plato is a man.

• Could we use this?YES

• What if we established “man(socrates)” as a terminal symbol and put something above it in the code saying mortal(X)::=man(X)?

• Do we find out anything else about socrates?

### Note

• Things in a computer program starting with a capital letter are variables.

• Things in a computer program starting with a lowercase letter are constants.

• IMPLICATION: The program sees what satisfies the capital letter and then passes that information through the rest of the program.

### A New Language

• It is now time to define a new type of formal language: a first order language.

• WFFs in a first order language

• a predicate

• (WFF or WFF)

• (WFF and WFF)

• (WFF implies WFF)

• (WFF = WFF)

WHAT IS A PREDICATE?

animal( )

### Predicates

• Gateways

• man()

• Whatever we put inside the parentheses is a man.

• father(,)

• Whatever we put first is the father; second is the child.

• Predicates are non-terminal symbols

• Variables are non-terminal symbols

• Constants are terminal symbols

• Number of terms in the predicate = arity

### Use formal language now

• Treat predicate information based on constants as if they were terminal symbols

• man(mike), man(henry), etc.

• Treat predicate information based on variables as if they were non-terminal symbols

• mortal(X)::=man(X)

• If X is a man, than X is also a mortal.

• We can now build in as many crazy combinations as we choose.

### Example

PREDICATE CALCULUS

• parent(X,A) ::= father(X,A) | mother(X,A)

• child(X,A) ::= father(A,X) | mother(A,X)

• father(john,suzy)

• father(jack,daniel)

• mother(almice,jack)

• mother(almice,tim)

TERMINAL SYMBOLS

Suzy

John

AXIOMS

Jack

Almice

Tim

Daniel

### Other Example Commands

• We used an or statement

• Mother or father makes you a parent

• father(X,A)=child(A,X)

• If X is A’s father, then A is a child of X IMPLY

• parents(X,Y,A)=parent(X,A) parent(Y,A)

• X and Y are A’s parents if X is A’s parent and Y is also A’s parent AND