„Szerkesztő:Beginner 25/Munka1” változatai közötti eltérés

Tartalom törölve Tartalom hozzáadva
Beginner 25 (vitalap | szerkesztései)
Beginner 25 (vitalap | szerkesztései)
244. sor:
{{Lektor}}
 
'''Formális nyelv''' a [[matematika]], a [[logika]] és a [[számítástechnikainformatika]] számára egy véges [[abcábécé]]ből generálható, véges hosszúságú szavak (pl. [[karakter]] [[string]]ek, jelsorozatok), [[halmaz]]a, amelyekkel a ''formális nyelvek elmélete'' foglalkozik. Meg kell jegyezni, hogy több területen (tudomány, jog, nyelvészet stb.), a ''formális nyelv'' alatt egy, a napi beszédtől eltérő, udvarias, megfontolt, körülíró jellegű, túlzottan modoros kifejezési módot értenek.
 
A következőkben a formális nyelvet a formális nyelvek elmélete szerinti értjük, és minden esetben szigorúan csak írott nyelvről beszélünk, ezért a jelsorozat elemei megjeleníthető, nyomtatható karakterek.
 
Legyen egy abcábécé a <math>\left \{ a , b \right \}</math>, és az abcábécé alapján létrehozott jelsorozat legyen például <math>ababba</math>.
 
Egy tipikus nyelv lehet a fenti abcábécé alapján például az, amely az összes olyan jelsorozatot tartalmaza, amelyekre igaz, hogy ugyanannyi <math>a</math> szimbólumból és <math>b</math> szimólumból állnak.
 
Az '''üres szó''' (ami nem más, mint egy nulla hosszúságú jelsorozat) megengedett és gyakran az <math>e</math>, <math>\epsilon</math> vagy a <math>\Lambda</math> jelöli. Bár véges halmaz az abcábécé, és a belőle alkotható jelsorozatok hossza is véges, egy nyelvhez végtelenül sok jelsorozat tartozhat (mivel a szavak hossza nincs korlátozva).
 
Néhány példa formális nyelvekre:
268. sor:
* Azon kérdések halmazából, amelyekre IGEN/NEM válsz adható, azok a kérdések, amelyekre IGEN a válasz &mdash; lásd [[döntési probléma]].
 
Néhány művelettel új nyelv állítható elő adott nyelvből vagy nyelvekből. Tegyük fel, hogy <math>L_{1}</math> és <math>L_{2}</math> közös abc-nábécén értelmezett nyelvek.
 
* A ''concatenation'' &mdash; <math>L_{1}L_{2}</math> &mdash; ''konkatenáció'' vagy ''összekapcsolás'' művelet előllítja az összes <math>vw</math> formájú jelsorozatot, ahol <math>v</math> egy <math>L_{1}</math>-ből származó jelsorozat, és <math>w</math> a <math>L_{2}</math>-ből származó jelsorozat.
274. sor:
* A ''union'' &mdash; <math>L_1 \cup L_2</math> &mdash; ''egyesítés'' művelet az <math>L_{1}</math> és <math>L_{2}</math> nyelvre előállítja az összes olyan jelsorozatot, amelyek vagy <math>L_{1}</math>-ben vagy <math>L_{2}</math>-ben léteznek.
* A ''complement'', ''komplementer képzés'' vagy ''kiegészítő képzés'' művelet az <math>L_{1}</math> nyelvre előállítja az összes olyan jelsorozatot, amelyek az <math>L_{1}</math> nyelvben nem léteznek.
* TheA ''right quotient'' &mdash; <math>L_{1}/L_{2}</math> &mdash; ''különbségképzés'' művelet az <math>L_{1}</math> és <math>L_{2}</math> nyelvek között előállítja az összes olyan <math>L_{2}</math>-ben létező <math>w</math> jelsorozatot, amely jelsorozatok az <math>L_{1}</math> nyelvben <math>vw</math> formában fordulnak elő (ahol <math>v</math> jelsorozat az <math>L_{1}</math> nyelvben létezik).
* A ''[[Kleene star]]'' &mdash; <math>L_{1}^{*}</math> &mdash; a [[Kleene csillag]] művelet előállítja az összes <math>w_{1}w_{2}...w_{n}</math> formában leírható jelsorozatot, ahol a <math>w_{i}</math> jelsorozat az <math>L_{1}</math> nyelvben létezik és <math>n \ge 0</math>). Meg kell jegyezni, hogy az <math>n = 0</math> értékadás megengedett, tehát az <math>\epsilon</math> üres jelsorozat része az <math>L_{1}</math> nyelvnek.
* A ''reverse'' &mdash; <math>L_{1}^{R}</math> &mdash; ''fordítottja'' művelet előállítja az összes <math>L_{1}</math> nyelvben létező jelsorozat fordítottját ( pl. az <math>ababba</math> jelsorozat fordítottja a <math>abbaba</math> jelsorozat).