Søger lidt info om BNF - Backus Naur Form

Tags:    c++

<< < 12 > >>
Jeg vil gerne høre om der var nogle der kunne fortælle mig lidt om BNF da jeg lige er begyndt at studere det. Jeg vil gerne vide hvor man skal skrive sine koder, altså er notesblok god nok? Skal den kode man skriver compiles? hvad skal ens filer ende med .bnf ?

Som i kan høre ved jeg meget lidt om det, men det interessere mig utrolig meget stadigvæk :)

Udover de spørgsmål jeg har skrevet ang. BNF må i også gerne komme med nogle andre informationer og/eller oplevelser med BNF programmering. I må også gerne komme med et link til et dansk forum som omhandler BNF så jeg virkelig kan lære noget.

Ved ikke om 100 point er nok, da jeg er begynder.
Tak!



13 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Har lige sidet og læst om det selv.

Først lidt historie om navnet 'BNF': (er det Backus Normal Form eller Backus Naur Form?)
http://spirit.sourceforge.net/dl_docs/bnf.html

Wikipedia har også noget om BNF:
http://en.wikipedia.org/wiki/Backus-Naur_form

Her viser de også hvordan BNF kan præsenteres med BNF.
Efter at have læst det så tror jeg ikke du kan bruge BNF til at lave dit eget programmerings/script - sprog.

BNF er bare til at forklare syntaxen med og ikke andet, det er altså til dokumentation og lignende og derfor tror jeg heller ikke der er nogle forums der kun handler om BNF. Men der er måske nogle om compiler design..
Der er i hvert fald den nyhedsgruppe som det første link kom fra, comp.compilers

Der er også lidt om det på msdn:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_atl_understanding_backus_nauer_form_.28.bnf.29_.syntax.asp

Jeg tror det er begrænset hvad du kan bruge det til rent praktisk, men det er nok godt at kunne det hvis man skal skrive teori.


Hilsen

Martin Dybdal (Dybber)
Blog: http://dybber.dk/blog/



Efter en hurtig tur på google fandt jeg denne side: http://www.garshol.priv.no/download/text/bnf.html

Og efter at have læst lidt, synes jeg ikke at der er noget der tyder på at det er et programmerings sprog, men en underlig form for matematik.

Du kan jo selv læse mere om det på overstående link

/edit
Efter at have søgt lidt mere på nettet ser det ud til at være entydig måde at beskrive syntaks i de fleste programmeringssprog på.

[Redigeret d. 29/12-05 18:23:43 af Søren]



Hmm jo du har ret, det er ikke et programmerings sprog - vidste ikke hvad jeg skulle kalde det hehe :)

men altså grunden til at jeg vil lære det er at man kan bruge BNF til at beskrive syntaksen eller grammatikken for et programmerings sprog. Jeg vil nemlig forsøge at lave et selv. Derfor studere jeg compiler teori samt BNF.

Jeg vil tage et kig på dit link.

Kan du så ikke også lige finde et forum som omhandler den slags ting - compiler teori eller BNF ?

hvis du finder sådan et forum vil jeg også give dig alle pointene ;)

Og så lige et tak for din hjælp hidtil !



Jeg ville læse en bog. Jeg har fået denne anbefalet, men har endnu ikke læst den:

http://www.amazon.com/gp/product/0201000229/103-8728555-0375003?v=glance&n=283155

Den kan vist også findes på www.bibliotek.dk

Der burde stå noget om BNF i den. Og der er så også en masse andet om Compiler Design som du nok også kan få glæde af :)

Hilsen

Martin Dybdal (Dybber)
Blog: http://dybber.dk/blog/



Jo tak skal du have!

Jeg har også altid fået af vide at en bog er den bedste fremgangsmåde; har dog stadig ikke fået svar på det jeg personligt synes er vigtigst, kender du/i et forum som omhandler denne her slags ting. For det ville være perfekt. Så kan jeg udvide min viden for alvor :) eller hvis du finder en god dansk bog.

Jeg ved forresten også godt at man ingen vejne kommer ved at holde sig til de danske tutorials og bøger, da programmering er internationalt osv. men jeg vil gerne starte med det danske, indtil jeg for nok viden om compiling og BNF, så går jeg videre til det engelske.

[Redigeret d. 29/12-05 19:04:47 af Jens]

[Redigeret d. 29/12-05 21:30:46 af Jens]



Tak skal du have. :)

Jeg ved skam godt at man ikke kan lave et programmerings sprog ud af BNF kun. Som jeg sagde bruges det til at beskrive syntaksen/grammatikken godt og grundigt i et programmerings sprog som man evt. vil lave. Det jeg efterspurgte var som du siger et forum som handler om compiler design/teori :)

Håber på at i eller jeg finder sådan et forum - men jeg har søgt google igennem uden resultat :S



Dragebogen er tussegammel. Ældre end mig ! Og der er sket en del siden. Denne bog er mere up-to-date:
http://www.amazon.com/gp/product/0521607655/qid=1135944451/sr=8-2/ref=pd_bbs_2/104-0916085-1874336?n=507846&s=books&v=glance

Jeg kender ikke til nogle fora omhandlende compiler design/sprog parsing men kig lidt her:
http://www.freetechbooks.com/viewforum.php?f=14

Kig evt. også lidt på Lex, Yacc og Bison:
http://dinosaur.compilertools.net/
http://www.gnu.org/software/bison/bison.html



