Open Access. Powered by Scholars. Published by Universities.®

Articles 1 - 8 of 8

Full-Text Articles in Programming Languages and Compilers

Spinlock Game Engine, Shane Misley Apr 2026

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 Nov 2022

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 Jun 2018

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 Oct 2013

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 May 2010

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 Jan 1998

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 Jan 1994

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 Jan 1992

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.