Domanda

Ho una domanda da un test in una classe Linguaggi di programmazione che mi è confusa.

Dare una grammatica context-free per generare la seguente lingua

L = {a i b j c k | 0 <= i <= j <= i + k}

Sono completamente familiarità con questa notazione. Non posso sembrare trovare qualche cosa nel libro o miei appunti su di esso, e non ho idea di come interrogare google per la risposta.

Se si riconosce, come si chiama e cosa significa?

È stato utile?

Soluzione

a ^ ho appena significa un ripetuto i tempi. Quindi un ^ 2 = aa, b ^ 10 = bbbbbbbbbb, ecc

Altri suggerimenti

Spesso,

  • {} significa "il set di"
  • mezzi | "tale che"

Non ho idea di che cosa a, b, c sono. i e j sono numeri non negativi, essendo maggiore o uguale a zero. Convenzionalmente, quelle lettere sono riservati per gli interi. Il fatto che

i <= i + k

significa che k è anche non negativo.

Se a, b e c sono reali, quindi mi sembra che L è solo l'insieme dei numeri reali. Tuttavia, sembra che un modo molto artificiosa ed elaborata di specificarlo. Sarebbe qualcosa di simile complotto di Dr. Evil di uccidere Austin Powers.

In modo da avere "il set di un al potere i volte b per il tempo di potere j c al j potere tale che i, j, k sono positivi, e j è maggiore o uguale ai ..." e così via.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top