در نظریهٔ زبان‌های صوری، هر مجموعهٔ ناتهی را **الفبا** (الفبای صوری) می‌نامیم و اعضای آن را (مثل حروف، ارقام یا `char`) **نمادهای** آن الفبا (یا حروف صوری آن) هستند.

این نمادها می‌توانند مجموعه‌ای از واج‌ها باشند (مثل IPA). همچنین فونت‌ها و قلم‌های رایانه (مجموعه‌ای از گلیف‌ها) را نیز می‌توان طبق این تعریف الفبا نامید. الفبا با این تعریف در طیف وسیعی از زمینه‌ها از جمله منطق، ریاضیات، علوم کامپیوتر و زبان‌شناسی استفاده می‌شود. کدگذاری نویسه‌ها مثل ASCII از نمونه‌های کاربرد در کامپیوتر است.

یک الفبا معمولاً با \Sigma  (سیگما بزرگ)، \Gamma  (گاما بزرگ) یا {\displaystyle {\mathcal {A}}} نمایش داده می‌شود. اندازهٔ الفبا کاردینالیتهٔ مجموعه است و ممکن است متناهی، شمارا یا حتی ناشمارا باشد.

الفبا در نظریه زبان‌ها و نظریه ماشین‌ها مهم هستند. برای تعریف اتوماتاهایی مثل DFA لازم است الفبایی مشخص کنیم تا رشته‌های ورودی آن اتوماتا از آن رشته‌ها باشند.

رشته
----

یک ***رشته** (یا کلمهٔ صوری) در یک الفبا* به صورت «دنباله‌ای از حروف الفبا» تعریف می‌شود. به عنوان مثال، به کمک (الفبای شامل) حروف «الف» تا «ی» می‌توان کلمات فارسی مانند «آب» ایجاد کرد. یک الفبای رایج، {\displaystyle \Sigma =\{0,1\}} **الفبای باینری** است و «{\displaystyle w=00101111}» نمونه ای از یک رشته باینری است. یک رشته معمولاً با {\displaystyle u,v,w,x,y} نمایش داده می‌شود. **طول رشته** {\displaystyle |w|} تعداد نمادهای درونش است. **رشتهٔ تهی** با طول صفر را با \varepsilon، \epsilon  (اپسیلون کوچک) یا \lambda (لاندا کوچک) نمایش می‌دهیم.

اغلب برای خوانایی لازم است که نمادها را در یک الفبا به یک علامت محدود کنیم تا تفسیر هر رشته بدون ابهام باشند. برای مثال، اگر الفبای دو عضوی {\displaystyle \Gamma =\{0,00\}} باشد، رشتهٔ {\displaystyle 000} مبهم است، زیرا مشخص نیست که {\displaystyle 0+0+0} است یا {\displaystyle 0+00} یا {\displaystyle 00+0}.

### اعمال روی رشته‌ها

#### الحاق رشته‌ها

مقالهٔ اصلی: الحاق (علوم رایانه)
عملگر الحاق دو رشته v و w با نماد ضرب {\displaystyle v\cdot w} نمایش می‌دهیم. البته معمولاً این نماد را حذف می‌کنیم و الحاق را به صورت {\displaystyle vw} نشان می‌دهیم.

به عنوان مثال الحاق {\displaystyle v=01} و {\displaystyle w=11} برابر {\displaystyle vw=0111} است.

#### توان رشته

با n بار الحاق v در خودش به {\displaystyle v^{n}=\overbrace {vv\cdots v} ^{n}} می‌رسیم. همچنین {\displaystyle v^{0}=\epsilon } تعریف می‌کنیم.

#### معکوس رشته

معکوس یک رشته u با نماد {\displaystyle u^{\mathcal {R}}} همان حروف صوری به ترتیب عکس است؛ مثلاً {\displaystyle (vw)^{\mathcal {R}}=1110}.

اگر معکوس یک رشته با خودش یکسان باشد {\displaystyle u^{\mathcal {R}}=u} به آن رشته پالیندروم می‌گوییم.

### زیررشته

اگر {\displaystyle z=vwu} می‌گوییم w (و همچنین {\displaystyle v,\ u}) زیررشتهٔ z است ({\displaystyle v,\ u} دلخواه و شاید تهی). مثلاً «شنبه» زیررشتهٔ «چهارشنبه‌سوری» است.

