I am asking about batch because this is a small project that will probably will never be like Python or .NET. I just want to make sure it's better than batch because I think batch is probably the worst programming language ever designed (or not designed).
whitespace,
Brainfuck, and any number of other esoteric programming languages notwithstanding. I suppose languages like scheme and lisp, while relatively popular among educators can be noted here for being almost wholly unused for programming outside of classrooms.
I don't understand the difference between interpreter/parser and programming language other than that a interpreter/parser is smaller. Is that the only difference?
no.... all Programming languages have an interpreter/parser; something has to turn the programming language into something the computer can work with. Such as- for example, translating a string like "5+5" and then interpreting that and giving back the result of
5 10. the scope of the language itself is wholly irrelevant, except perhaps when it comes to the complexities of the parser; for example, a C# parser/evaluator/lexical analyzer will be more complicated then a BASIC one, because the former has a lot more to deal with. likewise, a C++ parser/interpreter/etc will be even more complicated, because of the bajillion special cases and the need for backtracking in some instances.
It will be used for anything that batch and vbscript can't do. It is also a "playground" project. One that I plan to finish though and be somewhat usefull. I plan to make it as intuative as possible because I will probably give it to some of my friends, that want to be able to program, but don't want to actually have to "think" about it.
aye, that's how BCScript (useless to anybody but me since I STILL haven't documented it) started. You might be able to get some ideas from
BASeParser.NET, at least as far as the basic concepts of expression evaluation go; Try to avoid copying too much, that version has a few bugs that I have since worked out and haven't yet reuploaded a new zip. usually, the actual language itself more or less "evolves" as part of the evaluation syntax. Although I doubt that happens in languages that are properly designed from the ground up. On the other hand, I doubt you'll be submitting it as a new ECMA specification, so really there is a such thing as overthinking things.
Like I said- mine started years ago as a curious exploration type of project; my original incarnations didn't support Arrays or accessing arrays via subscripts, or any of that jazz, so when I wrote a graphing application around them I used all sorts of disgusting hacks that worked but pretty much gutted the parser from the outside in. At some point, I decided to rewrite it, and was able to apply the various problems I had with the original (which was a hacked version of one I found online) and make a more extensible library. And then when I rewrote it yet again as a starting project in C# I was able to apply even more Object theory and features from that language into it, and so forth.
The original version was only used in two of my programs; a 2-D and 3-D (D3D) Function graphing application, and my original attempt at an arkanoid clone (where I used it for "blockscripts" whereby the level editor allowed you to create your own custom blocks using a special language). At some point, however, I realized how stupid it was and switched it to the ActiveX Scripting host, which is a lot more flexible. Basically, it's important to know that you are pretty much "reinventing the wheel" for the most part, and not to be discouraged when you realize that, say, Visual Basic script is still a lot more flexible then your language; unless you can create a language that provides sweeping changes to the way programs are written, or something. It's a great way to learn about interpreters and compilers, though.
gives me the impression that you want to start creating a programming language from scratch ( like what Gosling do to create Java)
um... yes. now that we are all on the same page...