Hold da op hvor er det dejlig robert :)
Det var lige hvad jeg ledte efter! (forummet er det perfekte for en nybegynder!)
men efter at have kigget lidt i det, ser jeg at forummet er ret dødt, der er 3-4 indlæg i det hele. Kender du ikke et andet som har lidt flere brugere.

Vil du ikke være så venlig at lægge et svar?

Jeg ved indtil nu at en compiler består af følgene:

leksikalsk analyse
syntaktisk analyse
semantisk analyse

også en back end

kodegenerering
kodeoptimering

men hvordan sætter man det sammen? altså jeg ved at man kan bruge FLEX og BISON til de 3 analyser som jeg skrev foroven. Men hvordan laves en kodegenerering og kodeoptimering?

[Redigeret d. 30/12-05 14:18:11 af Jens]



User
Bruger #710 @ 31.12.05 01:16
Hej Jens..

Jeg synes personligt, at du giver udtryk for ikke at være 'klar' til at tage fat på dette område endnu. Jeg vil ikke tage modet fra dig eller fornærme dig.
-----------------------------------------------------------------------
Du skriver netop:
Jeg vil gerne høre om der var nogle der kunne fortælle mig lidt om BNF da jeg lige er begyndt at studere det. Jeg vil gerne vide hvor man skal skrive sine koder, altså er notesblok god nok? Skal den kode man skriver compiles? hvad skal ens filer ende med .bnf ?


men konkluderer samtidig, at det ikke er et programmeringssprog:


Jeg ved skam godt at man ikke kan lave et programmerings sprog ud af BNF kun. Som jeg sagde bruges det til at beskrive syntaksen/grammatikken godt og grundigt i et programmerings sprog som man evt. vil lave.



Jeg ved forresten også godt at man ingen vejne kommer ved at holde sig til de danske tutorials og bøger, da programmering er internationalt osv. men jeg vil gerne starte med det danske, indtil jeg for nok viden om compiling og BNF, så går jeg videre til det engelske.


Snakkede i oktober med en systemudvikler på Aalborg Universitet, og han nævnte at han ikke kunne huske at have taget så lang tid om at læse en side i en bog, som dem omhandlende compilerteori(selvfølgelig engelsk). Tror ikke du skal regne med du kommer nogen steder med BNF ved brug af det danske sprog.
-----------------------------------------------------------------------
På siden her foregår der mest 'scriptprogrammering'/hjemmesideprogrammering, hvilket på ingen måde er særligt matematisk, og programmeringen i de andre sprog her befinder sig på ingen måder på et niveau der kan måle sig med compilerteori. Der er sikkert nogle dataloger o.lign. der har en bruger her på stedet, så måske kan du være heldig der er en der kan give dig et ordentligt svar.

Sidste gang jeg bemærkede en smule matematik herinde var da man i en tråd spurgte om måder at løse en sudoku på. Her blev der sågar foreslået neurale netværk(hvilket blev støttet op som den bedste måde at klare dette på). Man kunne istedet bruge operationsanalyse, der er et stærkt værktøj til netop løsningen af en Sudoku. Den oplagte måde at løse dette på herinde var dog ved brug af algoritmer der efterlignede den menneskelige måde at 'tænke' på.
-----------------------------------------------------------------------

Jeg skal indrømme at det jeg kender mest til om BNF er den 'krig' om hvad de tre bogstaver i grunden står for. På ingen måde kan jeg hjælpe dig med at gå i dybden idet jeg ikke har nok viden om den teori der ligger bag BNF. Prøv måske at skriv til Aalborg/Aarhus/ Syddansk/Københavns datalogiinstitutter og spørg dem om dette. Du kan prøve www.matematen.dk(som godt nok er matematisk institut, men måske de vil svare, der går dog ca. en uge før svar).
Jeg ville som sagt ønske jeg kunne svare dig ordentlig idet det altid er dejligt at se de få gange man ser muligheder for at bruge matematikken - har kun brugt programmering i matematiske sammenhænge indtil videre, hvilket er stærkt begrænset her på sitet - dog er sitet fantastisk hvis man søger hjælp til små hobbyprojekter!!.
-----------------------------------------------------------------------
Jeg vil holde øjne og ører åbne hvis jeg kommer forbi noget der måske kunne være nyttig. Men ellers god fornøjelse med din søgen!!

Venlig hilsen
MF



Jamen tusinde tak for det, det kan jeg bruge til meget :)
Jeg vil give dig ret i at jeg ikke ved så meget endnu, men det interessere mig meget, og er villig til at lære det. Jeg kan indtil videre html, css, php, og en smule c++. De første 3 programmerings sprog jeg nævnte kan jeg rigtig godt, men min viden indenfor c++ er begrænset. C++ ligger i samme genre som compiler teori om jeg så må sige, så jeg ved da lidt.

Jeg har lavet lidt console programmer og en smule windows programer (win app) men stadig kun det lette.

Det jeg mente med at jeg vil have en dansk bog, er kun til at få mig igang. Jeg har nemlig fået af vide at man næsten kan glemme dansk hvis man vil programmere, det er jo internationalt. Jeg vil bare gerne forstå hvordan det hænger sammen, før jeg bevæger mig ud i noget engelsk.

Efter at have læst dit svar har jeg tænkt lidt over det, og du har på alle måder ret. Jeg tror at jeg vil fortsætte med at lære lidt c++ inden jeg bevæger mig ud i compiler teori.

Tusinde tak!



<< < 12 > >>
t