csupp.tex
author urbanc
Fri, 02 Sep 2011 13:30:17 +0000
changeset 226 3be00ad980a1
parent 225 bc3ffe0dd1d8
child 227 9c281a4b767d
permissions -rwxr-xr-x
small improvement
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
225
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
     1
\documentclass{article}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
     2
\usepackage{a4wide,ot1patch}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
     3
\usepackage[latin1]{inputenc}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
     4
\usepackage{multicol}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
     5
\usepackage{charter}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
     6
\usepackage{amsmath,amssymb,amsthm}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
     7
\usepackage{fancyheadings}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
     8
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
     9
\addtolength{\oddsidemargin}{-6mm}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    10
\addtolength{\evensidemargin}{-6mm}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    11
\addtolength{\textwidth}{11mm}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    12
\addtolength{\columnsep}{3mm}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    13
\addtolength{\textheight}{8mm}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    14
\addtolength{\topmargin}{-7.5mm}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    15
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    16
\pagestyle{fancyplain}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    17
\lhead[\fancyplain{}{A}]{\fancyplain{}{}}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    18
\rhead[\fancyplain{}{C}]{\fancyplain{}{}}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    19
\renewcommand{\headrulewidth}{0pt}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    20
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    21
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    22
\begin{document}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    23
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    24
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    25
\begin{center}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    26
\begin{tabular}{c}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    27
\\[-5mm]
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    28
\LARGE\bf Certified Parsing\\[-10mm]
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    29
\mbox{} 
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    30
\end{tabular}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    31
\end{center}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    32
\thispagestyle{empty}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    33
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    34
\section*{Background}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    35
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    36
\mbox{}\\[-14mm]
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    37
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    38
\begin{multicols}{2}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    39
\noindent
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    40
Parsing is the act of transforming plain text into some
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    41
structure that can be analysed by computers for further processing. 
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    42
One might think that parsing has been studied to death and after
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    43
\emph{yacc} and \emph{lex} no new results can be obtained in this area. 
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    44
However recent results and novel approaches make it increasingly clear,
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    45
that this is not true anymore.
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    46
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    47
We propose to approach the subject of parsing from a certification point 
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    48
of view. Parsers are increasingly part of certified compilers, like CompCert, 
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    49
which are guaranteed to be correct and bug-free. Such certified compilers are 
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    50
important in areas where software just cannot fail. However, so far the
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    51
parsers of these compilers have been left out of the certification.
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    52
This is because parsing algorithms are often adhoc and their semantics
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    53
is not clearly specified. Unfortunately, this means parsers can harbour 
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    54
errors that potentially invalidate the whole certification and correctness 
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    55
of the compiler. In this project, we like to change that.
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    56
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    57
Only in the last few years, theorem provers have become good enough
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    58
for establishing the correctness of some standard lexing and
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    59
parsing algorithms. For this, the algorithms need to be formulated
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    60
in way so that it is easy to reason about them. In earlier work
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    61
about lexing and regular languages, the authors showed that this 
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    62
precludes algorithms working over graphs. However regular
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    63
languages can be formulated and reasoned about entirely in terms 
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    64
regular expressions, which can be easily represented in theorem
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    65
provers. This work uses the device of derivatives of regular 
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    66
languages. We like to extend this work to parsers and grammars.
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    67
The aim is to come up with elegant and useful parsing algorithms
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    68
whose correctness and absence of bugs can be certified in a theorem 
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    69
prover. 
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    70
\mbox{}\\[15cm]
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    71
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    72
\noindent 
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    73
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    74
%\small
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    75
%\bibliography{../../bib/all} 
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    76
%\bibliographystyle{abbrv}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    77
\end{multicols}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    78
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    79
%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    80
%  \noindent {\bf Objectives:} The overall goals of the project are as follows:
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    81
%  \begin{itemize}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    82
%  \item To solve the POPLmark challenge.
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    83
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    84
%  \item To complete and greatly improve the existing implementation of the
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    85
%    nominal datatype package.
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    86
%  \item To explore the strengths of this package by proving the
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    87
%    safety of SML.
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    88
%  \item To provide a basis for extracting programs from safety proofs.
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    89
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    90
%  \item To make the nominal datatype package usable for teaching 
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    91
%    students about the lambda-calculus and the theory of programming
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    92
%    languages. \smallskip
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    93
%  \end{itemize}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    94
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    95
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    96
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    97
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    98
\end{document}
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
    99
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
   100
%%% Local Variables:  
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
   101
%%% mode: latex
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
   102
%%% TeX-master: t
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
   103
%%% TeX-command-default: "PdfLaTeX"
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
   104
%%% TeX-view-style: (("." "kpdf %s.pdf"))
bc3ffe0dd1d8 added a start for a proposal
urbanc
parents:
diff changeset
   105
%%% End: