PageMac
Home
   dot Projects
   dot Pics and Images
   dot WREK
D++
   dot About / FAQ
   dot Download
   dot Code Library
   dot Documentation
   dot VB6 Runtime Files
About

About D++




What is D++?
  D++ is a programming/scripting language created in Microsoft Visual Basic 6.0. It is a home grown, pet project language that was created for fun and to expand my own skills. I started this project when I was pretty young in the summer of 1999. It supports major language features including variables, arrays, if statements, do/for loops, functions, and more. It compiles scripts into an executable file in with a customized D++ console.

D++ originated for the purpose of learning, and is still intended for that. The code is well-commented, so most mid-range coders will be able to understand it.


Why did you write D++?
  I started working on D++ when I was about 12 as I was just getting into VB and programming. I wanted to write a program that actually had an impact on people, more than just the dinky little apps I had previously written. So I decided to write a programming language. I don't know why or how I chose that, especially considering I hadn't a clue of how to do any of it, but I chose it. And then I just continued to add features to help improve my coding skills.

D++ is not meant to replace C++, Java, or any other language. D++ is a personal project that I started in my very early days of programming and evolved as I worked on my coding skills. It's a language for fun, "because I can", and I've provided the source to help others learn as well.


Why did you call it D++?  Were you following C++?
  Not really. It was more of the fact that my name is "Daniel", and D++ sounded like a pretty good name. Also, it technically would not be following C++. It all began with a language way back when called BCPL. Without too many details, BCPL influenced a language called B, which influenced C, which influenced C++. So, if I were following that path, I'd have called it P. But that's kind of a lame name, and I didn't pick that. Although back then, I didn't exactly know this history, either.

Is D++ related to the D programming language?
  No. I created D++ before the D programming language existed. D++ first appeared in 1999, and D first appeared in 2001 (according to Wikipedia). D++ and D have absolutely nothing in common.

How does D++ work?
  D++ is an interpreted language - the D++ source code is parsed and executed on-the-fly by the D++ core application. (don't let the word "compile" throw you off, I just wanted to sound cool). When I was first starting D++, I discovered that I could add as much text as I wanted to the end of a VB6 executable without causing anything to break. So I came up with a way to create my own applications - the D++ compiler takes the source code, obfuscates it so it's not human readable, adds a header, appends it to the end of DPPAPP.dll and makes a new executable file. The DLL is actually the D++ core executable, disguised as a DLL. When the core application runs, it reads itself, searches for the header, de-obfuscates the code and executes. To the user, it appears as their own application, with no need to download a runtime (except for the VB6 runtime, but most people had that anyways). I thought this was pretty clever (especially when I was 12).

Why did you write it in VB, not C++? Or even assembly?
  This discussion is as old as D++, back to the days of version 1.5 on Planet Source Code. The biggest reason is that when I started, VB6 was my strongest programming language. D++ began with VB6, and that's why it remained VB6. In 2007 I started re-writing the language in C++ as another exercise in programming. (I got quite good with pointers by doing this!) Ultimately, my interest declined. The experimental C++ code is available for download, although it's only functional as an expression parser and evaluator.

Why are D++ executables so big?
  D++ executables start at 228kB in the latest version. That's due to the way D++ works as an interpreter - you always have to start with the core D++ application, and then your source is interpreted when the program is executed.

I can't get [blah] to work in D++!
  That's a shame. Well, you have a few options. First, post your problem on the forums. You'll get input from not only me but other members of the community. However, the problem might not be you, it might be a bug in D++! (yes! D++ is not bugless!)

Can I use D++ source in my project?
  Yes, you may. However, I do ask that you include a link back to PageMac in your about box.

Can I help you with D++?
  Sorry - D++ started as a personal project, and it will remain that way. It's a pet project! However, I am happy to accept any bug reports, suggestions, comments, critisism or anything of that nature.