惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
D
Docker
腾讯CDC
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
博客园 - 三生石上(FineUI控件)
Recent Announcements
Recent Announcements
F
Fortinet All Blogs
IT之家
IT之家
WordPress大学
WordPress大学
M
MIT News - Artificial intelligence
爱范儿
爱范儿
Microsoft Azure Blog
Microsoft Azure Blog
Vercel News
Vercel News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog
Engineering at Meta
Engineering at Meta
博客园 - 【当耐特】

Cheriton School of Computer Science

Master's Thesis Presentation • Computer Graphics • VR GAViewer: Immersive Visualisation and Direct Manipulation of the Conformal Model in Virtual Reality | Cheriton School of Computer Science | University of Waterloo Seminar • Algorithms and Complexity • Lower Bounds for Private Optimization Via Reconstruction Attacks | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Data Systems • Efficient Oblivious Query Processing for Property Graph Databases | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Artificial Intelligence | Machine Learning • Inferred Author Gender as a Variable Affecting LLM Behaviour | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Bioinformatics • From Candidates to Evidence: Diagnostics for Trustworthy Biological Discovery | Cheriton School of Computer Science | University of Waterloo PhD Defence • Algorithms and Complexity • Graph Property Testing and the Container Method | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Software Engineering • An Empirical Study of Transitive Vulnerability Exposure in PyPI | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Human–Computer Interaction • The Design and Development of a Virtual Patient System for Medical Education | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Software Engineering • Decoupling CLI Agent Scaffolding to Internalize Planning Across Scaffolds | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Algorithms and Complexity • On the Black-Box Impossibility of Hardness in TFNP from One-Way Functions | Cheriton School of Computer Science | University of Waterloo Seminar • Algorithms and Complexity • Geometric Distances for Curves and Graphs: From Matching to Simplification | Cheriton School of Computer Science | University of Waterloo PhD Defence • Computer Algebra | Symbolic Computation • On the Effective Algebraic Geometry of Determinantal Varieties | Cheriton School of Computer Science | University of Waterloo Seminar • Algorithms and Complexity • Computing with Full Memory in 2026 | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Algorithms and Complexity • Bipartite Density: From Mixing Time to Local Algorithms for Dense Subgraphs | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Cryptography, Security, and Privacy (CrySP) • Upgrading Security Properties for Updatable Public-Key Encryption through Modular Transformations | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Programming Languages • The Defensive Tax: Price of Defenses That Never Defend | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Algorithms and Complexity • Algorithms for Analytic Combinatorics: Positivity Bounds and D-finite Operators | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Cryptography, Security, and Privacy (CrySP) • IPFSCover: Examining Website Fingerprinting Threats in the InterPlanetary File System | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Programming Languages • Reified Generic Types for Scala 3 on the JVM | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Artificial Intelligence | Machine Learning • Abstract Reasoning with Vector Symbolic Algebras | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Artificial Intelligence | Machine Learning • Learning at Test Time: Adapting Models with Synthetic Data and Environment Interaction | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Formal Methods • Counterexample Guided Abstraction and Refinement in Dash Models | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Systems and Networking • Runtime Configuration of GPU Workloads for Energy-efficient Execution | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Artificial Intelligence | Machine Learning • Beyond Semantic Similarity: Direct Corpus Interaction for Agentic Search | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Artificial Intelligence | Machine Learning • OpenResearcher: Reproducible Training for Long-Horizon Deep Research Agents | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Software Engineering • SLA-Awareness for AI-assisted coding | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Software Engineering • Context-Aware CodeLLM Eviction for AI-assisted Coding | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Bioinformatics • Recurrent Energy-Based Modeling of Side-Chain Allostery | Cheriton School of Computer Science | University of Waterloo Seminar • Bioinformatics | Artificial Intelligence • Advancing Drug Discovery with FAIR Data and Explainable AI in Biomedical Research | Cheriton School of Computer Science | University of Waterloo PhD Defence • Artificial Intelligence | Machine Learning | Bioinformatics • Generative Synthetic Data for Pre-Clinical Drug Discovery | Cheriton School of Computer Science | University of Waterloo
Master’s Thesis Presentation • Programming Languages • C∀...
Joe Petrik · 2026-05-27 · via Cheriton School of Computer Science

Please note: This master’s thesis presentation will take place in DC 3317 and online.

Michael Brooks, Master’s candidate
David R. Cheriton School of Computer Science

Supervisor: Professor Peter Buhr

C strives to fix issues in C, chief among them safety. This thesis presents a significant step forward in C’s goal to remove unsafe pointer operations. It describes improvements to the C language design to support advanced collection features. These features are implemented across the C compiler and runtime libraries. The results maintain another C goal of offering strong backwards compatibility with C. To achieve these goals, this work leverages preexisting C contributions by prior students, particularly novel applications of the compiler’s type system.

All modern programming languages provide these three high-level collections (containers): array, linked-list, and string. Often, the array is part of the programming language, while linked lists are built from (recursive) pointer types, and strings from arrays and/or linked lists. For all three types, languages and/or their libraries supply varying degrees of high-level mechanisms for manipulating these objects at the bulk and component levels, such as copying, slicing, extracting, and iterating among elements. Unfortunately, typical implementations for these key types in C cause 60%–70% of the reported software vulnerabilities involving memory errors, where 70%–80% of hacker attack-vectors target these types. Therefore, hardening these three C types and suggesting programmers use them as their default types goes a long way to increase memory safety in the majority of C programs.

Specifically, an array is provided that tracks its length internally, relieving the user and implementor from managing explicit length arguments/parameters and stopping buffer-overrun errors. This feature requires augmenting the C type system, making array length available at compile and runtime. A linked-list utility is provided that obviates many user-managed recursive pointers, while catering directly to system-programming using intrusive linking. Finally, a string utility is provided with implicit memory management of text in a specialized heap, removing error-prone buffer management, including overrun, and providing a copy-on-write speed boost. For all three utilities, performance is argued to be on-par or surpass those in other comparable languages. With the array, this case is made by showing complete erasure down to a naked C array, modulo runtime bound checks, which are removable more often than with Java-style length management. With the linked list and string, empirical measures are compared with C and C++ comparable libraries. These collections offer programmers workable alternatives to hand-rolling specialized libraries, which is a huge safety benefit, eliminating many system vulnerabilities. The results establish C’s position as a safety-forward programming alternative.


To attend this master’s thesis presentation in person, please go to DC 3317. You can also attend virtually on Zoom.