2009-06-10 56 views
35

¿Por qué son expresiones regulares llamadas expresiones regulares?¿Por qué las expresiones regulares se llaman expresiones "regulares"?

+0

Después de leer los enlaces, todavía no sé si el nombre proviene de conjuntos regulares o idiomas regulares. – Nosredna

+0

@Nick Pierpoint: "Las expresiones regulares son" regulares "porque están definidas por un conjunto finito de símbolos, un lenguaje formal." ESTO ES INCORRECTO. Las expresiones regulares definen fácilmente idiomas infinitos. Ejemplo: a * => {"", "a", "aa", ...} –

+0

@volodyako - Veo que definen un lenguaje infinito, pero ¿no están definidos por un número finito de símbolos? podría poner un número infinito de estos símbolos juntos. ¿Es eso lo que quieres decir con mal? Supongo que me refería a un "conjunto finito de símbolos distintos". –

Respuesta

30

Se basan en regular languages.

+5

¿Por qué tardó 3 respuestas para llegar a "idiomas regulares": P –

+0

me preguntaba que también estaba a punto de publicar el mismo enlace, +1 – RobV

+11

+1. Aunque la mayoría de las implementaciones actuales ya no son realmente regulares. –

15

¿Por qué se llaman "expresiones regulares"?

Las expresiones regulares se remontan a la trabajo de un matemático estadounidense por el nombre de Stephen Kleene (uno de los figuras más influyentes en el desarrollo de la computación teórica ciencia) que desarrolló regulares expresiones como notación para describiendo lo que él llamó "el álgebra de conjuntos regulares". Su trabajo finalmente encontró su camino en algunos de los primeros esfuerzos con algoritmos de búsqueda computacional, y de allí a algunas de las primeras herramientas de manipulación de texto en la plataforma Unix (incluyendo ed y grep). En el contexto de búsquedas en la computadora, el "*" se conoce formalmente como "estrella Kleene ".

De here.

+4

... y es por eso que tenemos kleenex (google it) ;-) – corlettk

+0

... y ¿por qué los sets son regulares? Me pregunto si la incapacidad de reconocer una solución circular es algún tipo de adaptación para evitar el bloqueo cerebral. Tal vez esa gente se volvería catatónica si sus cerebros no pudieran aceptar una respuesta de estilo "es tortugas hasta el final". –

6

Lo que Kleene entendía por "eventos regulares" era un evento procesado por un conjunto de células nerviosas, un evento de percepción o de pensamiento. El documento de Kleene no dice nada acerca de las computadoras, la programación, la coincidencia de patrones en el texto o la búsqueda de texto en una computadora, el papel ni siquiera estaba compuesto en o cerca de una computadora, como lo indicaría el texto mecanografiado.

Como se puede leer en una excelente historia de las expresiones regulares, en el excelente libro [instrumentos lógicos: las expresiones regulares, AI y pensar sobre el pensamiento] de Christopher M. Kelty (2011) 1

expresiones regulares se originan en neurología y neurobiología en el trabajo de McCulloch en la década de 1930. Más tarde en la década de 1940, lo que McCulloch y Pitts lograron fue mucho más influyente en la ingeniería, la informática y las matemáticas que en la biología o la neurociencia. Las obras que toman como punto de partida el cálculo lógico de las redes nerviosas de McCulloch y Pitts han sido extraordinariamente abundantes en matemáticas e informática. Formalización completa, comenzando al menos con McCulloch y Pitts mismos, cuyo artículo de 1947 "Cómo sabemos universales" y el documento de 1959 que escribieron con Lettvin y Maturana, "Lo que las ranas Ojo dice al cerebro de la rana" [Lettvin et al., 1959 , Pitts y McCulloch, 1947] abandonan la estricta equivalencia formal con los cálculos proposicionales o la máquina de Turing, a favor de modelos biológicos más complejos que son menos susceptibles de manipulación lógica. El interés de McCulloch fue inicialmente en encontrar lo que él hipotetizó como un "psicón" -o unidad atómica de actividad neuronal, que primero buscó en su investigación fisiológica realizada durante la década de 1930 en asociación con el fisiólogo J.G de Yale. Dusser de Barenne.A principios de la década de 1940, Jerome Lettvin le presentó a Walter Pitts a Walter Pitts y, por ende, al grupo de Biología Matemática de Nicholas Rashevsky en la Universidad de Chicago, donde Walter Pitts había trabajado activamente en modelos de actividad neuronal con Rashevsky y el matemático Alston Householder.

La colaboración entre los dos fue desequilibrada, en el mejor de los casos. McCulloch tenía unos cuarenta años, Pitts tenía 17; McCulloch había dedicado su carrera a la fisiología y la filosofía. Pitts, por diversos y a veces poco fiables relatos, era un prodigio matemático que se había escapado de su casa en Detroit y se encontró con Bertrand Russell en un parque en Chicago [Smalheiser, 2000, Schlatter y Aizawa, 2008] . Juntos, sin embargo, lograron juntar algo que se encontraba en el medio, un documento que demostraba la equivalencia formal entre un modelo plausible de actividad neuronal y un cálculo lógico.

Parte de la inspiración de McCulloch y Pitts para su papel era la máquina de Turing. Como dice Tara Abraham "Turing fue capaz de definir el complicado proceso de computación en términos 'mecánicos', con la noción de un algoritmo simple tan exhaustivo, riguroso e inequívoco que el ejecutor no necesitaría 'conocimiento matemático' para llevar a cabo su tarea. "[Abraham, 2003, 18] Esta identificación de la computación con un procedimiento automático proporcionó la inspiración para que McCulloch y Pitts modelaran un conjunto de nervios como algo que también podría calcular" en ausencia de conocimiento matemático ".

En retrospectiva, lo que McCulloch y Pitts lograron fue mucho más influyente en ingeniería, informática y matemática que en biología o neurociencia.

Kleene, Stephen C. (1956), "Representation of events in nerve nets and finite automata"

famosa 1959 de papel por JY Lettvin, HR Maturana, WS McCulloch y WH Pitts, What the Frog's Eye Tells the Frog's Brain

En 1968, Ken Thompson publicó un corto de “Técnicas de programación” de papel para el MCCA en el que describía “Regular Expression Search Algorithm”