Open Access. Powered by Scholars. Published by Universities.®
Programming Languages and Compilers Commons™
Open Access. Powered by Scholars. Published by Universities.®
- Discipline
- Institution
- Publication
- Publication Type
Articles 1 - 8 of 8
Full-Text Articles in Programming Languages and Compilers
Spinlock Game Engine, Shane Misley
Spinlock Game Engine, Shane Misley
Posters - 2026
Modern game engines prioritize developer convenience at the cost of performance and transparency. Large frameworks like Unity and Unreal Engine abstract away implementation details, which simplifies development but introduces computational overhead—often 40-50% of CPU and memory usage goes to engine infrastructure rather than the actual game. For developers targeting low-end hardware, older systems, or performance-critical applications, this overhead becomes prohibitive. The Spinlock Engine addresses this problem by adopting a "close-to-the-metal" philosophy, stripping away unnecessary abstraction layers to deliver raw speed and predictable behavior. Built in C++ with SDL3 and Raylib, Spinlock prioritizes memory efficiency, CPU optimization, and developer transparency—allowing you …
Unoapi: Balancing Performance, Portability, And Productivity (P3) In Hpc Education, Konstantin Laufer, George K. Thiruvathukal
Unoapi: Balancing Performance, Portability, And Productivity (P3) In Hpc Education, Konstantin Laufer, George K. Thiruvathukal
Computer Science: Faculty Publications and Other Works
oneAPI is a major initiative by Intel aimed at making it easier to program heterogeneous architectures used in high-performance computing using a unified application programming interface (API). While raising the abstraction level via a unified API represents a promising step for the current generation of students and practitioners to embrace high- performance computing, we argue that a curriculum of well- developed software engineering methods and well-crafted exem- plars will be necessary to ensure interest by this audience and those who teach them. We aim to bridge the gap by developing a curriculum—codenamed UnoAPI—that takes a more holistic approach by looking …
Funqual: User-Defined, Statically-Checked Call Graph Constraints In C++, Andrew P. Nelson
Funqual: User-Defined, Statically-Checked Call Graph Constraints In C++, Andrew P. Nelson
Master's Theses
Static analysis tools can aid programmers by reporting potential programming mistakes prior to the execution of a program. Funqual is a static analysis tool that reads C++17 code ``in the wild'' and checks that the function call graph follows a set of rules which can be defined by the user. This sort of analysis can help the programmer to avoid errors such as accidentally calling blocking functions in time-sensitive contexts or accidentally allocating memory in heap-sensitive environments. To accomplish this, we create a type system whereby functions can be given user-defined type qualifiers and where users can define their own …
Ironclad C++ A Library-Augmented Type-Safe Subset Of C++, Christian Delozier, Richard A. Eisenberg, Santosh Nagarakatte, Peter-Michael Osera, Milo M.K. Martin, Steve Zdancewic
Ironclad C++ A Library-Augmented Type-Safe Subset Of C++, Christian Delozier, Richard A. Eisenberg, Santosh Nagarakatte, Peter-Michael Osera, Milo M.K. Martin, Steve Zdancewic
Computer Science Faculty Research and Scholarship
The C++ programming language remains widely used, de- spite inheriting many unsafe features from C—features that often lead to failures of type or memory safety that manifest as buffer overflows, use-after-free vulnerabilities, or abstrac- tion violations. Malicious attackers can exploit such viola- tions to compromise application and system security.
This paper introduces Ironclad C++, an approach to bringing the benefits of type and memory safety to C++. Ironclad C++ is, in essence, a library-augmented, type-safe subset of C++. All Ironclad C++ programs are valid C++ programs that can be compiled using standard, off-the-shelf C++ compilers. However, not all valid C++ …
Guppie: A Coordination Framework For Parallel Processing Using Shared Memory Featuring A Master-Worker Relationship, Sean Christopher Mccarthy
Guppie: A Coordination Framework For Parallel Processing Using Shared Memory Featuring A Master-Worker Relationship, Sean Christopher Mccarthy
Dissertations
Most programs can be parallelized to some extent. The processing power available in computers today makes parallel computing more desirable and attainable than ever before. Many machines today have multiple processors or multiple processing cores making parallel computing more available locally, as well as over a network. In order for parallel applications to be written, they require a computing language, such as C++, and a coordination language (or library), such as Linda. This research involves the creation and implementation of a coordination framework, Guppie, which is easy to use, similar to Linda, but provides more efficiency when dealing with large …
Common Runtime Support For High Performance Languages, Geoffrey C. Fox
Common Runtime Support For High Performance Languages, Geoffrey C. Fox
Northeast Parallel Architecture Center
Widespread adoption of parallel computing depends on the availability of improved software environments. An essential component of these environments will be high-level languages. Several languages for exploiting data-parallelism (or task-parallelism) have been developed, or are under development. The stated goal of this project has been to provide a public domain infrastructure for runtime support of these high-level languages. The targeted languages include parallel versions of Fortran and C++, but our intention has been to provide uniform runtime support for many source languages.
A Generalized Expression Optimization Hook For C++ On High-Performance Architectures, David J. Edelsohn
A Generalized Expression Optimization Hook For C++ On High-Performance Architectures, David J. Edelsohn
Northeast Parallel Architecture Center
C++ has gained broad acceptance as an object-oriented evolutionary extension to the C language, but it severely constrains methods for operating on class objects by forcing all data manipulation through an interface which assumes that all basic operations can be implemented as they are written: as unary or binary operators. C++ allows great flexibility in the creation of complex data structures which can perform the same functionality as built-in types of many other languages, but unfortunately it does not allow an equivalent level of flexibility so that operators acting on those data types can achieve the same level of efficiency …
Flattening C++ Classes, Umesh Bellur, Al Villarica, Kevin Shank, Imram Bashir, Doug Lea
Flattening C++ Classes, Umesh Bellur, Al Villarica, Kevin Shank, Imram Bashir, Doug Lea
Center for Advanced Systems and Engineering
Inheritance with derived classes and virtual functions are key design concepts in C++. Despite this, their use can result in significant degradation of run time performance. We present a class flattening tool, which we believe will help eliminate the overhead associated with virtual functions in C++ programs. A flattener may also prove useful in the reuse, debugging, and understanding of C++ components. This report deals with the issues associated with flattening, and then presents a detailed design of such a tool.