Top Banner
Formal Languages, Part Two SIE 550 Lecture Matt Dube Doctoral Student – Spatial
20

Formal Languages, Part Two

Jan 15, 2016

Download

Documents

nuala

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 - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Formal Languages, Part Two

Formal Languages, Part Two

SIE 550 Lecture

Matt Dube

Doctoral Student – Spatial

Page 2: Formal Languages, Part Two

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

TERMINAL SYMBOLS

NON- TERMINAL SYMBOLS

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

Carbon 14 = 6 protons, 6 electrons, 8 neutronsHelium = 2 protons, 5 electrons, 2 neutrons

Page 3: Formal Languages, Part Two

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 … =?

Page 4: Formal Languages, Part Two

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”

Page 5: Formal Languages, Part Two

Another Example to DiscussLanguage for Computer Drawing?

undo

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

Terminal Symbols?

Non-terminal Symbols?

Page 6: Formal Languages, Part Two

Questions, Comments, Concerns?

• Please voice before we move forward

Page 7: Formal Languages, Part Two

Today’s Class

• Apply formal languages to a class of English sentences

• Propositional logic

• First Order Languages

• Predicates

Page 8: Formal Languages, Part Two

Backus-Naur Form

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

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

• “Language of the language” – meta-language

• Standard syntax

John Backus

Peter Naur

Page 9: Formal Languages, Part Two

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 veterinarianThe tricycle burns rubber.the cat rode a tricycle.a tricycle burns the ferrari.

Page 10: Formal Languages, Part Two

What are the goals?

1. We want a computer to retrieve correct information.

2. We want a computer to tell us correct information.

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

4. We want a computer to infer correct information.

Query Language

Print Commands

???

Formal Language

How should we go about that?

Page 11: Formal Languages, Part Two

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…

Page 12: Formal Languages, Part Two

You expect me to think?I am only a machine!

My aren’t they temperamental sometimes!

Page 13: Formal Languages, Part Two

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

Page 14: Formal Languages, Part Two

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?

Page 15: Formal Languages, Part Two

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.

Page 16: Formal Languages, Part Two

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( )

Page 17: Formal Languages, Part Two

Predicates

• Gateways– man( )

• Whatever we put inside the parentheses is a man.

– father( , )• Whatever we put first is the father; second is the child.

• User defined linkages• Predicates are non-terminal symbols• Variables are non-terminal symbols• Constants are terminal symbols• Number of terms in the predicate = arity

Page 18: Formal Languages, Part Two

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.

Page 19: Formal Languages, Part Two

Example

What can we say about:

JohnSuzyJack

DanielAlmice

Tim

TERMINAL SYMBOLS

AXIOMS

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)

Page 20: Formal Languages, Part Two

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