Arvutiteaduses on tähestik piiratud mittetühi hulk. Tähestiku elemente nimetatakse tähestiku tähtedeks või sümboliteks. Tavaliselt tähistatakse tähestikku suure kreeka tähega Σ {\displaystyle \Sigma } {\displaystyle \Sigma }.

Näide tähestiku kohta on { - , } {\displaystyle \{-,\cdot \}}{\displaystyle \{-,\cdot \}}, mida võib kasutada morsekoodi jaoks, või {begin, if, else, for, while}, mis võivad olla programmeerimiskeele võtmesõnad. Teine tavaline näide on binaarne tähestik {0,1}, mis on aluseks arvutipõhisele kodeerimisele.

Loomulike arvude hulk ei ole tähestik, sest see ei ole lõplik (see on lõpmatu hulk). Tähestik peab olema lõplik ja mittetühi.

Arvutiteaduses kõige sagedamini kasutatav tähestik on {0,1}. Seda nimetatakse binaarseks tähestikuks, sest see sisaldab kahte sümbolit. Tähestiku tähtedest moodustatav lõplik järjestus on string (või sõna). See on tähestiku tähtede piiratud jada. Näiteks on üle tähestiku {0,1} string 01101, mille pikkus on 5.

Tühi string on string, mis ei sisalda ühtegi tähte; seda kirjutatakse sageli kujul λ {\displaystyle \lambda }{\displaystyle \lambda } (sama tähistust kasutatakse mõnikord ka märgiga ε). Tühi string on string üle mis tahes tähestiku, sest see ei kasuta mingeid tähti.

Kui meil on tähestik nimega Σ {\displaystyle \Sigma } {\displaystyle \Sigma }, siis kõiki sellest tähestikust moodustatavaid lõplikke stringe tähistatakse kujuga Σ ∗ {\displaystyle \Sigma ^{*}} {\displaystyle \Sigma ^{*}}. Seda hulka nimetatakse Σ {\displaystyle \Sigma } Kleene'i täheks (või Kleene'i sulgemiseks). See mõiste on nime saanud matemaatiku Stephen Cole Kleene järgi.

Kleene'i sulgemine sisaldab alati tühi stringi ning kõiki erineva pikkusega sõnu. Näiteks kaheelemendilise tähestiku Kleene'i täht on { λ , 0 , 1 , 00 , 01 , 10 , 11 , 000 , 001 , . . . . } {\displaystyle \{\lambda ,0,1,00,01,10,11,000,001,...\}} {\displaystyle \{\lambda ,0,1,00,01,10,11,000,001,...\}}. Kolm punkti pärast 001 näitavad, et hulk on lõpmatu ja me ei saa kõiki elemente ära loetleda.

Seotud notatsioonid ja omadused:

  • Σ^+ tähistab kõiki mittetühje stringe üle Σ (see on Kleene'i tähe Σ^* ilma tühi stringita).
  • Stringi pikkust tähistatakse tavaliselt |w|, kus w on sõna; näiteks |01101| = 5.
  • Kahe stringi a ja b konkateneerimine tähistatakse ab ja tähendab, et b lisatakse a lõppu.
  • Kui L ⊆ Σ^*, siis L nimetatakse keeleks üle tähestiku Σ — formaalne keel on lihtsalt mingi stringide hulk.

Tähestikud ja nende Kleene'i sulgemised on arvutiteaduses ja formaalsetes keeltes keskse tähtsusega: neid kasutatakse regulaaravaldiste, lõplike automaatide, grammatika­teooria, keelte klassifitseerimise ning otsustusprobleemide uurimisel. Tähestike abil saab täpselt kirjeldada, millised sõnad/mõtted on genereeritavad, millised struktuurid on tuvastatavad ja millised ülesanded on arvutustehniliselt lahendatavad või lahendamatud.