Формален јазик

Во математиката, логиката и информатиката, формален јазик е јазик кој е дефиниран по прецизни математички формули.
Формалниот јазик L е карактеризиран како множество од F конечен број на елементи изградени од множество на симболи A.
Математички, формалниот јазик е неподредениот пар L={A,F}.
Постојат и други алтернативни опции на начини на кои може да се гледа на формалните јазици:

 Збир на зборови
 Збир на реченици

Во првиот случај множеството А се нарекува азбука L, а елементите на F се нарекуваат зборови.
Во вториот случај множеството А се нарекува лексикон на вокабуларот F, додека елементите на F се нарекуваат реченици.

Математичката теорија на формалните јазици се нарекува теорија на формални јазици.

Иако вообичаено е да се слуша терминот формални јазици надвор од математиката, логиката и компјутерските науки кога се мисли на начин на изразување кое е стилизирано и прецизно во секојкдневниот говор, но смислата на формалните јазици е строго дефинирана според теоријата за формални јазици.

Како пример за формални јазици може да биде, азбука од типот на {a,b} и еден од стринговите на азбуката може да биде abbaababa.

Еден типичен јазик над таа азбука може да биде множество од стрингови кои имаат ист број на a и b.

 Примери 
 Множество на сите зборови составени од a,b;
 Множество {a^n}, каде што n е природен број и a^n е стринг за кој се мисли дека a се повторува n пати;
 Конечен јазик, како на пример {{a,b}{a,aa,bba}}
 Множество на синтаксички точни програми дадени во некој програмски јазик или
 Множество на влезови за конкретна Турингова машина.

Формалните јазици можат да бидат специфицирани на најразлични начини како:

 Стрингови создадени само од одредена формална граматика (хиерархија на Чомски);
 Стрингови опишани со регуларни изрази;
 Стрингови прифатливи од некои автомати, како Тјуринговата машина или конечните автомати;
 Стрингови одредени од да/не одговори.

 Операции 
 Конкатенација- L1 L2 ги содржи сите стрингови во форма vw каде што v е стринг од L1 a w е стринг од  L2;
 Пресек- L1∩ L2 резултантниот јазик е оној јазик кој ги содржи сите ониe стрингови што ги има во  L1  и  L2;
 Унија- L1 U L2, резултантниот јазик ги содржи сите стрингови кои ги има и во  L1  и во  L2;
 Комплемент-С L1  ги содржи сите стрингови од азбуката кои не се во  L1;
 Клини оператор- L1* ги содржи сите стрингови кои можат да бидат напишани во формата w1 w(2….) wn каде што w<sub>i</sup> U L1 и n ≥ 0.
Се вклучува и празниот стринг ε.

 L1^R- ги содржи сите обратни стрингови од L1.

 Наводи 
 Hopcroft, J. & Ullman, J. (1979). Introduction to Automata Theory, Languages, and Computation. Addison-Wesley. ISBN 0-201-02988-X. 
 Helena Rasiowa and Roman Sikorski (1970). The Mathematics of Metamathematics, III изд., PWN. , chapter 6 Algebra of formalized languages.
 Rozemberg, G. & Salomaa, A. (уред.) (1979). Introduction to Automata Theory, Languages, and Computation. Addison-Wesley. ISBN 978-3-540-61486-9.

Категорија:Информатика
Категорија:Сметачи
Категорија:Програмски јазици
Категорија:Математичка логика