In the course of research and mentoring students, I've had need of creating serveral tutorials for students and undergraduate researchers to use in the course of their work. Please feel free to make comments on the various Disqus message boards located at the bottom of each page. If you'd like to use material here, also feel free but only if you provide a link back to the original material on my site.

Connecting a C/C++ process to Java using Pipes

A brief tutorial on various ways to communicate between two processes, one running as a full system process authored in C/C++ and another running on a JVM.

How to use GNU Flex and Bison with C++

I’ve found that there were very few if any full tutorials and examples for GNU Flex and Bison (even on the GNU website). In the course of developing a compiler, I created a basic example that counts works and characters (similar to the GNU word count utility) so that new users of Flex and Bison can quickly see how they work with C++. Feel free to fork the repo and create your own scanner/parser combination.

How to time software

Timing software is a very common task in performance analysis but it is often done poorly. Course timings can be fairly easy, but often finer precision is necessary. This is where things get interesting and where this tutorial largely begins. NOTE: excuse the mess, I still need to convert this one to the new format.

Calling C++ Functions from C

This is an often needed, but widely mis-understood aspect when beginning programmers are first called upon to perform it. I skip such topics as the C ABI and focus solely on the semantics and calling style necessary to make C++ functions and objects callable from a C program. NOTE: excuse the mess, I still need to convert this one to the new format.