handouts/ho01.tex
changeset 417 e74c696821a2
parent 416 357c395ae838
child 418 010c5a03dca2
equal deleted inserted replaced
416:357c395ae838 417:e74c696821a2
   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