2\documentclass[acmtoplas]{acmtrans2m}
4\usepackage[draft]{comments}
5%\usepackage[final]{comments}
6% \newcommand{\comment}[2]{[#1: #2]}
7\newcommand{\khcomment}[1]{\comment{KH}{#1}}
8\newcommand{\ebcomment}[1]{\comment{EB}{#1}}
13\usepackage{amsmath,amssymb}
16\newenvironment{template}{\sffamily}
18\usepackage{graphics,epsfig}
30\newcommand{\Ivor}{\textsc{Ivor}}
31\newcommand{\Idris}{\textsc{Idris}}
32\newcommand{\Funl}{\textsc{Funl}}
33\newcommand{\Agda}{\textsc{Agda}}
34\newcommand{\LamPi}{$\lambda_\Pi$}
36\newcommand{\perule}[1]{\vspace*{0.1cm}\noindent
39\begin{minipage}{7.5cm}\textbf{Rule \theper:} #1\addtocounter{per}{1}
45\newcommand{\mysubsubsection}[1]{
49\newcommand{\hdecl}[1]{\texttt{#1}}
51\markboth{Edwin C. Brady}{Implementation of a Practical Dependently
52 Typed Functional Programming Language}
53\title{Implementation of a Practical Dependently Typed Functional
55\author{EDWIN C. BRADY\\ University of St Andrews}
58I describe the implementation of a dependently typed functional
59programming language, \Idris{}. Much has been written about various
60aspects of dependently typed language implementation (e.g. checking
61dependent types, unification, optimisation) but nothing yet about how
62to bring it all together into a complete, practical, usable tool. This paper
63attempts to do so. In particular, I explain what is needed to turn
64concrete syntax with implicit arguments into fully elaborated type
65theory, using unification and a tactic engine.
68\category{D.3.2}{Programming Languages}{Language
69 Classifications}[Applicative (functional) Languages]
70\category{D.3.4}{Programming Languages}{Processors}[Compilers]
71\terms{Languages, Verification, Performance}
72\keywords{Dependent Types, Typechecking}
77Author's address: Edwin Brady, School of Computer Science, North Haugh, St Andrews,
88\input{typechecking.tex}
92\input{elaboration.tex}
98\input{conclusions.tex}
100\bibliographystyle{acmtrans}
101\bibliography{literature.bib}
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list