Problema BNF

Tutta l'informatica

Problema BNF

Messaggioda clros » dom feb 24, 2008 9:06 pm

Non so perchè...mi sento che qui qualcuno potrà dermi una risposta o reeindirizzarmi a qualcosa che me la faacia trovare.

Il problema è questo:

http://www.ioprogrammo.it/tutti_gli_altri_linguaggi/bnf_sql92-t14254.0.html
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: Problema BNF

Messaggioda riko » lun feb 25, 2008 9:44 pm

Eh, ma mi manca il resto della grammatica, come faccio a dirti cosa è <EMPHASIS>?

Tra l'altro sta usando una notazione insolita (visto che usa una 'nota' in cui ti dice di guardarti le note).

Guardando come e dove compare direi che l'unico senso è che *non* è roba di BNF, ma ti sta dicendo, ohi, questa regola sarebbe complessa da scrivere, vatti vedere le parti che ti dico dello standard.

Che so, pensa ai terminatori di linea o allo spazio: li dice chiaramente che dipende dal charset con cui lavori. Per cui in qualche modo il charset è parametro per cosa la grammatica considera spazio. Li ti dice di guardare regole sintattiche, che dovresti appunto guardare. Probabilmente li c'è spiegato come funziona.
-enrico
fibs = 0 : 1: [ a + b | (a, b) <- zip fibs (tail fibs) ]


Akropolix: Community OFF-TOPIC di IKSnet
http://www.akropolix.net/forum

"se do da mangiare a un affamato mi dicono che sono un santo, se mi chiedo perch? ? affamato mi dicono che sono un comunista" (Helder C?mara, Arcivescovo di Recife)
Avatar utente
riko

Supremo
 
Messaggi: 3329
Iscritto il: gio mar 04, 2004 4:28 pm
Località: Chiba City

Re: Problema BNF

Messaggioda clros » mar feb 26, 2008 12:07 am

riko ha scritto:Eh, ma mi manca il resto della grammatica, come faccio a dirti cosa è <EMPHASIS>?


Giusto, ma il problema è proprio quello; EMPHASIS non è definito in quel documento :riflette:

Il documento da cui sono partito è questo:

http://www.contrib.andrew.cmu.edu/~shadow/sql/sql2bnf.aug92.txt


Che so, pensa ai terminatori di linea o allo spazio: li dice chiaramente che dipende dal charset con cui lavori.


Uhm...si è vero, in questo caso saprei però come codificare gli spazi e gli EOL ma non so come identificare un inizio riga!!

Per cui in qualche modo il charset è parametro per cosa la grammatica considera spazio. Li ti dice di guardare regole sintattiche, che dovresti appunto guardare. Probabilmente li c'è spiegato come funziona.


Si Riko..sono scemo ma fino ad un certo punto! :ahah:
Infatti avevo cercato anche io qualcosa riguardo le regole sintattiche ma non trovando chiedevo come si potesse codificare quella regola con Spirit.

Che poi...trattasi della definizione di "identifier start", inizio indentificatore e non inizio riga. O no?

Subito prima si trova questa regola:

<identifier body> ::=
<identifier start> [ { <underscore> | <identifier part> }... ]

Insomma, forse potrei anche toglierlo ma non sono sicuro.
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Messaggioda Blackfede » mar feb 26, 2008 3:43 pm

Visto che sono stato recentemente segato all'esame di Linguaggi Formali, vengo qui a postare la mia Saccenza :scherza:
Credo anche io, come dice riko, che <EMPHASIS> sia solamente un marcatore per richiamare la tua attenzione.
In ogni caso ti ho trovato la sintassi completa
http://savage.net.au/SQL/sql-99.bnf.htm ... er%20start
I troll sono solo dei dementi che finisco in /dev/null
-------------------------------------------
I video giochi non influenzano i bambini. Voglio dire, se Pac-man avesse influenzato la nostra generazione, staremmo tutti saltando in sale scure, masticando pillole magiche e ascoltando musica elettronica ripetitiva...e dopo qualche anno ci furono i rave party!
Avatar utente
Blackfede

