254 |
254 |
255 \begin{center} |
255 \begin{center} |
256 \url{http://stackstatus.net/post/147710624694/outage-postmortem-july-20-2016} |
256 \url{http://stackstatus.net/post/147710624694/outage-postmortem-july-20-2016} |
257 \end{center} |
257 \end{center} |
258 |
258 |
|
259 \noindent I can also highly recommend a cool webtalk from an engineer |
|
260 from Stack Exchange on the same subject: |
|
261 |
|
262 \begin{center} |
|
263 \url{https://vimeo.com/112065252} |
|
264 \end{center} |
|
265 |
259 \noindent |
266 \noindent |
260 It was also a problem in the Atom editor |
267 A similar problem also occured in the Atom editor: |
261 |
268 |
262 \begin{center} |
269 \begin{center} |
263 \url{http://davidvgalbraith.com/how-i-fixed-atom/} |
270 \url{http://davidvgalbraith.com/how-i-fixed-atom/} |
264 \end{center} |
271 \end{center} |
265 |
272 |
562 |
569 |
563 Up until a few years ago I was not really interested in |
570 Up until a few years ago I was not really interested in |
564 regular expressions. They have been studied for the last 60 |
571 regular expressions. They have been studied for the last 60 |
565 years (by smarter people than me)---surely nothing new can be |
572 years (by smarter people than me)---surely nothing new can be |
566 found out about them. I even have the vague recollection that |
573 found out about them. I even have the vague recollection that |
567 I did not quite understand them during my study. If I remember |
574 I did not quite understand them during my undergraduate study. If I remember |
568 correctly,\footnote{That was really a long time ago.} I got |
575 correctly,\footnote{That was really a long time ago.} I got |
569 utterly confused about $\ONE$ (which my lecturer wrote as |
576 utterly confused about $\ONE$ (which my lecturer wrote as |
570 $\epsilon$) and the empty string.\footnote{Obviously the |
577 $\epsilon$) and the empty string.\footnote{Obviously the |
571 lecturer must have been bad.} Since my study, I have used |
578 lecturer must have been bad.} Since my then, I have used |
572 regular expressions for implementing lexers and parsers as I |
579 regular expressions for implementing lexers and parsers as I |
573 have always been interested in all kinds of programming |
580 have always been interested in all kinds of programming |
574 languages and compilers, which invariably need regular |
581 languages and compilers, which invariably need regular |
575 expression in some form or shape. |
582 expressions in some form or shape. |
576 |
583 |
577 To understand my fascination \emph{nowadays} with regular |
584 To understand my fascination \emph{nowadays} with regular |
578 expressions, you need to know that my main scientific interest |
585 expressions, you need to know that my main scientific interest |
579 for the last 14 years has been with theorem provers. I am a |
586 for the last 14 years has been with theorem provers. I am a |
580 core developer of one of |
587 core developer of one of |
601 With my PhD student Fahad Ausaf I proved |
608 With my PhD student Fahad Ausaf I proved |
602 the correctness for one such matcher that was |
609 the correctness for one such matcher that was |
603 proposed by Sulzmann and Lu in |
610 proposed by Sulzmann and Lu in |
604 2014.\footnote{\url{http://goo.gl/bz0eHp}} Hopefully we can |
611 2014.\footnote{\url{http://goo.gl/bz0eHp}} Hopefully we can |
605 prove that the machine code(!) |
612 prove that the machine code(!) |
606 that implements this code efficiently is correct. Writing |
613 that implements this code efficiently is correct also. Writing |
607 programs in this way does not leave any room for potential |
614 programs in this way does not leave any room for potential |
608 errors or bugs. How nice! |
615 errors or bugs. How nice! |
609 |
616 |
610 What also helped with my fascination with regular expressions |
617 What also helped with my fascination with regular expressions |
611 is that we could indeed find out new things about them that |
618 is that we could indeed find out new things about them that |
623 What a feeling if you are an outsider to the subject! |
630 What a feeling if you are an outsider to the subject! |
624 |
631 |
625 To conclude: Despite my early ignorance about regular |
632 To conclude: Despite my early ignorance about regular |
626 expressions, I find them now very interesting. They have a |
633 expressions, I find them now very interesting. They have a |
627 beautiful mathematical theory behind them, which can be |
634 beautiful mathematical theory behind them, which can be |
628 sometimes quite deep and which contains hidden snares. They have |
635 sometimes quite deep and which sometimes contains hidden snares. They have |
629 practical importance (remember the shocking runtime of the |
636 practical importance (remember the shocking runtime of the |
630 regular expression matchers in Python, Ruby and Java in some |
637 regular expression matchers in Python, Ruby and Java in some |
631 instances) and the problems in Stack Exchange and the Atom editor. |
638 instances and the problems in Stack Exchange and the Atom editor). |
632 People who are not very familiar with the |
639 People who are not very familiar with the |
633 mathematical background of regular expressions get them |
640 mathematical background of regular expressions get them |
634 consistently wrong. The hope is that we can do better in the |
641 consistently wrong. The hope is that we can do better in the |
635 future---for example by proving that the algorithms actually |
642 future---for example by proving that the algorithms actually |
636 satisfy their specification and that the corresponding |
643 satisfy their specification and that the corresponding |