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

推荐订阅源

IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园_首页
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
ThreatConnect
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 聂微东
H
Help Net Security
T
Threat Research - Cisco Blogs
Blog — PlanetScale
Blog — PlanetScale
A
Arctic Wolf
G
Google Developers Blog
量子位
U
Unit 42
I
InfoQ
V
V2EX
F
Fox-IT International blog
P
Privacy & Cybersecurity Law Blog
V
Visual Studio Blog
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏
C
CERT Recently Published Vulnerability Notes
博客园 - 三生石上(FineUI控件)
T
The Exploit Database - CXSecurity.com
T
Tailwind CSS Blog
SecWiki News
SecWiki News
Know Your Adversary
Know Your Adversary
MyScale Blog
MyScale Blog
宝玉的分享
宝玉的分享
The Hacker News
The Hacker News
Project Zero
Project Zero
Application and Cybersecurity Blog
Application and Cybersecurity Blog
月光博客
月光博客
Recent Commits to openclaw:main
Recent Commits to openclaw:main
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
GRAHAM CLULEY
C
Cisco Blogs
I
Intezer
Simon Willison's Weblog
Simon Willison's Weblog
O
OpenAI News
Recorded Future
Recorded Future
T
Tenable Blog
W
WeLiveSecurity
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
T
The Blog of Author Tim Ferriss
www.infosecurity-magazine.com
www.infosecurity-magazine.com
D
Docker
C
Cybersecurity and Infrastructure Security Agency CISA
PCI Perspectives
PCI Perspectives

文章列表

PhD Seminar • Artificial Intelligence | Machine Learning • Basis Transformers for Multi-Task Tabular Regression | 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 Seminar • Computer Algebra | Symbolic Computation • Signature-based Gröbner basis Algorithms for Determinantal Ideals | Cheriton School of Computer Science | University of Waterloo Rhetoricon Symposium: Figures & Constructions, Constructions & Figures 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 • 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 PhD Seminar • Cryptography, Security, and Privacy (CrySP) • Selective MPC: Distributed Computation of Differentially Private Key-Value Statistics
Master’s Thesis Presentation • Programming Languages • C∀ Collection Library | Cheriton School of Computer Science | University of Waterloo
Joe Petrik · 2026-05-27 · via

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.