[alg] Die definitie-pseudocodes, die je vaak in RFC's ziet

Pagina: 1
Acties:

  • muba
  • Registratie: April 2002
  • Laatst online: 19-10-2013

muba

Prince of Persia!

Topicstarter
(weet niet heel zeker of het wel hier thuishoort).

Soms zie je in bijvoorbeeld een RFC staan hoe een bepaalde regel opgemaakt zou moeten worden, bijvoorbeeld:

(let op, dit is dus een voorbeeld! ik wil het niet gaan hebben over deze specifieke RFC)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    disposition := "Content-Disposition" ":"
                    disposition-type
                    *(";" disposition-parm)

     disposition-type := "inline"
                       / "attachment"
                       / extension-token
                       ; values are not case-sensitive

     disposition-parm := filename-parm
                       / creation-date-parm
                       / modification-date-parm
                       / read-date-parm
                       / size-parm
                       / parameter

     filename-parm := "filename" "=" value
     <knip>


Goed, de basis begrijp ik. Allereerst geef je de naam op van hetgene dat je definieert en je geeft aan met := dat je dat dus gaat doen. (r. 1; `disposition := `).
Dan volgt, na de := een reeks tekens die aangeeft hoe het eruit moet komen te zien. Dingen die er letterlijk in voor moeten komen, staan tussen dubbele aanhalingstekens. Dingen die verwijzen naar een andere definitie staan er zonder aanhalingstekens.

De eerste vraag [betreft r. 1 en r. 17]: waarom staat de dubbele punt niet meteen achter `Content-Disposition`? `Content-Disposition` en de dubbele punt staan beiden appart tussen aanhalingstekens, terwijl je het toch ook zou kunnen schrijven als `"Content-Disposition:"`?
Wat betreft r. 17: hier gaat het natuurlik om `filename` en `=`.

De tweede vraag [betreft r. 3]: wat betekend het als een deel van de definitie tussen *( en ) staat?

Als je definitie uit OF het een, OF het ander bestaat (OF *nog* meer andere mogelijkheden natuurlijk), kan je dat aangeven met een slash. Blijkbaar dient er dan een keuze gemaakt te worden tussen de aangegeven mogelijkheden.

De derde vraag: [betreft r. 6-7 en r. 11-15]: klopt het dat er een keuze gemaakt moet worden tussen de dingen die worden gescheiden door een slash?

En blijkbaar kan je commentaar geven door te beginnen met een puntkomma.

Oke, ik snap dat het geen echte taal is dit, maar er zullen toch wel conventies of afspraken oid zijn waarin staat hoe je zo'n definitie als dit moet opstellen, en wat de symbolen beteken.

De vierde vraag: welke symbolen zijn nog meer gebruikelijk? En wat beteken ze?

Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea


  • Daedalus
  • Registratie: Mei 2002
  • Niet online

Daedalus

Moderator Apple Talk

Keep tryin'

Dit lijkt verdacht veel op EBNF (Extended Backus-Naur Form). EBNF is een manier om de syntax van een (programmeer)taal te beschrijven. Er is een ISO standaard (ISO 14977) die EBNF defineert.

“You know what I've noticed Hobbes? Things don't bug you if you don't think about them. So from now on, I simply won't think about anything I don't like, and I'll be happy all the time!” | 宇多田ヒカル \o/


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01:00

.oisyn

Moderator Devschuur®

Demotivational Speaker

Die notatievorm heet EBNF en wordt vooral gebruikt voor grammatica's
waarom staat de dubbele punt niet meteen achter `Content-Disposition`?
omdat een lexical analyser meestal woorden en leestekens van elkaar onderscheid, en spaties overslaat
wat betekend het als een deel van de definitie tussen *( en ) staat?
Dat dat gedeelte tussen de haakjes 0 of meer keer mag voorkomen
klopt het dat er een keuze gemaakt moet worden tussen de dingen die worden gescheiden door een slash?
Ik denk het wel, meestal wordt hier de | voor gebruikt overigens

En afgezien dat er idd een standaard voor is wordt ie maar weinig nageleefd en is het vaak gewoon een variant erop, de := is bijvoorbeeld weleens gewoon een : of een ->, en comments gaan ook weleens tussen /* ... */ of achter een #. Een non-terminal wordt ook vaak afgesloten met ;

[ Voor 15% gewijzigd door .oisyn op 24-02-2004 23:25 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • TrickShot
  • Registratie: Februari 2003
  • Laatst online: 14-12-2023

TrickShot

Veel shots... weinig tricks.

Ik ben zelf niet bekend met die taal, maar hier zijn de antwoorden zoals ik denk dat ze zijn:
vraag 1
Omdat er geen spaties mogen worden weergegeven in accolades, omdat dit waarschijnlijk het scheidingsteken is dat gebruik wordt tussen de 'parameters'.(denk aan dos)
vraag 2
*() geeft aan dat het deel tussen haakjes nul of meerdere keren kan voorkomen (0..*).
vraag 3
Deze vraag heb je zelf al beantwoord, de '/' scheidt de waardes die een parameter kan aannemen.
vraag 4
geen idee, zie regel 1 van deze post ;)

[ Voor 3% gewijzigd door TrickShot op 24-02-2004 23:25 ]

Athlon 2500+ @ 2230 MHz, 512 MB 3200 kingston, 2 x sata maxtor 120 GB, 1 WD 80 GB, Ti4200, Antec Sonata


  • muba
  • Registratie: April 2002
  • Laatst online: 19-10-2013

muba

Prince of Persia!

Topicstarter
Hmm... vooral dat ene PDF'je is erg bruikbaar geloof ik!

Dank je wel!

Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea