% Bibliography of key references for "LaTeX for Thesis and Large Documents"
% For use with BibTeX

% --------------------------------------------------
% Cforall

@misc{cfa:frontpage,
    url		= {https://cforall.uwaterloo.ca}
}
@article{cfa:typesystem,
    author    = {Aaron Moss and Robert Schluntz and Peter A. Buhr},
    title     = {{\CFA} : Adding modern programming language features to {C}},
    journal   = {Softw. Pract. Exp.},
    volume    = {48},
    number    = {12},
    pages     = {2111--2146},
    year      = {2018},
}

% --------------------------------------------------
% Array prior work

@inproceedings{arr:futhark:tytheory,
    author	= {Troels Henriksen and Martin Elsman},
    title	= {Towards Size-Dependent Types for Array Programming},
    year	= {2021},
    publisher	= {Association for Computing Machinery},
    address	= {New York, NY, USA},
    booktitle	= {Proceedings of the 7th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming},
    pages	= {1-14},
    numpages	= {14},
    location	= {Virtual, Canada},
    series	= {ARRAY 2021}
}

@article{arr:dex:long,
    author	= {Adam Paszke and Daniel D. Johnson and David Duvenaud and
		   Dimitrios Vytiniotis and Alexey Radul and Matthew J. Johnson and
		   Jonathan Ragan-Kelley and Dougal Maclaurin},
    title	= {Getting to the Point. Index Sets and Parallelism-Preserving Autodiff
		   for Pointful Array Programming},
    publisher	= {Association for Computing Machinery},
    address	= {New York, NY, USA},
    volume	= 5,
    number	= {ICFP},
    year	= 2021,
    journal	= {Proc. ACM Program. Lang.},
    month	= {aug},
}

% --------------------------------------------------
% Linked-list prior work

@misc{CFAStackEvaluation,
    contributer	= {a3moss@plg},
    author	= {Aaron Moss},
    title	= {\textsf{C}$\mathbf{\forall}$ Stack Evaluation Programs},
    year	= 2018,
    howpublished= {\url{https://cforall.uwaterloo.ca/CFAStackEvaluation.zip}},
}

@misc{lst:linuxq,
    title	= {queue(7) -- Linux manual page},
    howpublished= {\url{https://man7.org/linux/man-pages/man3/queue.3.html}},
}
% see also https://man7.org/linux/man-pages/man7/queue.7.license.html
%          https://man7.org/tlpi/
%          https://www.kernel.org/doc/man-pages/

@misc{lst:stl,
    title	= {std::list},
    howpublished= {\url{https://en.cppreference.com/w/cpp/container/list}},
}

@article{Blache19,
    author	= {Gunter Blache},
    title	= {Handling Index-out-of-bounds in safety-critical embedded {C} code using model-based development},
    journal	= {Software \& Systems Modeling},
    volume	= 18,
    year	= 2019,
    pages	= {1795-1805},
}

@article{Oorschot23,
    author	= {van Oorschot, Paul C.},
    journal	= {IEEE Security \& Privacy}, 
    title	= {Memory Errors and Memory Safety: {C} as a Case Study}, 
    year	= 2023,
    volume	= 21,
    number	= 2,
    pages	= {70-76},
}

@InProceedings{Ruef19,
    author	= {Andrew Ruef and Leonidas Lampropoulos and Ian Sweet and David Tarditi and Michael Hicks},
    title	= {Achieving Safety Incrementally with {Checked C}},
    editor	= {Flemming Nielson and David Sands},
    booktitle	= {Principles of Security and Trust},
    publisher	= {Springer International Publishing},
    address	= {Cham},
    year	= {2019},
    pages	= {76-98},
}

