- 60 Views
- Uploaded on
- Presentation posted in: General

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

- 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”

- Terminal Symbols – base-level instances
- 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

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

- 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

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

- Apply formal languages to a class of English sentences
- Propositional logic
- First Order Languages
- Predicates

Peter Naur

John Backus

- Recall the operators: |::=[]{}“” ()
- These operators are referred to as the Backus-Naur Form.
- “Language of the language” – meta-language
- Standard syntax

- 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.

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

- 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!

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

- 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.

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

- Gateways
- man()
- Whatever we put inside the parentheses is a man.

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

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

- 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.

- mortal(X)::=man(X)
- We can now build in as many crazy combinations as we choose.

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

What can we say about:

Tim

Daniel

- 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