Eroe
 
Messaggi: 1227
Iscritto il: gio gen 16, 2003 10:18 am
Località: Parma

Re: Problema BNF

Messaggioda riko » ven feb 29, 2008 1:10 am

Riformulo: io credo che quell'EMPHASIS non sia una cosa della grammatica, ma sia tipo mettere in bold 'riferisciti al documento completo'. Tenendo conto che SQL è uno standard pubblicato (e fortunatamente lo standard è disponibile gratuitamente), IMHO la cosa da fare è trovare suddetto documento e leggerlo. Li ti spiega le regole per gli identificatori (regole che io di preciso non conosco, cioè so usare identificatori validi, ma non so se sono tutti e soli quelli validi).

BTW, non è detto che la grammatica non si possa semplificare.
-enrico
fibs = 0 : 1: [ a + b | (a, b) <- zip fibs (tail fibs) ]


Akropolix: Community OFF-TOPIC di IKSnet
http://www.akropolix.net/forum

"se do da mangiare a un affamato mi dicono che sono un santo, se mi chiedo perch? ? affamato mi dicono che sono un comunista" (Helder C?mara, Arcivescovo di Recife)
Avatar utente
riko

Supremo
 
Messaggi: 3329
Iscritto il: gio mar 04, 2004 4:28 pm
Località: Chiba City

Re: Problema BNF

Messaggioda Blackfede » ven feb 29, 2008 8:56 pm

riko ha scritto:Riformulo: io credo che quell'EMPHASIS non sia una cosa della grammatica, ma sia tipo mettere in bold 'riferisciti al documento completo'.


Perche` non era quello che volevi dire prima? Io credevo di si...
I troll sono solo dei dementi che finisco in /dev/null
-------------------------------------------
I video giochi non influenzano i bambini. Voglio dire, se Pac-man avesse influenzato la nostra generazione, staremmo tutti saltando in sale scure, masticando pillole magiche e ascoltando musica elettronica ripetitiva...e dopo qualche anno ci furono i rave party!
Avatar utente
Blackfede

Eroe
 
Messaggi: 1227
Iscritto il: gio gen 16, 2003 10:18 am
Località: Parma

Re: Problema BNF

Messaggioda clros » ven feb 29, 2008 9:24 pm

No ragazzi scusate...allora sono proprio bestia...
Anche nel documento di blackfede ho gli stessi problemi:

<connector character> ::= !! (See the Syntax Rules)

a questo punto credo di essre io a non saper leggere il BNF. Oppure come dice riko, devo trovare il documento completo...
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Messaggioda Blackfede » ven feb 29, 2008 10:32 pm

Allora tu voi sapere che cosa vuole dire quel tag? Non vuole dire nulla, semplicemente ti rimanda alla regole di sintassi che descrivono quell'elemento che tu stai considerando. A volte nelle grammatiche non vengono "modulati" tutti gli aspetti di in linguaggio, per evitare una eccessiva complicazione. Immagino sia questo il caso. Prendi per esempio questo pezzo

Codice: Seleziona tutto
Ada_host_identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)

<C_host_identifier> ::=  !! <EMPHASIS>(See the Syntax Rules.)

<COBOL_host_identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)

<Fortran_host_identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)

<MUMPS_host_identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)

<Pascal_host_identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)

<PL/I_host_identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)


Desctive chiaramente che un Pascal_host_identifier (per sempio) e` definito secondo le regole della sintassi del PASCAL. E cosi via per gli altri linguaggi!

Quando parla di <space> ti rimanda al charset, quando invece parla di <identifier_start> ti rimanda alla sintassi dell'SQL. Quindi devi trovare una sintassi SQL e leggere quali sono gli identificatori validi. Per esempio:
http://developer.mimer.com/documentatio ... Rules.html
qui nella sezione "Identificatori" dice chiaramente:
SQL identifiers (except for delimited identifiers) must begin with a letter or one of the special characters $ or #, and may only contain letters, digits and the special characters $, # and _.


