Module 2 How to design Computer Language Huma

  • Slides: 34
Download presentation
Module 2 How to design Computer Language Huma Ayub Software Construction Lecture 7 1

Module 2 How to design Computer Language Huma Ayub Software Construction Lecture 7 1

Why a Language for computers is necessary ? A computer needs to have knowledge

Why a Language for computers is necessary ? A computer needs to have knowledge for knowledge processing. l A computer needs to have knowledge to shoulder human. l A computer needs to have knowledge to process contents. l l A computer needs a language to store, use, manage, create knowledge like human. 2

What should be a language for computers ? There are two types of languages

What should be a language for computers ? There are two types of languages l Formal Languages (Syntactic languages) l Informal Languages (Semantic languages) 3

How a Language for Computers is developed ? l Define syntax l Develop l

How a Language for Computers is developed ? l Define syntax l Develop l Define vocabulary semantics 4

Role of Syntax in a Language for Computers l Syntax specifies roles of words

Role of Syntax in a Language for Computers l Syntax specifies roles of words l Syntax specifies strong views 5

How Syntax of a Language for Computers is developed ? l. A role of

How Syntax of a Language for Computers is developed ? l. A role of a word in a sentence decided by the syntax (symbol) and the related word with this syntax (marker). e. g if else l Syntax (marker) should be defined so as to specifies a role without any confusion. 6

Role of Words in a Language for Computers l. A word should express a

Role of Words in a Language for Computers l. A word should express a concept. l That word should be nonambiguous. l A word should have a well defined semantics. (understandable for computers) 7

How Words of a Language for Computers is developed ? l Words of a

How Words of a Language for Computers is developed ? l Words of a language can be developed by every people l Methodology to develop words should be clear enough 8

How Words of a Language for Computers is developed ? l Common symbol are

How Words of a Language for Computers is developed ? l Common symbol are necessary to express concepts for developers. l Combination of common symbols restrict meaning. . 9

Role of Semantics in a Language for Computers l Meanings of words should be

Role of Semantics in a Language for Computers l Meanings of words should be defined so as to computers can understand them 10

How Semantics of a Language for Computers is developed ? l Semantics of a

How Semantics of a Language for Computers is developed ? l Semantics of a word is defined by defining possible relations with other words. l Collect possible between words. relations 11

Language for Computers l Concepts needed for the development of any computer language are

Language for Computers l Concepts needed for the development of any computer language are briefly explained in next slides 12

Alphabets l l l l Definition A finite non-empty set of symbols (called letters),

Alphabets l l l l Definition A finite non-empty set of symbols (called letters), is called an alphabet. It is denoted by Σ ( Greek letter sigma). Example Σ = {a, b} Σ = {0, 1} (important as this is the language which the computer understands. ) Σ = {i, j, k} Note Certain version of language ALGOL has 113 letters. Σ (alphabet) includes letters, digits and a variety of operators including sequential operators such as GOTO and IF 13

Strings l l l l Concatenation of finite number of letters from the alphabet

Strings l l l l Concatenation of finite number of letters from the alphabet is called a string. Example If Σ = {a, b} then a, abab, aaabb, ababababab Note Empty string or null string Sometimes a string with no symbol at all is used, denoted by (Small Greek letter Lambda) λ or (Capital Greek letter Lambda) Λ, is called an empty string or null string. 14

Words are strings belonging to some language. l Example l If Σ= {x} then

Words are strings belonging to some language. l Example l If Σ= {x} then a language L can be defined as l L={xn : n=1, 2, 3, …. . } or L={x, xxx, …. } l Here x, xx, … are the words of L l Note l All words are strings, but not all strings are words. 15

Valid/In-valid alphabets l While defining an alphabet, an alphabet may contain letters consisting of

Valid/In-valid alphabets l While defining an alphabet, an alphabet may contain letters consisting of group of symbols for example Σ 1= {B, a. B, bab, d}. l Now consider an alphabet l Σ 2= {B, Ba, bab, d} and a string Babab. B. 16

Valid/In-valid alphabets l Σ 2= {B, Ba, bab, d} and a string Babab. B

Valid/In-valid alphabets l Σ 2= {B, Ba, bab, d} and a string Babab. B This string can be tokenized in two different ways l (Ba), (bab), (B) l (B), (abab), (B) l Which shows that the second group cannot be identified as a string 17

Valid/In-valid alphabets l As when this string is scanned by the compiler (Lexical Analyzer),

Valid/In-valid alphabets l As when this string is scanned by the compiler (Lexical Analyzer), first symbol B is identified as a letter l belonging to Σ, while for the second letter the lexical analyzer would not be able to identify, so while defining l an alphabet it should be kept in mind that doubt should not be created. 18

Remarks l While defining an alphabet of letters consisting of more than one symbols,

Remarks l While defining an alphabet of letters consisting of more than one symbols, no letter should be started with the letter of the same alphabet i. e. one letter should not be the prefix of another. However, a letter may be ended in a letter of same alphabet. 19

