2010-10-25 6 views
7

Estoy repasando esto en mi clase de teoría, y tengo curiosidad acerca de cuánta gente aquí sabe qué compilación de expresiones regulares realmente es. Lo busqué en línea, y me parece que este es un tema más arcaico que yo pensé que era.Por curiosidad, ¿cuántas personas saben cómo se compilan las expresiones regulares?

Entonces, ¿quién sabe antes de leer esta pregunta que una compilación de expresiones regulares se realiza convirtiendo la expresión regular a un autómata finito épsilon-no determinista? ¿Quién no tiene idea de qué es eso?

+3

Posiblemente mejor en [Programadores] (http://programmers.stackexchange.com) por ser una encuesta de programadores en lugar de una pregunta con una respuesta de programación. – dmckee

+0

Bueno, tampoco creo que les guste esta pregunta. "¿Quién no sabe esto?" es bastante difícil de responder de manera significativa ... – Jens

+1

De hecho, la mayoría de las implementaciones realmente * no * se compilan con autómatas finitos. La mayoría de los dialectos de expresiones regulares actualmente en uso pueden coincidir con los idiomas que no son regulares (y por lo tanto no podrían ser comparados por un autómata finito). – sepp2k

Respuesta

0

Hay un pequeño compilador de expresiones regulares muy simple y elegante en C que Rob Pike escribió y Brian Kernighan describe en el Capítulo 1 de O'Reilly's Beautiful Code. Es bastante fácil de aprender de. También los cursos de compilación lo cubren: los tipos de tokens se pueden definir con expresiones regulares. Entonces me imagino que este conocimiento no es terriblemente raro.

+0

Eso fue un intérprete de retroceso - no compiló a un autómata. –

0

Ok. Creo que seré el primero en admitir que, aunque tomé un curso de compilación hace un par de años y conozco su principio general, creo que tendré que sacar de nuevo el "Libro del Dragón" y leer un poco más. sobre el tema si realmente me pidieran que escribiera el código que hace este tipo de cosas.

0

Sabía que tenía algo que ver con las máquinas de estado finito, pero nada más que eso. No es realmente un tema en el que quisiera profundizar ... Sospecho que es desagradable bajo el capó. No muchas personas en SO parecen usar expresiones regulares en absoluto, sin importar cómo funcionan.

Cuestiones relacionadas