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