Sitemap

A list of all the posts and pages found on the site. For you robots out there is an XML version available for digesting as well.

Pages

Posts

Rust: Generics Considered Colorful

4 minute read

Published:

This post shows that Rust’s generics are colorful. I’ll demonstrate an example to show what I mean, and what the problems are.

A Concept and Template Meta-programming Approach to Session Types in C++

16 minute read

Published:

Introduction

Programs communicate – whether with other programs or humans. Software developers write programs with a protocol in mind. Sometimes there’s documentation for the protocol. But there’s no mechanism that keeps implementation and documentation in sync. Bugs occur when protocols diverge.

Using F* to Formally Verify Programs

30 minute read

Published:

Formal methods are currently not widely embraced due to their perceived difficulty. However, the landscape is changing with the emergence of new technologies that make formal methods more accessible than ever before. F*, developed by Microsoft Research, is a groundbreaking functional language that combines dependent types and proof-oriented features. By bridging the gap between programming and proving, F* facilitates a gradual adoption of formal methods by software engineers. In this post, I will provide an introduction to the basics of F* and demonstrate how we can leverage its capabilities to verify a solution to a LeetCode problem. I can’t cover all the background material needed to understand F* in this post. I assume that you have some experience in a language like Haskell or OCaml.

publications

A Study on Software Bugs in Unmanned Aerial Systems

Published in 2021 International Conference on Unmanned Aircraft Systems (ICUAS), 2021

This paper studies over 200 previously reported bugs in UAS control firmware.

Recommended citation: M. Taylor, J. Boubin, H. Chen, C. Stewart and F. Qin, "A Study on Software Bugs in Unmanned Aircraft Systems," 2021 International Conference on Unmanned Aircraft Systems (ICUAS), 2021, pp. 1439-1448, doi: 10.1109/ICUAS51884.2021.9476844. https://www.researchgate.net/publication/351607363_A_Study_on_Software_Bugs_in_Unmanned_Aircraft_Systems

Avis: In-Situ Model Checking for Unmanned Aerial Vehicles

Published in 2021 51st Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), 2021

This paper describes Avis, an in-situ model checker for UAS firmware.

Recommended citation: M. Taylor, H. Chen, F. Qin and C. Stewart, "Avis: In-Situ Model Checking for Unmanned Aerial Vehicles," 2021 51st Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), 2021, pp. 471-483, doi: 10.1109/DSN48987.2021.00057. https://arxiv.org/abs/2106.14959

SA4U: Practical Static Analysis for Unit Type Error Detection

Published in 37th IEEE/ACM International Conference on Automated Software Engineering (ASE ’22), 2022

This paper describes SA4U, a tool for detecting unit type errors in C++ programs.

Recommended citation: Max Taylor, Johnathon Aurand, Feng Qin, Xiaorui Wang, Brandon Henry, and Xiangyu Zhang. 2022. SA4U: Practical Static Analysis for Unit Type Error Detection. In 37th IEEE/ACM International Conference on Automated Software Engineering (ASE ’22), October 10–14, 2022, Rochester, MI, USA. ACM, New York, NY, USA, 11 pages. https://doi.org/10.1145/3551349.3556937 /files/sa4u.pdf

teaching

Advanced C

Undergraduate course, The Ohio State University, Department of Computer Science and Engineering, 2019

Taught an undergraduate course on the C programming language.

Advanced C

Undergraduate course, The Ohio State University, Department of Computer Science and Engineering, 2020

Taught an undergraduate course on the C programming language.

Software I

Undergraduate course, The Ohio State University, Department of Computer Science and Engineering, 2020

Taught an undergraduate course on the foundations of software engineering in Java.

Software I

Undergraduate course, The Ohio State University, Department of Computer Science and Engineering, 2021

Taught an undergraduate course on the foundations of software engineering in Java.

Software I

Undergraduate course, The Ohio State University, Department of Computer Science and Engineering, 2021

Taught an undergraduate course on the foundations of software engineering in Java.

Advanced Operating Systems

Grader for Graduate Course, The Ohio State University, Department of Computer Science and Engineering, 2022

Graded the graduate level operating systems course.