[Cascavel-pm] Quando usar Gramatica e quando usar Regexp? [Was: Artigo - Como Perl Salvou o Projeto Genoma]

Lorn lorn.br em gmail.com
Quinta Maio 24 09:03:01 PDT 2007


Eu estudando isso nesse semeste da faculdade, compiladores, eu não tinha
pensando no teste de se um linguagem é regular ou não, é um bom teste muito
bem lembrado :) valeu
Só dá pra fazer expressão regular, em uma linguagem regular :P
Mas como a Gramatica ( lembrando da hierarquia de chomsky ) é um conjunto
que engloba expressão regular também, minha duvida é, o que compensa mais,
ficar fazendo uma expressão regular maluca, só porque a linguagem é regular,
ou fazer uma gramatica pra resolver aquilo? ( que também pode ser resolvido
por gramatica ), porém pelo que percebi é muito mais simples e facil fazer
uma regexp do que uma gramatica, então acho que os casos de se usar
gramatica são tão unicos que vai dar pra perceber de primeira :)

On 5/24/07, Eden Cardim <edencardim em gmail.com> wrote:
>
> On 5/24/07, Lorn <lorn.br em gmail.com> wrote:
> > Eu nunca precisei fazer nenhum parse de html ( sim, eu uso modulos que
> fazem
> > parser de htmlE, mas existem html's que dão medo, então não é sempre que
> o
> > modulo resolve ) ou qualquer tipo de arquivo, tão complexo que seria
> melhor
> > que fosse feito uma gramatica, mas talvez eu tenha perdido 5h fazendo
> > regexp, quando podia ter perdido 1h fazendo uma gramatica, tem como
> > descobrir quando usar Gramatica e quando usar Regexp? alguma tecnica? :P
>
> Sim, tem um ramo da teoria da computação que estuda as Linguagens
> Formais (http://en.wikipedia.org/wiki/Formal_language). Vou resumir
> aqui, se quiser ver mais a fundo, olha os links pro wikipedia.
> Existem vários tipos de linguagens formais, elas são categorizadas na
> hierarquia de Chomsky
> (http://en.wikipedia.org/wiki/Chomsky_hierarchy), entre elas está a
> classe das linguagens regulares
> (http://en.wikipedia.org/wiki/Regular_language). Dentre outras
> definições, uma linguagem regular é qualquer linguagem que pode ser
> descrita por uma expressão regular
> (http://en.wikipedia.org/wiki/Regular_expressions#Formal_language_theory).
>
> Respondendo a sua pergunta, para usar uma expressão regular você tem
> que saber se a linguagem que você está avaliando é regular também. Em
> qualquer outro caso, você vai ter que utilizar a gramática equivalente
> na hierarquia de Chomsky.
>
> Para descobrir se uma linguagem é regular:
>
> http://en.wikipedia.org/wiki/Regular_language#Deciding_whether_a_language_is_regular
>
> ufa...
>
> P.S.: Desculpem, bateu a nostalgia da época que eu tinha tempo pra
> estudar Teoria da Computação, espero ter ajudado...
>
> --
> Eden Cardim
> Instituto Baiano de Biotecnologia
> Núcleo de Biologia Computacional e Gestão de Informações Biotecnológicas
> Laboratório de Bioinformática
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>



-- 
Lindolfo "Lorn" Rodrigues
- www.slackwarezine.com.br
- http://lornlab.org
- http://sao-paulo.pm.org
use Catalyst;
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070524/f239ba41/attachment.html 


Mais detalhes sobre a lista de discussão Cascavel-pm