Llenguatge formal
A matemàtiques, lògica, i ciències de la computació, un llenguatge formal és un llenguatge on els símbols primitius i regles per a unir aquests símbols estan formalment especificats.[1] Al conjunt dels símbols primitius se l'anomena l'alfabet (o vocabulari) del llenguatge, i al conjunt de les regles se l'anomena la gramàtica formal (o sintaxi). A una cadena de símbols formada d'acord amb la gramàtica se l'anomena una fórmula ben formada (o paraula) del llenguatge. Estrictament parlant, un llenguatge formal és idèntic al conjunt de totes les seves fórmules ben formades.
Per exemple, un alfabet podria ser el conjunt {a, b}, i una gramàtica podria definir a les fórmules ben formades com aquelles que tenen el mateix nombre de símbols a que b. Llavors, algunes fórmules ben formades del llenguatge serien: ab, ba, abab, ababba, etc., I el llenguatge formal seria el conjunt de totes aquestes fórmules ben formades.
Per a alguns llenguatges formals hi ha una semàntica formal que pot interpretar i donar significat a les fórmules ben formades del llenguatge. Tanmateix, una semàntica formal no és condició necessària per definir un llenguatge formal, i això és una diferència essencial amb els llenguatges naturals.
En alguns llenguatges formals, la paraula buida (és a dir, la cadena de símbols de longitud zero) està permesa, notant-se freqüentment mitjançant , o .
Exemples de llenguatges formals
[modifica]- Un conjunt de totes les paraules sobre .
- El conjunt és un nombre primer.
- El conjunt de tots els programes sintàcticament vàlids en un determinat llenguatge de programació.
- El conjunt de totes les fórmules ben formades a la lògica de primer ordre.
Especificació de llenguatges formals
[modifica]Els llenguatges formals trobareu d'una àmplia varietat de formes, com per exemple:
- Cadenes produïdes per una gramàtica formal (vegeu Jerarquia de Chomsky).
- Cadenes produïdes per una expressió regular.
- Cadenes acceptades per un autòmat, tal com una màquina de Turing.
Operacions
[modifica]Es poden utilitzar diverses operacions per a produir nous llenguatges a partir d'altres daus. Suposem que L 1 i L 2 són llenguatges sobre un alfabet comú. Llavors:
- La concatenació L1L₂ consisteix en totes aquelles paraules de la manera vw on v és una paraula de L1 i w és una paraula de L₂
- La intersecció L1 & L₂ consisteix en totes aquelles paraules que estan contingudes tant en L1 com en L₂
- La unió L1|L₂ consisteix en totes aquelles paraules que estan contingudes ja sigui en L1 o en L₂
- El complement ~ L1 consisteix en totes aquelles paraules produïdes sobre l'alfabet de L1 que no estan ja contingudes en L1
- El quocient L1/L₂ consisteix en totes aquelles paraules v per a les quals hi ha una paraula w a L₂ tals que vw es troba en L1
- L'estrella L1* consisteix en totes aquelles paraules que poden ser escrites de la manera W1W₂...Wn on tot Wi es troba en L1 i n≥0. (Noteu que aquesta definició inclou ε en qualsevol L*)
- La intercalació L1* L₂ consisteix en totes aquelles paraules que poden ser escrites de la manera v1w1v₂w₂...vnwn; són paraules tals que la concatenació v1...vn és a L1, i la concatenació w1...wn és a L₂
Una pregunta que es fa típicament sobre un determinat llenguatge formal L és com és de difícil decidir si inclou o no una determinada paraula v. Aquest tema és del domini de la teoria de la computabilitat i la teoria de la complexitat computacional.
Per contraposició al llenguatge propi dels éssers vius i en especial el llenguatge humà, considerats llenguatges naturals, es denomina llenguatge formal als llenguatges «artificials» propis de les matemàtiques o la informàtica, els llenguatges artificials són anomenats llenguatges formals (incloent llenguatges de programació). No obstant això, el llenguatge humà té una característica que no es troba en els llenguatges de programació: la diversitat.
El 1956, Noam Chomsky va crear la Jerarquia de Chomsky per organitzar els diferents tipus de llenguatge formal.
Veritats concernents als llenguatges formals
[modifica]Teorema 1: El conjunt de llenguatges en general (incloent-hi els no formals) és no numerable .
Lema 1: El conjunt de llenguatges en un alfabet no buit donat és no numerable
Afirmar que un alfabet és no-buit equival a afirmar que aquest alfabet contingui com a mínim un símbol, ergo, només cal demostrar que el conjunt de llenguatges en l'alfabet és no numerable. Com sabem, un llenguatge L dins és un subconjunt de , això ens porta a la conclusió que, el conjunt de tots els llenguatges en és justament (el conjunt de tots els subconjunts o conjunt potència de ) i és evident que és infinit (de fet, numerable), també ha estat demostrat que si és un conjunt infinit (numerable o no), llavors és major que perquè passa a ser un conjunt infinit d'ordres de l'infinit, en ser més gran, no hi haurà bijecció entre i , el que fa a un conjunt infinit no numerable, la prova ha finalitzat.
Demostració del Teorema 1: pot derivar fàcilment que l'asseveració delineada en el teorema 1 és vertadera, perquè el conjunt de llenguatges en general és justament una unió infinita de conjunts del tipus , on és un conjunt infinit numerable.
Teorema 2: Els llenguatges són conjunts numerables
Se sap que un llenguatge en un alfabet és un subconjunt de i com ja es va fer menció, és infinit no numerable, per tant, és com a molt un conjunt infinit no numerable (de la mateixa mida que ), la prova ha culminat.
Teorema 3: El conjunt de llenguatges formals és numerable
Com sabem un llenguatge formal pot ser generat per una gramàtica formal (o d'estructura de frase), la qual cosa implica que tot llenguatge formal pot ser acceptat per una MT, el que al seu torn implica que es pot definir una bijecció entre el conjunt de llenguatges formals i el conjunt de les MT's (degut a la propietat transitiva de la relació "hi ha bijecció entre i "). Per demostrar el teorema s'utilitzarà el concepte de codificació de MT's que s'introdueix en l'estudi de les MT's universals, generalment es codifica una MT amb una funció que té precisament com a domini el conjunt de les MT ' s (l'anomenarem ) i com a abast , aquesta funció pot ser una bijecció si el Codomini passa a ser I (un subconjunt de ) i com és numerable, aquest subconjunt també serà numerable i com existeix aquesta bijecció (entre i ), l'asseveració ha estat demostrada, prova conclosa.
Vegeu també
[modifica]- Teoria de la computabilitat
- Ciències de la computació
- Llenguatge d'especificació
- Llenguatge formalitzat
Notes i referències
[modifica]- ↑ Mellema, Gregory. «formal language» (en anglès). Oxford University Press. [Consulta: 7 febrer 2010].
Enllaços externs
[modifica]- Llibre electrònic gratuït sobre autòmats i llenguatges formals Arxivat 2007-07-03 a Wayback Machine. (Tecnològic de Monterrey, Mèxic)