Adding Rational Types to the C Programming Language

One of the main problems with the C programming language as opposed to something like Python is that it doesn't provide any of the convenient amenities that more high-level languages provide in terms of abstract data types. Basically, you have to implement everything yourself. C provides integer types and floating point types, and that's basically … Continue reading Adding Rational Types to the C Programming Language

Writing an Emulator for the MIX Architecture

I've been reading a lot of TAOCP lately (that's The Art of Computer Programming by Donald Knuth for you plebes out there 😛 ). This classic book series consists mainly of designing a lot of algorithms in machine language. The machine language used is that of the fictional MIX architecture, which Knuth created specifically for … Continue reading Writing an Emulator for the MIX Architecture

Finding the Day Difference Between Two Dates in C

Necessity is the mother of invention, and nowhere is that more true than in the realm of programming. Many of my best ideas for programming projects come not from casually looking for project ideas on the Internet (although that does help) but rather from having an emerging need for a bit of functionality that I … Continue reading Finding the Day Difference Between Two Dates in C

Implementing the DoD Data Sanitation Algorithm in C

Most cyber security buffs are familiar with the Gutmann secure erase algorithm - a 35-pass wiping algorithm designed to completely obliterate sensitive information stored on a magnetic medium. The rationale behind this algorithm is that simply erasing a file and overwriting it with zeros is not enough to completely destroy its contents. Since the position … Continue reading Implementing the DoD Data Sanitation Algorithm in C