Click here to Skip to main content

Articles by Christopher Diggins (Articles: 16)

Articles: 16

RSS Feed

Average article rating: 4.41

Files and Folders

Quick and Dirty Series: C++ FileSize() function
Posted: 9 Dec 2004   Updated: 15 Dec 2004   Views: 129,324   Rating: 3.64/5    Votes: 24   Popularity: 5.03
Licence: Not specified      Bookmarked: 29   Downloaded: 0
Finding the size of the file in C++ in a portable manner is not trivial!

C / C++ Language

Automated Delegation
Posted: 16 Aug 2005   Updated: 16 Aug 2005   Views: 25,695   Rating: 3.26/5    Votes: 11   Popularity: 3.39
Licence: Not specified      Bookmarked: 17   Downloaded: 0
A technique for automated delegation and dynamic inheritance.
Polymorphism without Planning
Posted: 27 Nov 2004   Updated: 27 Nov 2004   Views: 29,325   Rating: 3.46/5    Votes: 14   Popularity: 3.97
Licence: Not specified      Bookmarked: 21   Downloaded: 0
The OOTL uses a technique of allowing run-time polymorphism on objects, without requiring them to plan for it.
Polymorphism without Planning (under the hood)
Posted: 28 Nov 2004   Updated: 28 Nov 2004   Views: 48,310   Rating: 4.84/5    Votes: 12   Popularity: 5.22
Licence: Not specified      Bookmarked: 32   Downloaded: 0
This article explains the techniques used to allow the interface reference types to be polymorphic on any type which provides matching function signatures.
Using Interfaces for Object Oriented Primitives
Posted: 28 Nov 2004   Updated: 7 Dec 2004   Views: 39,866   Rating: 4.65/5    Votes: 11   Popularity: 4.85
Licence: Not specified      Bookmarked: 27   Downloaded: 289
An introduction to the OOTL (Object Oriented Template Library). Describes how the OOTL uses a bleeding-edge technique of defining interface types in C++ to provide lightweight object-oriented primitives with run-time polymorphism through an IObject interface.
Program Objects: Reusing and Redirecting C++ Programs
Posted: 6 Jan 2005   Updated: 6 Jan 2005   Views: 33,460   Rating: 4.86/5    Votes: 12   Popularity: 5.24
Licence: Not specified      Bookmarked: 28   Downloaded: 341
By writing programs as objects, it can be easy to reuse programs, and redirect them to one another.
High Performance Dynamic Typing in C++ using a Replacement for boost::any
Posted: 8 Aug 2005   Updated: 9 May 2011   Views: 90,417   Rating: 4.77/5    Votes: 23   Popularity: 6.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 63   Downloaded: 289
A high-performance alternative to boost::any.
Piping between Functions
Posted: 8 Jan 2005   Updated: 8 Jan 2005   Views: 35,006   Rating: 4.05/5    Votes: 8   Popularity: 3.66
Licence: Not specified      Bookmarked: 21   Downloaded: 0
A trivial way to pipe the cout from one function to the cin of another.
Event Driven Programming using Template Specialization
Posted: 18 Dec 2004   Updated: 18 Dec 2004   Views: 39,127   Rating: 4.21/5    Votes: 16   Popularity: 5.07
Licence: Not specified      Bookmarked: 25   Downloaded: 0
Template specializations can be used as call-backs instead of functors or function pointers to create an event-driven framework.
An Event Driven Windows GUI Framework
Posted: 20 Dec 2004   Updated: 20 Dec 2004   Views: 43,324   Rating: 4.05/5    Votes: 9   Popularity: 3.86
Licence: Not specified      Bookmarked: 22   Downloaded: 335
Shows how to build a simple event based Windows GUI framework using template function specializations.

Algorithms & Recipes

Implementing Programming Languages Using C# 4.0
Posted: 22 Oct 2011   Updated: 27 Dec 2011   Views: 30,129   Rating: 4.92/5    Votes: 67   Popularity: 8.99
Licence: The MIT License      Bookmarked: 141   Downloaded: 737
An introduction to creating programming language tools using C# 4.0.
A Regular Expression Tokenizer using the YARD Parser
Posted: 12 Dec 2004   Updated: 12 Dec 2004   Views: 34,625   Rating: 4.81/5    Votes: 15   Popularity: 5.66
Licence: Not specified      Bookmarked: 27   Downloaded: 646
A tokenizer using the YARD parser which can recognize regular expressions.
Parsing XML in C++ using the YARD Parser
Posted: 21 Dec 2004   Updated: 21 Dec 2004   Views: 55,540   Rating: 4.78/5    Votes: 21   Popularity: 6.32
Licence: Not specified      Bookmarked: 37   Downloaded: 745
Provides a set of tools for building XML parsers in C++ using the YARD recursive descent parser.
Cat - A Statically Typed Programming Language Interpreter in C#
Posted: 4 Nov 2006   Updated: 4 Nov 2006   Views: 30,033   Rating: 5.00/5    Votes: 13   Popularity: 5.57
Licence: Not specified      Bookmarked: 37   Downloaded: 177
This article contains the public domain implementation of an interpreter for a statically typed stack-based programming language in C# called Cat. The accompanying article is a high-level description of how the various modules work, a brief description of the language, and links to related work.

Design and Architecture

Union Lists: Single Value, Multiple Types
Posted: 4 Jan 2005   Updated: 20 Jan 2005   Views: 47,027   Rating: 4.59/5    Votes: 15   Popularity: 5.40
Licence: Not specified      Bookmarked: 27   Downloaded: 0
A union list is a simple union style type which can hold one value of any of a fixed number of types.
Fast Indexable Stacks
Posted: 19 Nov 2005   Updated: 19 Nov 2005   Views: 36,172   Rating: 4.62/5    Votes: 14   Popularity: 5.30
Licence: A Public Domain dedication      Bookmarked: 27   Downloaded: 207
I provide an implementation of fast-growing indexable stacks which outperforms std::vector and std::deque.
No blogs have been submitted.
No video articles have been posted.
No tips have been posted.

Christopher Diggins

Architect
Autodesk
Canada Canada

Member

Follow on Twitter Follow on Twitter
I've been programming personal computers since my I got my first Atari 400 in 1980. I currently work at Autodesk as an SDK specialist.
 
One of my passions is the design and implementation of programming languages. My current project is the Jigsaw library which includes a parsing engine and other utilities for implementing programming languages in C#.


Advertise | Privacy | Mobile
Web03 | 2.5.120517.1 | Last Updated 26 May 2012
Copyright © CodeProject, 1999-2012
All Rights Reserved. Terms of Use
Layout: fixed | fluid