1 | \documentclass[a4paper]{llncs} |
---|
2 | \usepackage{algpseudocode} |
---|
3 | %\usepackage{algorithmicx} |
---|
4 | \usepackage{alltt} |
---|
5 | \usepackage{amsfonts} |
---|
6 | \usepackage{amsmath} |
---|
7 | \usepackage[british]{babel} |
---|
8 | \usepackage{hyperref} |
---|
9 | \usepackage[utf8]{inputenc} |
---|
10 | \usepackage{listings} |
---|
11 | \usepackage{subcaption} |
---|
12 | |
---|
13 | \renewcommand{\verb}{\lstinline} |
---|
14 | \def\lstlanguagefiles{lst-grafite.tex} |
---|
15 | \lstset{language=Grafite} |
---|
16 | |
---|
17 | \begin{document} |
---|
18 | |
---|
19 | \mainmatter |
---|
20 | \title{On the correctness of a branch displacement algorithm\thanks{Research supported by the CerCo project, within the Future and Emerging Technologies (FET) programme of the Seventh Framework Programme for Research of the European Commission, under FET-Open grant number 243881}} |
---|
21 | \author{Jaap Boender\inst{1} \and Claudio Sacerdoti Coen\inst{2}} |
---|
22 | \institute{Foundations of Computing Group\\Department of Computer Science\\School of Science and Technology\\Middlesex University, London, UK\\ |
---|
23 | \email{J.Boender@mdx.ac.uk} |
---|
24 | \and |
---|
25 | Dipartimento di Scienze dell'Informazione,\\ |
---|
26 | Universit\`a degli Studi di Bologna, Italy\\ |
---|
27 | \email{sacerdot@cs.unibo.it}} |
---|
28 | |
---|
29 | \maketitle |
---|
30 | |
---|
31 | \begin{abstract} |
---|
32 | The branch displacement problem is a well-known problem in assembler design. |
---|
33 | It revolves around the feature, present in several processor families, of |
---|
34 | having different instructions, of different sizes, for jumps of different |
---|
35 | displacements. The problem, which is provably NP-hard, is then to select the |
---|
36 | instructions such that one ends up with the smallest possible program. |
---|
37 | |
---|
38 | During our research with the CerCo project on formally verifying a C compiler, |
---|
39 | we have implemented and proven correct an algorithm for this problem. In this |
---|
40 | paper, we discuss the problem, possible solutions, our specific solutions and |
---|
41 | the proofs. |
---|
42 | |
---|
43 | \keywords{formal verification, interactive theorem proving, assembler, branch displacement optimisation} |
---|
44 | \end{abstract} |
---|
45 | |
---|
46 | \input{problem} |
---|
47 | \input{algorithm} |
---|
48 | \input{proof} |
---|
49 | \input{conclusion} |
---|
50 | |
---|
51 | \bibliography{biblio} |
---|
52 | \bibliographystyle{splncs03} |
---|
53 | |
---|
54 | \end{document} |
---|