Conor O'Brien
AboutContactProjectsPapers

Papers

All papers distributed here (unless otherwise stated) licensed under CC BY 4.0, in accordance with William & Mary's Copyright ownership policy:

Regarding works for which you have ownership, you have the option to assign licensing terms using free licenses from the not-for-profit Creative Commons.

Contents

All papers sorted reverse chronologically (most recent first), but organized here also by subject for convenience.

Computer Science

  1. Review and Reformulation of the Sea Lion Optimization Metaheuristic
  2. Research Artifact: Color Schemes
  3. StellerJ: A Compiled Approach to the Functional Array Language Paradigm
  4. CIR: Applying Cryptographic IR for Lawmakers Targeting AES
  5. Survey of Security in Programming Language Design

Philosophy

  1. Feeling Free and Moral Relevance

Review and Reformulation of the Sea Lion Optimization Metaheuristic

December 8, 2023 ⋅ Computer Science

Authors: Conor O'Brien ⋅ Pages: 2 ⋅ Status: Complete

Abstract: The Sea Lion Optimization Algorithm (SLnO) is a recent metaheuristic optimization algorithm suitable for optimizing given functions over given search spaces. Its biphasic behavior helps find minima in many circumstances, including unimodal and multimodal distributions. We present the most concise and best articulated formulation of SLnO to date, identify shortcomings in the original formulation, and summarize the strengths of SLnO.

Note, April 24, 2024: Fixed some typos in the paper, including in the title and abstract! Previously, “Metaheurestic”, e.g. The old version of the paper (with typos) is available here for posterity.

Research Artifact: Color Schemes

November 7, 2023 ⋅ Computer Science

Authors: Conor O'Brien ⋅ Pages: 10 ⋅ Status: Complete

Comments: A research artifact documenting approaches to accessible color schemes, including novel findings and workings on Achromatopsia Linear Diverging Colormaps—colormaps which are diverging to full-spectrum vision, but transform to linear colormaps under achromatopsia vision. Part of my work on the ASTxplainer project.

StellerJ: A Compiled Approach to the Functional Array Language Paradigm

May 16, 2023 ⋅ Computer Science

Authors: Conor O'Brien ⋅ Pages: 5 ⋅ Status: Complete

Abstract: StellerJ is a dialect of the functional array programming language J, targeted at LLVM. This paper examines the potential array languages like J have with high-performance computing by exploring the potential benefits of compiling instead of interpreting such languages. Compiling tacit structures involves dissecting the idioms used to construct them into compilable and analyzable fragments. The StellerJ implementation is compared for execution speed against equivalent programs in J, and in two approaches of programming in C++ (vectorized and unvectorized).

Comments: Writing the paper and corresponding compiler was an interesting experience, but getting intimately acquainted with LLVM to utilize it to its fullest advantage was too lofty a goal for me. In retrospect, I would have chosen an easier compile target, such as C.

CIR: Applying Cryptographic IR for Lawmakers Targeting AES

May 15, 2023 ⋅ Computer Science

Authors: Conor O'Brien ⋅ Pages: 7 ⋅ Status: Complete

Abstract: The process of implementing cryptographic protocols to meet external standards is complex, time-consuming, and requires effective communication between legislators, cryptographers, and programmers. The implementation of the Advanced Encryption Standard (AES) involves referencing multiple specifications, testing against given examples, and passing NIST approval. While established, tested, and open-source cryptographic algorithm implementations are recommended, implementing new or obscure algorithms face similar issues as rolling one's own crypto. This paper aims to investigate several research questions related to the implementation of cryptographic protocols, the structure of a correct AES implementation, adapting the way legislators write law to an IR, ensuring the integrity of our static web application, and assessing the effectiveness of a well-designed IR skeleton. As a result of our research, we propose CIR 0.1, a prototype intermediate representation which empowers programmers to express partial code skeletons with varying possible levels of granularity. We showcase its syntax, as well as demonstrate and evaluate potential intermediate representations in CIR for writeability, legibility, and accuracy. We find CIR to be more flexible than shipping an implementation with a protocol, but neither general enough for application to any protocol, nor qualitatively excellent enough to contend against existing solutions and the status quo.

Comments: To quote my professor, “your project idea is very promising, only the execution lacked”. Unfortunately, it was an insanely busy semester, and I did not have sufficient time to adequately flesh out the idea.

Feeling Free and Moral Relevance

December 23, 2022 ⋅ Philosophy

Authors: Conor O'Brien ⋅ Pages: 9 ⋅ Status: Complete

Summary: What determines if we are free? Free will has long been the subject of heavy debate, and useful for determining moral responsibility. I propose that an agent is morally responsible for an action and its reasonably foreseeable consequences if and only if that agent feels free in doing that action. In so claiming, I investigate what it means to feel free, and what we can reasonably expect an agent to foresee.

Survey of Security in Programming Language Design

December 9, 2022 ⋅ Computer Science

Authors: Conor O'Brien ⋅ Pages: 7 ⋅ Status: Complete

Abstract: Previous surveys of security vulnerabilities have predominately focused on static identification. This paper seeks to fill the relatively unexamined niche in security survey literature which examines the design of programming languages themselves. It examines the vulnerability features of particular programming languages, as well as general features of programming languages, and potential methods used to mitigate the issues arising thereof. I express the language design maxims of Security-convenience alignment, Security consciousness, and Programmer-first safety.