% Operating systems @inproceedings{ LionsOs:Heiser, address = {Gladstone, QLD, AU}, author = {Gernot Heiser}, booktitle = {Everything Open}, month = apr, organization = {Linux Australia}, title = {{Lions OS}: Secure -- Fast -- Adaptable}, year = {2024} } @misc{ 3L:Hintz, title = {3L: The Computing System of the Future}, author = {Thomas Hintz}, year = 2016, note = {Accessed: 2024-06-20}, howpublished = {\url{https://3lproject.org/}} } @phdthesis{ securityKernelLambda:Rees, title={A security kernel based on the lambda-calculus}, author={Rees, Jonathan A}, year={1995}, school={Massachusetts Institute of Technology} } % Oberon @book{ Oberon:Wirth, title={Project Oberon, The Design of an Operating System and Compiler}, author={Niklaus Wirth and Jürg Gutknecht}, year={1992}, isbn={0-201-54428-8}, publisher={Addison-Wesley/ACM Press}, url={https://people.inf.ethz.ch/wirth/ProjectOberon1992.pdf} } % Unix @book{ QuarterCenturyUnix:Salus, title={A Quarter Century of UNIX}, author={Peter H. Salus}, year={1994}, isbn={0-201-54777-5}, publisher={Addison-Wesley} } % Problems with the things we use @article{ Threads:Lee, author = {Lee, Edward}, year = {2006}, month = {06}, pages = {33 - 42}, title = {The Problem with Threads}, volume = {39}, journal = {Computer}, doi = {10.1109/MC.2006.180} } @inproceedings{ fork:Baumann, title={A fork () in the road}, author={Baumann, Andrew and Appavoo, Jonathan and Krieger, Orran and Roscoe, Timothy}, booktitle={Proceedings of the Workshop on Hot Topics in Operating Systems}, pages={14--22}, year={2019} } @article{ MythsPL:Shaw, title={Myths and mythconceptions: what does it mean to be a programming language, anyhow?}, volume={4}, ISSN={2475-1421}, url={http://dx.doi.org/10.1145/3480947}, DOI={10.1145/3480947}, number={HOPL}, journal={Proceedings of the ACM on Programming Languages}, publisher={Association for Computing Machinery (ACM)}, author={Shaw, Mary}, year={2020}, month=jun, pages={1–44} } @article{ SpectreMeltdown:HillMasters, author={Hill, Mark D. and Masters, Jon and Ranganathan, Parthasarathy and Turner, Paul and Hennessy, John L.}, journal={IEEE Micro}, title={On the Spectre and Meltdown Processor Security Vulnerabilities}, year={2019}, volume={39}, number={2}, pages={9-19}, keywords={Hardware;Computer architecture;Virtual machining;Microarchitecture;Microprocessors;Software development}, doi={10.1109/MM.2019.2897677} } % Programming languages @article{ lua:Ierusalimschy, abstract = {We discuss the main novelties of the implementation of Lua 5.0: its register-based virtual machine, the new algorithm for optimizing tables used as arrays, the implementation of closures, and the addition of coroutines.}, author = {Ierusalimschy, Roberto and de Figueiredo, Luiz Henrique and Celes, Waldemar}, doi = {10.3217/jucs-011-07-1159}, journal = {Journal of Universal Computer Science}, keywords = {Language Lua VM}, number = 7, pages = {1159--1176}, title = {The Implementation of Lua 5.0}, url = {http://www.jucs.org/jucs_11_7/the_implementation_of_lua}, volume = 11, year = 2005 } % Computers @inproceedings{ riscvSelfHostingComputer:Somlo, author={Somlo, Gabriel L.}, booktitle={2020 IEEE Security and Privacy Workshops (SPW)}, title={Toward a Trustable, Self-Hosting Computer System}, year={2020}, volume={}, number={}, pages={136-143}, keywords={Privacy;Conferences;Supply chains;Hardware;Software;Trojan horses;Computer security}, doi={10.1109/SPW50608.2020.00039} } % https://www.contrib.andrew.cmu.edu/~somlo/BTCP/ @inbook{EvolutionComputing:Larus, author="Larus, James R.", editor="Werthner, Hannes and Ghezzi, Carlo and Kramer, Jeff and Nida-R{\"u}melin, Julian and Nuseibeh, Bashar and Prem, Erich and Stanger, Allison", title="Evolution of Computing", bookTitle="Introduction to Digital Humanism: A Textbook", year="2024", publisher="Springer Nature Switzerland", address="Cham", pages="31--45", abstract="Computers and computing emerged within a lifetime and completely changed our world. Although their history is brief, the change they precipitated has been rapid and constant. Today's world would be unimaginably different without these machines. Not necessarily worse, but certainly slower, static, disconnected, and poorer. One has to look back to the steam engine in the nineteenth century or electricity in the early twentieth century to find technologies with similar rapid and far-reaching effects. This chapter briefly describes the evolution of computing and highlights how its growth is closely tied to concerns of digital humanism.", isbn="978-3-031-45304-5", doi="10.1007/978-3-031-45304-5_3", url="https://doi.org/10.1007/978-3-031-45304-5_3" } % ISA design @article{ GeneralPurposeProcessor:Chisnall, author = {Chisnall, David}, title = {There’s No Such Thing as a General-purpose Processor: And the belief in such a device is harmful}, year = {2014}, issue_date = {October 2014}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, volume = {12}, number = {10}, issn = {1542-7730}, url = {https://doi.org/10.1145/2685690.2687011}, doi = {10.1145/2685690.2687011}, abstract = {There is an increasing trend in computer architecture to categorize processors and accelerators as "general purpose." Of the papers published at this year’s International Symposium on Computer Architecture (ISCA 2014), nine out of 45 explicitly referred to general-purpose processors; one additionally referred to general-purpose FPGAs (field-programmable gate arrays), and another referred to general-purpose MIMD (multiple instruction, multiple data) supercomputers, stretching the definition to the breaking point. This article presents the argument that there is no such thing as a truly general-purpose processor and that the belief in such a device is harmful.}, journal = {Queue}, month = {oct}, pages = {20–25}, numpages = {6} } @article{LiberateFromVonNeumann:Backus, author = {Backus, John}, title = {Can programming be liberated from the von Neumann style? a functional style and its algebra of programs}, year = {1978}, issue_date = {Aug. 1978}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, volume = {21}, number = {8}, issn = {0001-0782}, url = {https://doi.org/10.1145/359576.359579}, doi = {10.1145/359576.359579}, abstract = {Conventional programming languages are growing ever more enormous, but not stronger. Inherent defects at the most basic level cause them to be both fat and weak: their primitive word-at-a-time style of programming inherited from their common ancestor—the von Neumann computer, their close coupling of semantics to state transitions, their division of programming into a world of expressions and a world of statements, their inability to effectively use powerful combining forms for building new programs from existing ones, and their lack of useful mathematical properties for reasoning about programs.An alternative functional style of programming is founded on the use of combining forms for creating programs. Functional programs deal with structured data, are often nonrepetitive and nonrecursive, are hierarchically constructed, do not name their arguments, and do not require the complex machinery of procedure declarations to become generally applicable. Combining forms can use high level programs to build still higher level ones in a style not possible in conventional languages.Associated with the functional style of programming is an algebra of programs whose variables range over programs and whose operations are combining forms. This algebra can be used to transform programs and to solve equations whose “unknowns” are programs in much the same way one transforms equations in high school algebra. These transformations are given by algebraic laws and are carried out in the same language in which programs are written. Combining forms are chosen not only for their programming power but also for the power of their associated algebraic laws. General theorems of the algebra give the detailed behavior and termination conditions for large classes of programs.A new class of computing systems uses the functional programming style both in its programming language and in its state transition rules. Unlike von Neumann languages, these systems have semantics loosely coupled to states—only one state transition occurs per major computation.}, journal = {Commun. ACM}, month = {aug}, pages = {613–641}, numpages = {29}, keywords = {von Neumann languages, von Neumann computers, programming languages, program transformation, program termination, program correctness, models of computing systems, metacomposition, functional programming, functional forms, combining forms, applicative state transition systems, applicative computing systems, algebra of programs} } @inproceedings{CHERI:Woodruff, author={Woodruff, Jonathan and Watson, Robert N. M. and Chisnall, David and Moore, Simon W. and Anderson, Jonathan and Davis, Brooks and Laurie, Ben and Neumann, Peter G. and Norton, Robert and Roe, Michael}, booktitle={2014 ACM/IEEE 41st International Symposium on Computer Architecture (ISCA)}, title={The CHERI capability model: Revisiting RISC in an age of risk}, url={https://www.cl.cam.ac.uk/research/security/ctsrd/pdfs/201406-isca2014-cheri.pdf}, year={2014}, volume={}, number={}, pages={457-468}, keywords={Ground penetrating radar;Abstracts;Safety;Registers;Coprocessors}, doi={10.1109/ISCA.2014.6853201} } % PL popularity @misc{PLCommunity:Tambad, title={Analyzing programming languages by community characteristics on Github and StackOverflow}, author={Samarth Tambad and Rohit Nandwani and Suzanne K. McIntosh}, year={2020}, eprint={2006.01351}, archivePrefix={arXiv}, primaryClass={cs.SE}, url={https://arxiv.org/abs/2006.01351}, }