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.

Slides:



Advertisements
Lignende præsentationer
VEKTORER AM 2006.
Advertisements

Relationer En relation mellem to mængder er en generaliseret funktion
Vektorer i planen Regneregler Definition Begreber Definition af:
Velkommen til Softwarekonstruktion
Udsagn (propositioner)
FEN IntroJava AAU1 Introduktion til Java programmering Kursusintroduktion Introduktion til programmering Java og BlueJ.
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
Begreber og Redskaber 1 BRP.
C#: Udtryk og metoder. Indhold “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” Udtryk.
Distribueret programmering, specielt.NET Remoting Rasmus D. Lehrmann DM
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Sproghistorie Syntaks (struktur) Semantik (Indhold)
Reduktion AM 2009.
FEN Diskret matematik/Seminar 3 - proofs 1 Beviser Et bevis er en argumentation, som overbeviser om, at en påstand er sand, påstanden kaldes.
FEN Diskret matematik/Seminar 11 Diplomuddannelsen i Softwarekonstruktion (Master-brobygning) Fagpakke: Formelle modeller for programmering Diskret.
GP 10, 7/ Grundlæggende programmering Efterår 2001 Forelæsning 10 onsdag 7/ kl. 9:15 – 12:00.
FEN IntroJava AAU1 Opsamling: afvikling af Java-programmer Input fra keyboard og fil Fra en prompt Fra BlueJ Fra NetBeans.
Induktion og rekursion
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
Genetik kursus del II Kristianssand 19. september
Genom-screening med Illumina SNP-array
FEN Rekursion og induktion1 Induktion og (især) rekursion Mange begreber defineres ud fra en basis og så en gentagen anvendelse af et antal regler.
Pc-kørekort Mere om software. Programmering Definition: at skrive et program ved hjælp af en tekst–editor på en måde, som computeren kan forstå Instruktionerne.
Endelige Automater Simple sprog (regulære sprog) kan beskrives vha. Regulære udtryk. Regulære sprog kan altid parses vha endelige automater. Nondeterministik.
FEN Prædikater/Seminar 11 Prædikatslogik eller Kvantificerede udtryk Prædikater udvider propositionslogikken på to måder: –Vi tillader variable.
Begreber og Redskaber 2. Plan for idag Noget om bestanddelene i et programmeringssprog Syntaksbeskrivelse af java Næste gang: –Binære tal –Repræsentation.
Begreber og Redskaber 1. Emner i kurset Om sprog og sprogbeskrivelse Repræsentation af tal i maskinen –Heltal, negative tal, kommatal, logiske værdier.
Sprog og grammatik Et sprog L(G) er mængden af sætninger afledt af grammatikken G. Grammatik er en 4-tupel: G={N, ,P,S}. Hvor: N er et sæt af non-terminale.
Mængder: Begreber og notation
Sproghistorie Syntaks (struktur) Semantik (Indhold)
Fundamentale datastrukturer
FEN KbP/seminar2: design11 Kontraktbaseret programmering Seminar 2 Klassedesign – grundprincipper Eksempler: Stack Dictionary.
FEN KbP/seminar 1: Specifikationer/Notationen Q 1 Kontraktbaseret programmering: Seminar 1 Om specifikationer Algoritmenotationen Q.
1 Design, analyse og verifikation. 2 Design Bevisteknikker Design ved hjælp at matematisk induktion Analyse O-notation Logaritmer Binær søgning Verifikation.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Paradigmer i Programmering 2. Sammensatte typer Tupler og lister Programmering med rekursion Programmering med pipe-lines Programmering med polymorfe.
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
FEN KbP/seminar2: design21 Kontraktbaseret programmering Seminar 2 Klassedesign: Immutable lister Queue Shallowcopy og alkvantoren.
Begreber og Redskaber 1. Programmeringssprog Sprog = mængde af sætninger ?
Begreber og Redskaber 1 BRP.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
JavaCC Top-down (Recursive descent). Mest populære mht Java. Regulær grammatik og Context-free grammatik i en fil. Tillader EBNF: (..)*, (..)+ og (..)?
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
Deadlock Definition deadlock (baglås) er en tilstand som en mængde af processer kan være i en mængde processer er i deadlock hvis alle processerne står.
Basics: Binære variable, logiske operationer
Paradigmer i Programmering 3. Højere ordens funktioner Idag: Højere ordens funktioner Algebraiske datatyper Næste gang: I/O, Filer, interaktive programmer.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
REGULARITET & AUTOMATER Indhold
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Indledende Programmering Uge 6 - Efterår 2006
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2001Multimedie programmering1.1 Skildpadder Modeller, objekter og opførsel.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
FEN IntroJava AAU1 Introduktion til programmering Et program: HelloWorld Objekter og klasser.
Programmering I Java/C# Datatekniker Dit første projekt.
Regulær udtryk Lad T være det terminale alfabet. og T* angive et sæt af strenge over T ex: T={a,b,c} så er: aaa, bab,bbbbbbaaaa er indeholdt i T* Et sporg.
Computerens talsystem
VEKTORER AM 2006.
Mulighed 2AA Konfron-konfron SKABELON TIL DILEMMA-OPBYGNING
Præsentationens transcript:

FEN Sprog1 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

FEN Sprog2 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

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

FEN Sprog4 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

FEN Sprog5 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 }

FEN Sprog6 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 = {  }

FEN Sprog7 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

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

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 Sprog9

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