Conclusion l Σ 1= {B, a. B, bab, d} l Σ 2= {B, Ba,

Conclusion l Σ 1= {B, a. B, bab, d} l Σ 2= {B, Ba, bab, d} l Σ 1 is a valid alphabet while Σ 2 is an in-valid alphabet. 20

Length of Strings l l l l l The length of string s, denoted

Length of Strings l l l l l The length of string s, denoted by |s|, is the number of letters in the string. Example Σ={a, b} s=ababa |s|=5 Example Σ= {B, a. B, bab, d} s=Ba. Bbab. Bd Tokenizing=(B), (a. B), (bab), (B), (d) |s|=5 21

Reverse of a String l l l l The reverse of a string s

Reverse of a String l l l l The reverse of a string s denoted by Rev(s) or sr, is obtained by writing the letters of s in reverse order. Example If s=abc is a string defined over Σ={a, b, c} then Rev(s) or sr = cba Example Σ= {B, a. B, bab, d} s=Ba. Bbab. Bd Rev(s)=d. Bbaba. BB 22

Defining Languages The languages can be defined in different ways , such as Descriptive

Defining Languages The languages can be defined in different ways , such as Descriptive definition, Recursive definition, using Regular Expressions(RE) and using Finite Automaton(FA) etc. l Descriptive definition of language l The language is defined, describing the conditions imposed on its words. l 23

Example l The language L of strings of odd length, defined over Σ={a}, can

Example l The language L of strings of odd length, defined over Σ={a}, can be written as l L={a, aaaaa, …. . } l Example l The language L of strings that does not start with a, defined over Σ ={a, b, c}, can be written as l L ={Λ, b, c, ba, bb, bc, ca, cb, cc, …} 24

Example l The language L of strings of length 2, defined over Σ ={0,

Example l The language L of strings of length 2, defined over Σ ={0, 1, 2}, can be written as l L={00, 01, 02, 10, 11, 12, 20, 21, 22} Example l The language L of strings ending in 0, defined over Σ ={0, 1}, can be written as l L={0, 00, 10, 000, 010, 100, 110, …} 25

Example The language EQUAL, of strings with number of a’s equal to number of

Example The language EQUAL, of strings with number of a’s equal to number of b’s, defined over Σ={a, b}, can be l written as l {Λ , ab, aabb, abab, baba, abba, …} l Example l The language EVEN-EVEN, of strings with even number of a’s and even number of b’s, defined over Σ={a, b}, can be written as l {Λ, aa, bb, aaaa, aabb, abab, abba, baab, baba, bbaa, bbbb, …} 26

Example l l l Example The language INTEGER, of strings defined over Σ={-, 0,

Example l l l Example The language INTEGER, of strings defined over Σ={-, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, can be written as INTEGER = {…, -2, -1, 0, 1, 2, …} Example The language EVEN, of stings defined over Σ={, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, can be written as EVEN = { …, -4, -2, 0, 2, 4, …} 27

Example l l l l Example The language {an bn }, of strings defined

Example l l l l Example The language {an bn }, of strings defined over Σ={a, b}, as {an bn : n=1, 2, 3, …}, can be written as {ab, aabb, aaabbb, aaaabbbb, …} Example The language {a n b n a n }, of strings defined over Σ={a, b}, as {an b n an: n=1, 2, 3, …}, can be written as {aba, aabbaa, aaabbbaaa, aaaabbbbaaaa, …} 28

Example The language factorial, of strings defined over Σ={0, 1, 2, 3, 4, 5,

Example The language factorial, of strings defined over Σ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} i. e. l {1, 2, 6, 24, 120, …} l l Example l The language FACTORIAL, of strings defined over Σ={a}, as {an! : n=1, 2, 3, …}, can be written as l {a, aaaaaa, …}. It is to be noted that the language FACTORIAL can be defined over any single letter alphabet. 29

Example l l l l Example The language DOUBLEFACTORIAL, of strings defined over Σ={a,

Example l l l l Example The language DOUBLEFACTORIAL, of strings defined over Σ={a, b}, as {an!bn! : n=1, 2, 3, …}, can be written as {ab, aabb, aaaaaabbbbbb, …} Example The language SQUARE, of strings defined over Σ={a}, as 2 n {a : n=1, 2, 3, …}, can be written as {a, aaaaaaaaa, …} 30

Example l l l l Example The language DOUBLESQUARE, of strings defined over Σ={a,

Example l l l l Example The language DOUBLESQUARE, of strings defined over Σ={a, b}, as {an 2 bn 2 : n=1, 2, 3, …}, can be written as {ab, aaaabbbb, aaaaabbbbb, …} Example The language PRIME, of strings defined over Σ={a}, as {ap : p is prime}, can be written as {aa, aaaaa, aaaaaaa…} 31

An Important language l PALINDROME l The language consisting of Λ and the strings

An Important language l PALINDROME l The language consisting of Λ and the strings s defined over Σ such that Rev(s)=s. l It is to be denoted that the words of PALINDROME are called palindromes. l Example l For Σ={a, b}, 32

An Important language l PALINDROME={Λ , a, b, aa, bb, aaa, aba, bab, bbb,

An Important language l PALINDROME={Λ , a, b, aa, bb, aaa, aba, bab, bbb, . . . } 33

Next week Quiz regarding this lecture. So be prepared, no excuse !!!! 34

Next week Quiz regarding this lecture. So be prepared, no excuse !!!! 34