Você está na página 1de 6

Linguagem formal

1
Linguagem formal
Entende-se por Linguagem formal estudo de modelos matemticos que possibilitam a especificao e o
reconhecimento de linguagens (no sentido amplo da palavra), suas classificaes, estruturas, propriedades,
caractersticas e inter-relacionamentos.
A importncia dessa teoria na Cincia da Computao dupla: ela tanto apia outros aspectos tericos da Cincia da
Computao (decidibilidade, computabilidade, complexidade computacional, por exemplo), como fundamenta
diversas aplicaes computacionais tais como processamento de linguagens, reconhecimento de padres, modelagem
de sistemas.
Para definir o que a Teoria das Linguagens Formais necessrio definir o que linguagem e o que linguagem
formal. Inicialmente, de maneira bastante informal, podemos definir uma linguagem como sendo uma forma de
comunicao. Elaborando um pouco mais esta definio, podemos definir uma linguagem como sendo "um conjunto
de elementos (smbolos) e um conjunto de mtodos (regras) para combinar estes elementos, usado e entendido por
uma determinada comunidade". So exemplos as "linguagens naturais" (ou idiomas), "linguagens de programao" e
os "protocolos de comunicao".
Assim, podemos dizer que "Linguagens formais" so mecanismos formais para representao e especificao de
linguagens, baseados na chamada "Teoria da Computao". As representaes podem ser feitas por reconhecedores e
geradores. Os reconhecedores so dispositivos formais que servem para verificar se uma frase pertence ou no
determinada linguagem. So os autmatos: autmatos finitos, autmatos de pilha e Mquina de Turing. Os sistemas
geradores so dispositivos formais que permitem a gerao sistemtica de todas as frases de uma linguagem. Os
principais sistemas geradores disponveis so as gramticas, onde se destacam as gramticas de Chomsky. Ento,
linguagens formais podem ser representadas de maneira finita e precisa atravs de sistemas com sustentao
matemtica.
Histria
Acredita-se que a primeira linguagem formal seja a utilizada por Gottlob Frege em seu Begriffsschrift (1879), que
literalmente significa "escrita conceito", e que Frege descreveu como uma "linguagem formal do pensamento puro".
O sistema Semi-Thue de Axel Thue que pode ser usado para reescrever cadeias foi influente em gramticas formais .
Palavras sobre um alfabeto
Um alfabeto, no contexto das linguagens formais, pode ser qualquer conjunto, embora, muitas vezes, faz sentido usar
um alfabeto no sentido usual da palavra, ou, mais geralmente, um conjunto de caracteres, como ASCII ou Unicode.
Alfabetos tambm podem ser infinitos, por exemplo, a lgica de primeira ordem frequentemente expressa
utilizando um alfabeto que, alm de smbolos tais como , e, entre parnteses, contm muitos elementos
infinitamente x 0, x 1, x 2, ..., que desempenham o papel de variveis. Os elementos de um alfabeto so chamados de
suas letras. Uma palavra sobre um alfabeto pode ser qualquer sequncia finita, ou cadeia de caracteres ou letras, que
por vezes podem incluir espaos, e so separados por caracteres de separao de palavras especificadas. O conjunto
de todas as palavras sobre um alfabeto geralmente indicado por *(usando o fecho de Kleene). O comprimento
de uma palavra o nmero de caracteres ou letras de que composto. Para qualquer alfabeto s h uma palavra de
comprimento 0, a palavra vazia, o que muitas vezes denotado por e, ou . Por concatenao pode-se combinar
duas palavras para formar uma nova palavra, cujo comprimento igual soma dos comprimentos das palavras
originais. O resultado da concatenao de uma palavra com a palavra vazia a palavra original. Em algumas
aplicaes, especialmente na lgica, o alfabeto tambm conhecido como o vocabulrio e as palavras so
conhecidas como frmulas ou sentenas, isso quebra a letra/palavra metfora e a substitui por uma palavra/sentena
metfora.
Linguagem formal
2
Definio
Uma linguagem formal de L sobre um alfabeto um subconjunto de *, isto , um conjunto de palavras sobre um
alfabeto. Por vezes, os conjuntos de palavras so agrupados em expresses, que as regras e as constantes podem ser
formuladas para a criao de "expresses bem formadas". Em cincia e matemtica de computador, que no
costumam lidar com linguagens naturais, o adjetivo "formal" frequentemente omitido como redundante. Enquanto
a teoria da linguagem formal, geralmente se preocupa com linguagens formais que so descritas por algumas regras
sintticas, a prpria definio do conceito de "linguagem formal" apenas como mencionado acima: um
(possivelmente infinito) conjunto de cadeias de tamanho finito, composto de um determinado alfabeto, nem mais
nem menos. Na prtica, h muitas lnguas que podem ser descritas pelas regras, tais como linguagens regulares e
linguagens livres de contexto. A noo de uma gramtica formal pode estar mais perto do conceito intuitivo de uma
"linguagem", que descrita por regras sintticas. Por um abuso de definio, uma particular linguagem formal
muitas vezes considerada como sendo equipada com uma gramtica formal que a descreve.
Exemplos
As seguintes regras descrevem uma linguagem L formal sobre o alfabeto = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, =}:
Cada cadeia no vazia que no contm "+" ou "=" e no comea com "0" est em L.
Uma sequncia contendo "=" est em L se e somente se h exatamente um "=", e ela separa duas cadeias vlidas
de L.
Uma sequncia contendo "+", mas no "=" est em L se e somente se todos os "+" na cadeia separam duas cadeias
vlidas de L.
Nenhuma cadeia est em L que no as sugeridas pelas regras anteriores.
Sob essas regras, a cadeia "23 +4 = 555" est em L, mas a cadeia "= 234 = +" no est. Esta linguagem formal
expressa nmeros naturais, declaraes adio bem-formadas, e igualdades adio bem-formadas, mas estas
exprimem apenas o que elas se parecem (sua sintaxe), no o que eles querem dizer (semntica). Por exemplo, em
nenhuma parte destas regras existe qualquer indicao de que "0" significa o nmero zero, ou que "+" significa
adio.
Construes
Para linguagens finitas, uma pode explicitamente enumerar todas as palavras bem formadas. Por exemplo, pode-se
descrever uma lngua L somente como L = {"a", "b", "b", "ABC".} O degenerado caso desta construo a
linguagem vazia, que no contm nenhuma palavra (L = ). No entanto, mesmo ao longo de um alfabeto
(no-vazio) finito, como = {a, b} existem infinitamente muitas palavras: "a", "abb", "ababba", "aaababbbbaab", ....
Portanto, as linguagens formais so tipicamente infinitas, e descrever uma linguagem formal infinita no to
simples como escrever L = {"a", "b", "ab", "cba"}. Aqui esto alguns exemplos de linguagens formais:
L = *, o conjunto de todas as palavras sobre ;
L = {"a"} * = {"a" n}, onde n varia ao longo dos nmeros naturais e "a" significa "a" repetido n vezes (isto , o
conjunto de palavras que consiste apenas de o smbolo "a" );
o conjunto de programas sintaticamente corretos em uma determinada linguagem de programao (a sintaxe do
que normalmente definido por uma gramtica livre de contexto);
o conjunto de entradas nos quais uma determinada mquina de Turing para, ou
o conjunto de sequncias mximas de caracteres alfanumricos ASCII nesta linha, i.e., o conjunto {"o", "
conjunto ", "de" , " sequncias ,"mximas", "cordas", "alfanumrico", "de", "caracteres", " alfanumricos", "
ASCII ", " nesta", "linha", "i", "e"}.
Linguagem formal
3
Linguagem especificaes formalismos
A Teoria da linguagem formal, raramente se preocupa com determinadas lnguas (exceto como exemplos), mas est
preocupada principalmente com o estudo de vrios tipos de formalismos para descrever lnguas. Por exemplo, uma
linguagem pode ser dada como
aquelas cadeias de caracteres geradas por alguma gramtica formal;
aquelas cadeias descritas ou acompanhadas por uma determinada expresso regular;
aquelas cadeias aceitas por alguns autmatos, como uma mquina de Turing ou autmato de estados finito;
aquelas cadeias para qual algum procedimento de deciso (um algoritmo que faz uma sequncia de perguntas
relacionadas a sim / no) produz a resposta SIM.
Perguntas tpicas feitas sobre tais formalismos incluem:
Qual o seu poder de expresso? (Pode formalismo X descrever todas as lnguas que o formalismo Y pode
descrever? Pode descrever outras lnguas?)
Qual a sua reconhecidabilidade? (Quo difcil decidir se uma determinada palavra pertence a uma linguagem
descrita pelo formalismo X?)
Qual a sua comparabilidade? (Quo difcil decidir se duas linguagens, uma descrita no formalismo X e um Y
no formalismo, ou em X novamente, so na verdade a mesma lngua?).
Surpreendentemente, muitas vezes, a resposta a esses problemas de deciso "no pode ser feito de modo algum",
ou " extremamente custoso" (com uma caracterizao de o quo custoso). Portanto, a teoria da linguagem formal
uma grande rea de aplicao da teoria da computabilidade e teoria da complexidade. Linguagens formais podem ser
classificadas na hierarquia de Chomsky com base no poder expressivo de sua gramtica geradora, bem como a
complexidade de seu autmato reconhecedor. Gramticas livres de contexto e gramticas regulares oferecem um
bom compromisso entre expressividade e facilidade de anlise, e so amplamente utilizadas em aplicaes prticas.
Operaes em linguagens
Certas operaes em linguagens so comuns. Isto inclui as operaes padro de conjuntos, tais como unio,
interseo e complemento. Outra classe de operao a de aplicao element-wise de operaes de cadeia.
Exemplos: suponha L 1 e L 2 so as linguagens sobre algum alfabeto comum.
A concatenao L 1 L 2 consiste de todas as cadeias da forma vw onde v uma sequncia de L 1 e w uma
cadeia de L 2.
A interseo L 1 L 2 de L 1 e L 2 consiste de todas as cadeias que esto contidas em ambas as linguagens
O complemento L de uma linguagem em relao a um dado alfabeto consiste de todas as cadeias sobre o
alfabeto que no esto na lngua.
O fecho de Kleene : a linguagem constituda de todas as palavras que so concatenaes de 0 ou mais palavras na
lngua original;
Reverso:
Seja E a palavra vazia, e R = e, e
para cada palavra no vazia w = x 1 ... x n sobre algum alfabeto, vamosw R = x n ... x 1,
em seguida, para uma linguagem L formal, L R = {w R | w L}.
Homomorfismo de cadeia
Tais operaes de cadeia so usadas para investigar as propriedades de fechamento das classes de linguagem. A
classe das linguagens fechada sob uma operao em particular quando a operao, aplicada as linguagens na classe,
sempre produz uma linguagem na mesma classe. Por exemplo, as linguagens livres de contexto so conhecidas por
serem fechadas sob unio, concatenao e interseco com linguagens regulares, mas no fechadas sob interseo ou
complemento. A teoria dos trios e famlias abstratas de linguagens estuda as propriedades mais comuns de
fechamento de famlias de linguagens em seu prprio direito.
Linguagem formal
4
Aplicaes
Linguagens de Programao
Um compilador tem geralmente dois componentes distintos. Um analisador lxico, gerado por uma ferramenta como
lex, que identifica os smbolos da gramtica da linguagem de programao, por exemplo, identificadores ou
palavras-chave, que so eles prprios expressos em uma linguagem formal mais simples, geralmente por meio de
expresses regulares. No nvel conceitual mais bsico, um parser, geralmente gerado por um gerador de parser como
yacc, tenta decidir se o programa fonte vlido, isto , se ele pertence linguagem de programao para que o
compilador foi construdo. Claro, compiladores fazem mais do que apenas analisar o cdigo fonte, eles geralmente o
traduzem em algum formato executvel. Devido a isso, um analisador geralmente produz mais do que uma resposta
sim / no, normalmente uma rvore de sintaxe abstrata, que usado por etapas subsequentes do compilador para,
eventualmente, gerar um executvel contendo o cdigo de mquina que roda diretamente no hardware, ou algum
cdigo intermedirio que requer uma mquina virtual para executar.
Teorias formais, sistemas e provas
Na lgica matemtica, uma teoria formal um conjunto de sentenas expressas em uma linguagem formal. Um
sistema formal (tambm chamado de clculo lgico, ou um sistema lgico) constitudo por uma linguagem formal,
juntamente com um sistema dedutivo (tambm denominado aparato dedutivo). O sistema dedutivo pode consistir
num conjunto de regras de transformao que possam ser interpretados como regras vlidas de inferncia ou um
conjunto de axiomas, ou tem ambos. Um sistema formal utilizado para derivar uma expresso de uma ou mais
outras expresses. Embora uma linguagem formal possa ser identificada com as suas frmulas, um sistema
convencional pode no ser igualmente identificado pelos seus teoremas. Dois sistemas formais e podem ter os
mesmos teoremas e ainda diferirem em alguma significante prova-teortica (uma frmula A pode ser uma
consequncia de uma frmula sinttica B em um, mas no de outro, por exemplo). A prova formal ou derivao
uma sequncia finita de frmulas bem-formadas (que pode ser interpretado como proposies), cada um dos quais
um axioma ou resulta das frmulas anteriores na sequncia de uma regra de inferncia. A ltima frase da sequncia
um teorema de um sistema formal. Provas formais so teis porque os seus teoremas podem ser interpretados como
proposies verdadeiras.
Interpretaes e modelos
Linguagens formais so totalmente sintticas por natureza, mas podem ser dada semnticas que do sentido aos
elementos da linguagem. Por exemplo, em matemtica lgica, o conjunto de possveis frmulas de uma lgica
particular uma linguagem formal, e uma interpretao atribui um significado para cada uma das frmulas,
geralmente, um valor verdadeiro . O estudo das interpretaes de linguagens formais chamado de semntica
formal. Na lgica matemtica, esta muitas vezes feito em termos de teoria de modelos. Em teoria do modelo, os
termos que ocorrem numa frmula so interpretados como estruturas matemticas, as regras de
Bibliografia
A. G. Hamilton, Logic for Mathematicians, Cambridge University Press, 1978, ISBN 0-521-21838-1.
Seymour Ginsburg, Algebraic and automata theoretic properties of formal languages, North-Holland, 1975,
ISBN 0-7204-2506-9.
John E. Hopcroft and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation,
Addison-Wesley Publishing, Reading Massachusetts, 1979. ISBN 81-7808-347-7.
Rautenberg, Wolfgang. A Concise Introduction to Mathematical Logic
[1]
. 3rded. New York:Springer
Science+Business Media, 2010. ISBN 978-1-4419-1220-6.
Linguagem formal
5
Grzegorz Rozenberg, Arto Salomaa, Handbook of Formal Languages: Volume I-III, Springer, 1997, ISBN
3-540-61486-9.
Patrick Suppes, Introduction to Logic, D. Van Nostrand, 1957, ISBN 0-442-08072-7.
Andries van Renssen, Gellish, a Generic Extensible Ontological Language, Delft University Press, 2005, ISBN
90-407-2597-4.
Ligaes externas
lminas para curso de um semestre de durao de linguagens formais a nvel de graduao
[2]
Teoria de autmatos: linguagem formal e gramtica formal
Hierarquia
Chomsky Gramtica Linguagem Reconhecedor
Tipo-0 Irrestrita Recursivamente enumervel Mquina de Turing
-- -- Recursiva Mquina de Turing que sempre para
Tipo-1 Sensvel ao contexto Sensvel ao contexto Autmato linearmente limitado
Tipo-2 Livre de contexto Livre de contexto Autmato com pilha
Tipo-3 Regular Regular Autmato finito
h varias formas de comunicao no meio lingustico.
Referncias
[1] http:/ / www. springerlink. com/ content/ 978-1-4419-1220-6/
[2] http:/ / minerva. ufpel. edu.br/ ~campani/ lingformal.pdf
Fontes e Editores da Pgina
6
Fontes e Editores da Pgina
Linguagem formal Fonte: http://pt.wikipedia.org/w/index.php?oldid=39384042 Contribuidores: Antero de Quintal, Campani, Darwinius, DeLucca, J.Eduardo, Diego Queiroz, Eduardoferreira,
HVL, Jcmo, Jorge, Jphmf, Kenchikka, Keplerbr, Leonardo.stabile, LeonardoG, Lijealso, Mariama C. Oliveira, Mirelli Navarra, Njr, Nuno Tavares, Patrick, Physis, Reporter, Rui Malheiro, Ruy
Pugliesi, SuperBraulio13, Transtagano, Vitor Mazuco, Wjalves, 54 edies annimas
Licena
Creative Commons Attribution-Share Alike 3.0
//creativecommons.org/licenses/by-sa/3.0/

Você também pode gostar