Az informatikában az ábécé egy véges, nem üres halmaz. Az ábécé elemeit az ábécé betűinek vagy szimbólumainak nevezzük. A formális nyelvek és automaták elméletében a szimbólumok atomi egységek: egy szimbólum nem bontható kisebb részekre anélkül, hogy új szimbólumokat definiálnánk.
Példák ábécékre: { - , ⋅ } {\displaystyle \{-,\cdot \}}, amelyet a morzejeleknél használhatunk, vagy {begin, if, else, for, while}, amelyek egy programozási nyelv kulcsszavai lehetnek. Az ábécé lehet nagyon egyszerű (például a szokásos bináris ábécé) vagy összetettebb (például egy adott írásrendszer karakterkészlete, kódkészlet).
A természetes számok halmaza nem ábécé, mivel nem véges; az ábécények követelménye a véges elemszám. Ebből következik, hogy a Unicode vagy az ASCII mint karakterkódok halmaza gyakorlatilag ábécének tekinthető, mert véges számú szimbólumot tartalmaz (bár nagyobb méretűek), míg a természetes számok végtelenek.
Az informatikában leggyakrabban használt ábécé a {0,1}. Ezt nevezik bináris ábécének, mert két szimbólumot tartalmaz. Egy ábécéből karakterláncot (vagy szót) lehet alkotni: a karakterlánc az ábécé betűinek véges sorozata. Például egy {0,1}-feletti 5 hosszúságú karakterlánc a 01101.
A üres karakterlánc az a karakterlánc, amely nem tartalmaz betűket (gyakran írják λ {\displaystyle \lambda } ). Az üres karakterlánc bármely ábécé feletti karakterlánc, és fontos szerepe van a műveletek algebrai tulajdonságaiban.
Műveletek és jelölések
Legyen egy Σ {\displaystyle \Sigma } nevű ábécé. Ekkor a Σ-ből létrehozható összes karakterlánc halmazát a következő módon jelöljük: Σ ∗ {\displaystyle \Sigma ^{*}}
. Ezt nevezzük Σ Kleene-csillagának (vagy Kleene-zárványának), nevét Stephen Cole Kleene matematikusról kapta.
Fontos jelölések és tulajdonságok:
- Concatenáció (összefűzés): ha w és v karakterláncok, akkor wv jelöli az egymás után fűzött karakterláncot.
- Hossz: |w| a w karakterlánc hossza (a benne lévő szimbólumok száma). Például |01101| = 5.
- Σ^n: az Σ-beli szavak halmaza, melyek pontosan n hosszúak. Különösen Σ^0 = {λ} az üres szó halmaza.
- Σ^*: az összes véges hosszúságú szó halmaza Σ-ből: Σ^* = ⋃_{n≥0} Σ^n. Tartalmazza az üres szót is.
- Σ^+ (Kleene plusz): az üres szót nem tartalmazó összes nem üres szó: Σ^+ = ⋃_{n≥1} Σ^n = Σ^* \ {λ}.
Például egy kettős ábécé ({0,1}) Kleene-csillaga a következő: { λ , 0 , 1 , 00 , 01 , 10 , 11 , 000 , 001 , ... . } {\displaystyle \{\lambda ,0,1,00,01,10,11,000,001,...\}} . A 001 utáni három pont azt mutatja, hogy az ábécé Kleene-csillaga általában végtelen halmaz, ha Σ nem üres.
Formális nyelvek és ágensek
A formális nyelv definiálható úgy, mint az Σ^* egy részhalmaza: egy nyelv L ⊆ Σ^*. Egy nyelv lehet véges vagy végtelen, szabályozható (például reguláris nyelvek, kontextusmentes nyelvek) vagy nem. A nyelvek vizsgálata—például hogy felismerhető-e őket véges automatával vagy generálható-e adott típusú nyelvtannal—az elméleti számítástudomány központi problémái közé tartozik.
Megjegyzések és gyakorlati példák:
- Az ábécé szimbólumai tetszőleges jelek lehetnek: bitek (0,1), betűk, írásjelek vagy programozási nyelvek kulcsszavai. A formális elméletben ezek atomi egységek, nem karakterláncokból álló szóként értelmezendők.
- A morzejelek például egy kétszimbólumos ábécével írhatók le (pont és vonal), míg egy programozási nyelv lexikai elemzése során gyakran egy speciális (véges) token-ábécét használunk.
- Az ábécék és a Σ^* szerkezetének ismerete elengedhetetlen a formális nyelvek, a véges automaták és más számítástudományi modelljeinek megértéséhez. Ezek a fogalmak segítenek eldönteni, mi számítható és milyen hatékonysággal.
Összefoglalva: az ábécé a formális nyelvek alapja — egy véges, nem üres szimbólumhalmaz —, amelyből karakterláncok (szavak) alkothatók. A Kleene-csillag (Σ^*) pedig az így létrejövő összes véges szó halmazát adja, és központi szerepet játszik a nyelvek és automaták elméletében.