From Wikipedia, the free encyclopedia
Формални језик је скуп речи, то јест коначних ниски слова, или симбола. Скуп из кога се ова слова узимају се назива азбуком над којом је језик дефинисан. Формални језик се често дефинише помоћу формалне граматике. Формални језици су чисто синтаксни појам, тако да није обавезно да постоји неко значење повезано са њима. Како би се разликовале речи које припадају језику од произвољних речи над датом азбуком, речи које припадају језику се понекад називају добро-формираним речима (или када се ради о применама у логици, добро-формираним формулама).
Формални језици се проучавају у областима логике, рачунарства и лингвистике. Њихова најважнија примена је у прецизном дефинисању синтаксно исправних програма за програмски језик. Грана математике и рачунарства која се бави само синтаксним аспектима таквих језика, то јест њиховим структурним обрасцима, се назива теорија формалних језика.
Мада то у ужем смислу није део језика, речи формалног језика често имају и семантичку димензију. У пракси је ово увек у врло чврстој вези са структуром језика, и формална граматика (скуп правила за извођење који рекурзивно описују језик) може да помогне у разумевању значења (добро-формираних) речи. Добро познати примери за ово су дефиниција истине Тарског у оквирима Т-схеме за логику првог реда, и генератори компајлера као што су lex
и yacc
.
Азбука, у контексту формалног језика може да буде било који скуп, мада често има смисла да се користи азбука у уобичајеном смислу речи, или општије скуп карактера, као што је аски. Азбуке су често бесконачне; на пример логика првог реда је често изражена коришћењем азбуке коај поред симбола ∧, ¬, ∀ и заграда садржи и бесконачно много елемената x0, x1, x2, … који врше функцију променљивих. Елементи азбуке се називају њеним словима.
Реч над азбуком може да буде било који коначни низ или ниска, њених слова. Скуп свих речи над азбуком Σ се обично означава као Σ* (Клинијева звезда). За било коју азбуку постоји само једна реч дужине 0, празна реч, која се често означава симболима , или . Конкатенацијом (дописивањем) могу да се комбинују две речи како би дале нову реч, чија је дужина једнака збиру дужина почетних речи. Резултат конкатенације било које речи са празном речју је та иста реч.
У неким применама, посебно у логици, азбука је позната и као речник а речи су познате као формуле или реченице; ово прекида метафору слово/реч и замењује је метафором реч/реченица
Формални језик над азбуком је само подскуп од , то јест, скуп речи над азбуком.
У рачунарству и математици, који се не баве природним језицима, придев формални се често не користи већ се подразумева.
Иако се теорија формалних језика углавном бави формалним језицима који су описани неким синтаксним правилима, стварна дефинициа формалног језика је управо она дата изнад: (могуће бесконачан) скуп ниски коначне дужине. Ништа више од тога, ништа мање од тога. Међутим, у пракси постоји много језика који могу да буду описани правилима, као што су регуларни језици или контекстно-слободни језици. Појам формалне граматике може бити ближи интуитивном појму језика, описаног синтаксним правилима. Злоупотребом дефиниције, за одређени формални језик се често сматра да поседује формалну граматику која га описује.
Следећа правила описују формални језик над азбуком Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, =}:
По овим правилима, ниска 23+4=555 је у , али ниска =234=+ није. Овај формални језик изражава природне бројеве, добро формиране исказе сабирања, и добро формиране једнакости сабирања, али он изражава само како ови изрази изгледају (њихову синтаксу), а не говори ништа о њиховом значењу (семантици). На пример, нигде у овим правилима не постоји никаква назнака да 0 представља број нула или да + означава сабирање.
Код коначних језика је могуће просто набројати све добро формиране речи. На пример, можемо да опишемо језик као
Међутим, и над коначном (непразном) азбуком као што је постоји бесконачно много речи: , , , , …. Дакле, формални језици су обично бесконачни, а описивање бесконачног формалног језика није једноставно као записивање Следе неки примери формалних језика:
Теорија формалних језика се ретко бави појединачним језицима (осим као примерима), већ се углавном бави проучавањем различитих врста формализама за описивање језика. На пример, језик може да буде дат као
Типична питања која се постављају у вези са овим формализмима су:
Врло често је одговор на овакве проблеме одлучивања: то не може да се уради, или: то би било изузетно скупо (са прецизном одредницом шта се тачно мисли под скупо). Стога, теорија формалних језика је главна област примене теорије израчунљивости и теорије комплексности.
Извесне операције над језицима су уобичајене. Оне укључују стандардни скуп операција као што су унија, пресек и комплемент. Друга класа операција су операције над нискама које се примењују на елементе.
Примери: нека су и језици над неком уобичајеном азбуком.
Такве операције над нискама се користе за изучавање својстава затворења класа језика. Класа језика је затворена у односу на одређену операцију, када ако се операција примени на језике те класе, увек даје језике који припадају истој тој класи. На пример, контекстно-слободни језици су затворени у односу на унију, конкатенацију и пресек са регуларним језицима, али нису затворени за пресек или комплемент.
Операција | регуларан | ДКСЈ | КСЈ | КОЈ | рекурзиван | р. п. | |
унија | Да | Не | Да | Да | Да | Да | |
пресек | Да | Не | Не | Да | Да | Да | |
комплемент | Да | Да | Не | Да | Да | Не | |
конкатенација | Да | Не | Да | Да | Да | Да | |
Клинијева звезда | Да | Не | Да | Да | Да | Да | |
хомоморфизам | Да | Не | Да | Не | Не | Да | |
-слободан хомоморфизам | Да | Не | Да | Да | Да | Да | |
супституција | Да | Не | Да | Да | Не | Да | |
инверзни хомоморфизам | Да | Да | Да | Да | Да | Да | |
обрат | Да | Не | Да | Да | Да | Да | |
пресек са регуларним језиком | Да | Да | Да | Да | Да | Да |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.