به v پیشوند z و به u پسوند z می‌گوییم. به اضافه اگر {\displaystyle v\neq z} باشد آن را پیشوند اکید z می‌نامیم.

### ترتیب رشته‌ها

اگر برای حروف الفبا یک *ترتیب الفبایی* (مثل {\displaystyle a\leqslant b\leqslant \cdots }) تعریف شده باشد می‌توانیم برای رشته‌ها نیز ترتیب تعریف کنیم. ترتیب لغت‌نامه‌ای  **(به انگلیسی: lexicographic order)** همان ترتیبی است که در فرهنگ‌نامه‌ها استفاده می‌شود. با یک تغییر جزئی در قوانین به ترتیب  **(به انگلیسی: shortlex order)** می‌رسیم. در این ترتیب رشته‌های کوتاهتر باید جایگاه کمتری داشته باشند؛ مثلاً در الفبای {\displaystyle \Sigma =\{0,1\}}:

در ترتیب lexicographic: {\displaystyle \epsilon <0<00<000<01<1<10<11}

در ترتیب shortlex: {\displaystyle \epsilon <0<1<00<01<10<11<000}

توان الفبا
----------

با اعمال عمل توان بر روی یک الفبا یک زبان به دست می‌آید. اگر \Sigma  یک الفبا باشد، مجموعهٔ تمام رشته‌های به طول n بر روی الفبای \Sigma  را به صورت {\displaystyle \Sigma ^{n}} نمایش می‌دهیم؛ مثلاً اگر {\displaystyle \Sigma =\{0,1\}} باشد {\displaystyle \Sigma ^{0}=\{\epsilon \},\quad \Sigma ^{1}=\Sigma ,\quad \Sigma ^{2}=\{00,01,10,11\}}.

مجموعهٔ تمام رشته‌های با هر طول (متناهی) را بستار کلین \Sigma  می‌نامیم: {\displaystyle \Sigma ^{\*}=\bigcup \_{n\in \mathbb {N} }\Sigma ^{n}={\Sigma ^{0}\cup \Sigma ^{1}\cup \Sigma ^{2}\cup \cdots }}

هر کدام از رشته‌های عضو {\displaystyle \Sigma ^{\*}} متناهی اند ولی خود {\displaystyle \Sigma ^{\*}} شمارا و نامتناهی است. در مثال فوق {\displaystyle \Sigma ^{\*}=\{\epsilon ,0,1,00,01,10,11,\dots \}}

همچنین بستار مثبت {\displaystyle \Sigma ^{+}=\bigcup \_{n\in \mathbb {N} ^{\star }}\Sigma ^{n}=\Sigma ^{\*}\backslash \{\epsilon \}} پس {\displaystyle \Sigma ^{\*}=\Sigma ^{+}\cup \{\epsilon \}}.

مجموعهٔ تمام رشته‌های نامتناهی را با نماد {\displaystyle \Sigma ^{\omega }} نمایش می‌دهیم (توان امگا در اینجا نماد عدد اردینال است) و {\displaystyle \Sigma ^{\infty }=\Sigma ^{\*}\cup \Sigma ^{\omega }}.

جمله
----

در تعریف الفبا (هر مجموعهٔ ناتهی) هیچ محدودیتی وجود ندارد. در نتیجه مجموعه‌ای از کلمات (از الفبایی مثل \Sigma ) خود می‌تواند الفبای دیگری مثل {\displaystyle {\mathcal {A}}} فرض شود (مثلاً {\displaystyle {\mathcal {A}}=\Sigma ^{2}}). در برخی حوزه‌ها مثل منطق، الفبای صوری به عنوان *واژگان (مجموعهٔ کلمات)* و کلمات صوری به عنوان *جملات* شناخته می شوند. به عبارتی دیگر استعارهٔ حرف/کلمه را می‌شکند و استعارهٔ کلمه/جمله جایگزین آن می‌کند. به طور کلی می‌توان به عناصر (کلمات) عضو یک زبان جمله گفت.

جستارهای وابسته
---------------

* فهرست نمادهای ریاضی

منابع
-----

1. 1 2 3 4 5 6 7  *Introduction to the Theory of Computation (Third Edition)*. به کوشش Michael Sipser.
2. 1 2 3 4 5 6 7  *An Introduction to Formal Languages and Automata (Sixth Edition)*. به کوشش Peter Linz.
3. 1 2 3 4  *Introduction to Automata Theory, Languages, and Computation (Third Edition)*. به کوشش John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman.