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

推荐订阅源

V
Vulnerabilities – Threatpost
V
V2EX
GbyAI
GbyAI
Recent Announcements
Recent Announcements
Microsoft Security Blog
Microsoft Security Blog
阮一峰的网络日志
阮一峰的网络日志
Hugging Face - Blog
Hugging Face - Blog
T
Tailwind CSS Blog
Y
Y Combinator Blog
C
Check Point Blog
爱范儿
爱范儿
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
美团技术团队
雷峰网
雷峰网
IT之家
IT之家
WordPress大学
WordPress大学
V
Visual Studio Blog
Microsoft Azure Blog
Microsoft Azure Blog
MyScale Blog
MyScale Blog
N
News and Events Feed by Topic
罗磊的独立博客
S
SegmentFault 最新的问题
S
Security Affairs
aimingoo的专栏
aimingoo的专栏
F
Fortinet All Blogs
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
H
Hacker News: Front Page
Google DeepMind News
Google DeepMind News
B
Blog
O
OpenAI News
C
Cisco Blogs
Simon Willison's Weblog
Simon Willison's Weblog
The Last Watchdog
The Last Watchdog
Hacker News: Ask HN
Hacker News: Ask HN
博客园_首页
人人都是产品经理
人人都是产品经理
C
Cybersecurity and Infrastructure Security Agency CISA
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Help Net Security
Help Net Security
月光博客
月光博客
J
Java Code Geeks
L
LangChain Blog
博客园 - 司徒正美
Stack Overflow Blog
Stack Overflow Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
Apple Machine Learning Research
Apple Machine Learning Research
T
The Exploit Database - CXSecurity.com
N
News and Events Feed by Topic
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

Cheriton School of Computer Science

Seminar • Algorithms & Complexity • Paintability of Bipartite Graphs | Cheriton School of Computer Science | University of Waterloo PhD Defence • Information Retrieval • Breaking Information Silos: Advancing Search Systems for Unified Information Seeking | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Symbolic Computation • Sobolev Regularized Polynomial Features for Robust Handwritten Symbol Recognition | Cheriton School of Computer Science | University of Waterloo PhD Defence • Programming Languages • Implementation Techniques for Lexical Effect Handlers | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Computational Finance • Data Scarcity and the Decumulation Problem: Two Challenges in Finance PhD Seminar • Artificial Intelligence | Machine Learning • From Verifiable Rewards to Tool-Using Agents: VerlTool for Agentic Reinforcement Learning | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Artificial Intelligence | Machine Learning • Understanding Hour-Long Videos with Hybrid Mamba-Transformers | Cheriton School of Computer Science | University of Waterloo Seminar • Human–Computer Interaction | Artificial Intelligence • Scaling Foundation Models & Agentic AI that Supports Healthy Living | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Algorithms and Complexity • Container Lemmas and the Query Complexity of Graph Property Testing | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Human–Computer Interaction • Technology-mediated Group Idea Generation and Evaluation for Artistic Creations Across Disciplines | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Artificial Intelligence | Machine Learning • A Unified Perturbation Framework for Analyzing Leaderboard Stability and Manipulation | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Artificial Intelligence | Human–Computer Interaction • AI in Mental Health: Clinician Perceptions and the Need for AI Literacy in Participatory Research | Cheriton School of Computer Science | University of Waterloo PhD Defence • Artificial Intelligence | Machine Learning • Multilingual Embeddings: Data, Training, and Understanding | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Data Systems • Evaluating LLM Robustness Under Adversarial and Conflicting Evidence in Health Question Answering and Claim Verification | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Symbolic Computation • Stability of Sobolev-Regularized Polynomial Differentiation Matrices | Cheriton School of Computer Science | University of Waterloo PhD Defence • Artificial Intelligence | Machine Learning • Gradient-based Methods for Multi-Objective Optimization with Applications in Machine Learning | Cheriton School of Computer Science | University of Waterloo PhD Defence • Artificial Intelligence | Machine Learning • Towards Foundation Models for Text-Rich Multimodal Tabular Data | Cheriton School of Computer Science | University of Waterloo Seminar • Algorithms and Complexity • A Strong Linear Programming Relaxation for Weighted Tree Augmentation | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Data Systems • Query Expansion in the Era of Large Language Models | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Algorithms and Complexity • Multistroke Character Recognition Using Orthogonal Polynomial Representations | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Artificial Intelligence | Machine Learning • Basis Transformer as a Foundation Model for Multimodal Tabular Representation Learning | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Quantum Computing • Quantum Colorings of Spheres | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Programming Languages • Tensor Probabilistic Model Checking of Finite-Horizon Markov Chains | Cheriton School of Computer Science | University of Waterloo Seminar • Algorithms and Complexity • Follow-the-Perturbed-Leader with Between-Action Dependence | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Artificial Intelligence | Machine Learning • UniMaia: Steering Chess Policies with Language for Human-like Play | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Cryptography, Security, and Privacy (CrySP) • The Evolution of Differentially Private Clustering | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Software Engineering • Trade-offs in Generic Programming: A Cross-Language Performance Study | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Artificial Intelligence | Explainable AI • Atomic Explanations for Retrieval-Augmented LLM Systems | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Cryptography, Security, and Privacy (CrySP) • Parallel Efficient Secure DBSCAN Approximation | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Artificial Intelligence | Machine Learning • Talk, Judge, Cooperate: Gossip-Driven Indirect Reciprocity in Self-Interested LLM Agents | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Data System • Diversed Model Discovery via Structured Table Discovery | Cheriton School of Computer Science | University of Waterloo PhD Defence • Programming Languages • Design and Implementation of Probabilistic Programming Languages for Sound and Scalable Inference | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Artificial Intelligence | Machine Learning • Basis Transformers for Multi-Task Tabular Regression | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Data Systems • LLM-Based Frameworks for Information Retrieval Evaluation | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Human–Computer Interaction • DuckDuckTalk: Conversational Agent Teams to Support Active Externalization during Collaborative Data Analysis | Cheriton School of Computer Science | University of Waterloo PhD Defence • Data Systems • Development and Evaluation of Assistive AI Systems for Assessing News Trustworthiness | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Software Engineering • Does Impact Analysis Support the Review of Changes to Build Specifications? | Cheriton School of Computer Science | University of Waterloo PhD Defence • Bioinformatics • Deep Learning for Accurate and Reliable De Novo Peptide Sequencing: From Missing Fragmentation to Open Modification Discovery | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Computer Algebra | Symbolic Computation • Signature-based Gröbner basis Algorithms for Determinantal Ideals | Cheriton School of Computer Science | University of Waterloo DLS: Gilles Brassard — Alan Turing and me | Cheriton School of Computer Science | University of Waterloo Rhetoricon Symposium: Figures & Constructions, Constructions & Figures | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Systems and Networking • Attacks on Approximate Caches in Text-to-Image Diffusion Models | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Data Systems • Differentially Oblivious Multi-way Join | Cheriton School of Computer Science | University of Waterloo PhD Defence • Cryptography, Security, and Privacy (CrySP) • Assumption Stress-Testing for Machine Learning Security | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Artificial Intelligence | Machine Learning • Simulating the Lateral Reader with an Iterative Multi-Agent RAG System for News Trustworthiness Assessment | Cheriton School of Computer Science | University of Waterloo Master’s Thesis Presentation • Human–Computer Interaction • Investigating Osu!: Exploring a Community who Exhibit Extreme Input Performance | Cheriton School of Computer Science | University of Waterloo PhD Defence • Algorithms and Complexity • Towards Fast, Safe and Persistent Concurrent Data Structures for Non-experts | Cheriton School of Computer Science | University of Waterloo PhD Defence • Algorithms and Complexity • The Sample Complexity of Differentially Private Statistical Estimation | Cheriton School of Computer Science | University of Waterloo PhD Defence • Cryptography, Security, and Privacy (CrySP) • Evolving Trade-offs Towards Deployable Private Systems for Data Science | Cheriton School of Computer Science | University of Waterloo PhD Seminar • Cryptography, Security, and Privacy (CrySP) • Selective MPC: Distributed Computation of Differentially Private Key-Value Statistics | Cheriton School of Computer Science | University of Waterloo PhD Defence • Quantum Computing • Circuits, Codes and Capacity | Cheriton School of Computer Science | University of Waterloo PhD Defence • Cryptography, Security, and Privacy (CrySP) • Deployment Concerns in Machine Learning Systems: Unintended Interactions and Accountability | Cheriton School of Computer Science | University of Waterloo PhD Defence • Systems and Networking • Efficient High-precision Monitoring of Network Slices for 5G and Beyond Networks | Cheriton School of Computer Science | University of Waterloo
Master’s Thesis Presentation • Programming Languages • C∀ Collection Library | Cheriton School of Computer Science | University of Waterloo
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.