Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

FEN 2013-01-29Sprog1 Lidt om sprog Definition: Et sprog over et endeligt alfabet  (sigma) er en mængde af strenge dannet af tegn fra . Eksempel: Lad.

Lignende præsentationer


Præsentationer af emnet: "FEN 2013-01-29Sprog1 Lidt om sprog Definition: Et sprog over et endeligt alfabet  (sigma) er en mængde af strenge dannet af tegn fra . Eksempel: Lad."— Præsentationens transcript:

1 FEN 2013-01-29Sprog1 Lidt om sprog Definition: Et sprog over et endeligt alfabet  (sigma) er en mængde af strenge dannet af tegn fra . Eksempel: Lad  = {a, b} Sprog over alfabetet  kan være: { , a, aa, aab}--  er den tomme streng { , a, b, aa, ab, ba, bb}-- og kan dannes over et- {abba, baba} -- hvert alfabet

2 FEN 2013-01-29Sprog2 Programmeringssprog Et program i et programmerings-sprog, P er en streng dannet af sprogets grundsymboler: –Hvad er det? som overholder visse regler givet ved P’s grammatik /* hello.cs */ public class Startup { public static void Main() { System.Console.WriteLine("Hello World!"); } }//class En parser er et program, som afgør om en streng til hører et sprog

3 FEN 2013-01-29Sprog3 Lidt om sprog  * betegner mængden af alle strenge, som kan dannes over alfabetet . For  = {a, b} er:  * = {a, b}* = { , a, b, aa, ab, ba, bb, aaa, aab, aba,…} Med denne notation kan vi beskrive flere sprog over  : –{x  {a, b}*  x  < 8}--  x  betegner længden af x -- ( == antal tegn i x) –{x  {a, b}*  n a (x)  n b (x)}-- n a (x) betegner antal a-er i x Sproget med mindst 4 a’er og højest 12 b’er?

4 FEN 2013-01-29Sprog4 Sprog er mængder… Derfor kan vi danne nye sprog ved mængdeoperationer: –Lad L 1 og L 2 være sprog over , da er L 1  L 2, L 1  L 2 og L 1 - L 2 også sprog over  Da ethvert sprog L over  er en delmængde af  *, kan vi tale om det komplementære sprog L’ =  * - L

5 FEN 2013-01-29Sprog5 Konkatenering Vi kan konkatenere sprog ligesom strenge: –Lad x og y   *, så er xy strengen, hvor symbolerne i y er skrevet efter x –Tilsvarende definerer vi for L 1, L 2   * konkateneringen af L 1 og L 2: L 1 L 2 = { xy  x  L 1  y  L 2 }

6 FEN 2013-01-29Sprog6 Mere om konkatenering Det ses let, at konkatering bl.a. er associativ, hvorfor vi kan snakke om konkatenering af mere end to strenge: –Lad a  , x   * og L   * for et eller andet alfabet  –Vi skriver da: a k = aa … a-- k a’er x k = xx … x-- k x’er  k =  …  = {x   *   x  = k} Er k=0, så definerer vi: a 0 = , x o =  og  0 = {  }

7 FEN 2013-01-29Sprog7 Kleene Star (Closure) Vi kan også konkatenere sprog: –Lad a  , x   * og L   * for et eller andet alfabet  –Vi skriver da: L k = LL … L-- k L’er L * betegner tilsvarende sproget af alle strenge, som kan dannes ved at konkatenere 0 eller flere strenge i L. Hermed: L * =  {L k | k  N} Specielt er L 0 = {  } Operationen L * kaldes Kleene Star eller Kleene closure af L

8 FEN 2013-01-29Sprog8 Eksempel: Regulære Sprog Regulære sprog er strenge over et alfabet, som kan dannes ud fra regulære udtryk: Lad  være et alfabet, a   og r og s strenge over  Regulære udtryk: –Basis: r = a er et regulært udtryk. Den tomme streng ε er et regulært udtryk. –Operationer: Hvis r og s er regulære udtryk, så er: Alternativer’|’ r | s | ε Konkatenering:rs | ε Gentagelse (0 eller flere)’*’(r | s)* –også regulære udtryk.

9 Flere eksempler: Det tomme sprog  Sproget Pal: alle palindromer over {a, b} (fx strenge som abba eller bab). Mængden af valide Java identifiers Sproget Expr: lovlige regneudtryk med identifieren a, de binære operationer + og * samt parenteser (fx strenge som a, a+a*a og (a+a*(a+a))) FEN 2013-01-29Sprog9

10 Flere eksempler: Sproget Bal: strenge indeholdende parenteser, hvor parenteserne balancerer (fx strenge som , (), (a+a*a) og (a+a*(a+a)), men også ((()))). FEN 2013-01-29Sprog10


Download ppt "FEN 2013-01-29Sprog1 Lidt om sprog Definition: Et sprog over et endeligt alfabet  (sigma) er en mængde af strenge dannet af tegn fra . Eksempel: Lad."

Lignende præsentationer


Annoncer fra Google