Chiaro ora?
I troll sono solo dei dementi che finisco in /dev/null
-------------------------------------------
I video giochi non influenzano i bambini. Voglio dire, se Pac-man avesse influenzato la nostra generazione, staremmo tutti saltando in sale scure, masticando pillole magiche e ascoltando musica elettronica ripetitiva...e dopo qualche anno ci furono i rave party!
Avatar utente
Blackfede

Eroe
 
Messaggi: 1227
Iscritto il: gio gen 16, 2003 10:18 am
Località: Parma

Messaggioda riko » lun mar 03, 2008 12:46 pm

Quoto interamente Blackfede. E' proprio così IMHO.

Non dimentichiamo inoltre che una grammatica libera dal contesto *NON* è in grado di descrivere la grammatica di un tipico linguaggio di programmazione. Eh già. Ci si avvicina, ma per il tutto completo ci vuole una grammatica contestuale.

Esercizio per Blackfede: Dimostrare che la grammatica di Pascal/C non può essere espressa interamente come una grammatica libera dal contesto.

Traccia: l'idea è quella che un identificatore è valido se e solo se è stato precedentemente dichiarato. Se interessa posso ulteriormente formalizzare l'esercizio. Non è affatto difficile e molto istruttivo.
-enrico
fibs = 0 : 1: [ a + b | (a, b) <- zip fibs (tail fibs) ]


Akropolix: Community OFF-TOPIC di IKSnet
http://www.akropolix.net/forum

"se do da mangiare a un affamato mi dicono che sono un santo, se mi chiedo perch? ? affamato mi dicono che sono un comunista" (Helder C?mara, Arcivescovo di Recife)
Avatar utente
riko

Supremo
 
Messaggi: 3329
Iscritto il: gio mar 04, 2004 4:28 pm
Località: Chiba City

Messaggioda Blackfede » lun mar 03, 2008 4:32 pm

riko ha scritto:Esercizio per Blackfede: Dimostrare che la grammatica di Pascal/C non può essere espressa interamente come una grammatica libera dal contesto.

Traccia: l'idea è quella che un identificatore è valido se e solo se è stato precedentemente dichiarato. Se interessa posso ulteriormente formalizzare l'esercizio. Non è affatto difficile e molto istruttivo.


Facile ossevare che questo e` un'aspetto tipico delle grammatiche contestuali, in quanto la precedente dichiarazione deve essere codificata nel membro sx della produzione, uscendo cosi dalla grammatica CF. :scherza:
I troll sono solo dei dementi che finisco in /dev/null
-------------------------------------------
I video giochi non influenzano i bambini. Voglio dire, se Pac-man avesse influenzato la nostra generazione, staremmo tutti saltando in sale scure, masticando pillole magiche e ascoltando musica elettronica ripetitiva...e dopo qualche anno ci furono i rave party!
Avatar utente
Blackfede

Eroe
 
Messaggi: 1227
Iscritto il: gio gen 16, 2003 10:18 am
Località: Parma

Messaggioda riko » gio apr 10, 2008 8:19 pm

Blackfede ha scritto:Facile ossevare che questo e` un'aspetto tipico delle grammatiche contestuali, in quanto la precedente dichiarazione deve essere codificata nel membro sx della produzione, uscendo cosi dalla grammatica CF. :scherza:


Esattamente.
-enrico
fibs = 0 : 1: [ a + b | (a, b) <- zip fibs (tail fibs) ]


Akropolix: Community OFF-TOPIC di IKSnet
http://www.akropolix.net/forum

"se do da mangiare a un affamato mi dicono che sono un santo, se mi chiedo perch? ? affamato mi dicono che sono un comunista" (Helder C?mara, Arcivescovo di Recife)
Avatar utente
riko

Supremo
 
Messaggi: 3329
Iscritto il: gio mar 04, 2004 4:28 pm
Località: Chiba City


Torna a Tecnologia, internet, coding

Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti